Skip to content

darkmatter/stackpanel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

394 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stackpanel

Ship products, not plumbing.

CI Documentation License

Reproducible dev environments, service orchestration, and secrets management.
Powered by Nix. No Nix knowledge required.


The Problem

Configuration files, build tooling, environment setup - this is the bureaucracy of software development. Every new project means re-establishing the same foundations. Every config file represents a decision someone already made thousands of times.

The value of your application lives in your source code, not configuration.

What Stackpanel Does

Stackpanel provides a complete development infrastructure toolkit:

  • Zero-config dev environments - Automatic setup for popular stacks with deterministic ports
  • Secrets management - Team-based encrypted secrets with AGE/SOPS
  • IDE integration - Auto-generated VS Code workspaces and settings
  • Global services - PostgreSQL, Redis, Minio with one-line config
  • AWS integration - Passwordless AWS access via certificate authentication
  • Web Studio - Local web UI for managing your entire stack

No lock-in. Generated files are standard formats in standard locations. Eject anytime with a normal codebase.

No Nix knowledge required. If you can write JSON, you can configure Stackpanel. Or just use the web UI.

Quick Start

Prerequisites

Create a New Project

# Create a new project with the default template
nix flake init -t git+ssh://git@github.com/darkmatter/stackpanel

# Set up direnv
echo 'use flake . --impure' > .envrc
direnv allow

# Or manually enter the shell
nix develop --impure

Add to an Existing Project

# flake.nix
{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    flake-parts.url = "github:hercules-ci/flake-parts";
    devenv.url = "github:cachix/devenv";
    stackpanel.url = "git+ssh://git@github.com/darkmatter/stackpanel";
  };

  outputs = inputs @ {flake-parts, ...}:
    flake-parts.lib.mkFlake {inherit inputs;} {
      imports = [
        inputs.devenv.flakeModule
        inputs.stackpanel.flakeModules.default
      ];

      systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin"];

      perSystem = {pkgs, ...}: {
        devenv.shells.default = {
          imports = [inputs.stackpanel.devenvModules.default];

          # Your config
          stackpanel.enable = true;
          packages = [pkgs.nodejs pkgs.bun];
        };
      };
    };
}

Configuration

Edit .stackpanel/config.nix to configure your environment:

{
  enable = true;

  # Themed shell prompt
  theme.enable = true;

  # VS Code integration
  ide.vscode.enable = true;

  # Global services
  globalServices = {
    postgres.enable = true;
    redis.enable = true;
  };

  # AWS certificate auth
  # aws.roles-anywhere.enable = true;
}

Features

Deterministic Ports

Ports are computed from your project name, ensuring everyone on the team gets the same ports without configuration:

my-project → base port 4200
  web      → 4200
  api      → 4201
  postgres → 4210
  redis    → 4211

Secrets Management

Team-based secrets with AGE encryption:

stackpanel.secrets = {
  master-key.enable = true;

  apps.api = {
    dev = {
      DATABASE_URL = "postgres://...";
      API_KEY = "secret:api-key";
    };
  };
};

IDE Integration

Auto-generated VS Code workspace with:

  • Correct terminal environment
  • Extension recommendations
  • Debugger configurations
  • Task runners

Web Studio

Local web UI at localhost:9876 for:

  • Managing services
  • Viewing logs
  • Editing configuration
  • Installing extensions

Documentation

Full documentation is available at stackpanel.dev:

Architecture

For details on the internal architecture, see ARCHITECTURE.md.

Development

# Enter the dev shell
nix develop --impure

# Start all services
dev

# Run the web app only
bun run dev:web

# Run the Go agent
bun run dev:agent

Contributing

Contributions are welcome! Please read our contributing guidelines before submitting PRs.

License

MIT License - see LICENSE for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors