give your AI coding agent better defaults

Build web apps the boring way.

An open-source project generator, AI coding skill, battle-tested templates, and a weekly field note for builders who want their software to stay legible. Go, SQLite, Litestream, Caddy, systemd, a $5 VPS.

$ boringstack cost --last 30d
hetzner cx22          $4.59
cloudflare r2         $0.12
boringstack.org dns   $1.25
resend (free tier)    $0.00
────────────────────────────
total                 $5.96/mo

The movement

Boring Stack is for builders who would rather ship a small, understandable system than rent a distributed platform before the product earns it. The movement is the public practice: publish the defaults, publish the costs, publish the failures, and make the simple path easier to choose next time.

The newsletter keeps those defaults honest by showing how they hold up in real products built by people running the stack.

Join the movement

Get Boring Stack Weekly

One practical email each week on how to build with Boring Stack: what shipped, what broke, how the bill changed, which agent defaults improved, and what the latest restore drill taught. The newsletter is where the build stays public.

What this is

  1. The CLI. Run boringstack new myapp and get a working, tested Go app with the stack decisions and deploy files checked in. Run boringstack dev to see it and boringstack deploy when the VPS is ready.
  2. The skill. Ask your coding agent to build a product using Boring Stack. It runs a five-question fit check, starts from the same canonical scaffold, then adds the actual product slice. Pushes back on Postgres, Vercel, ORMs, Docker, and microservices when they don't fit. Always defers to your call.
  3. The templates. The exact deploy.sh, Caddyfile, app.service, and Litestream config used in real production. Drop them in, replace the hostnames, ship. Zero magic.
  4. The manifesto. Seven principles for shipping software that stays out of your way. Quote it, link it, fork it. Read the manifesto.
  5. The movement. A weekly newsletter on how to build with Boring Stack: real costs, boring decisions, restore drills, launch notes, template changes, and war stories from people running the stack.

Install

Give your AI coding agent better defaults. One line, works with every major AI coding tool.

$ curl -fsSL https://boringstack.org/install.sh | bash

That clones the repo to ~/.boring-stack, builds the CLI into ~/.local/bin when Go 1.22+ is available, and wires the skill into tools that have a user-level config. Then make the idea concrete:

$ boringstack new expense-tracker
Created expense-tracker (19 files).
→ go test ./...       ok
→ go build .          ok

$ cd expense-tracker && boringstack dev
→ running http://localhost:8080

Or tell your coding agent: Build me an expense-tracking SaaS using Boring Stack. The agent starts from the same scaffold and adds a complete feature slice instead of another abstract stack recommendation.

For tools that only support per-project rules, run this from inside any project where you want the boring stack defaults:

$ curl -fsSL https://boringstack.org/add.sh | bash

Auto-detects your project's existing AI tool configs and drops the right file in each. Falls back to AGENTS.md (the portable convention) if nothing's set up yet.

What gets written, per tool
ToolFile written
Boring Stack CLI~/.local/bin/boringstack
Claude Code~/.claude/skills/boring-stack/SKILL.md (user) or .claude/skills/boring-stack/SKILL.md (project)
Codex CLI (OpenAI)~/.codex/instructions.md (appended)
Cursor.cursor/rules/boring-stack.mdc
GitHub Copilot.github/copilot-instructions.md (appended)
Cline.clinerules
Continue.dev.continuerules
AiderCONVENTIONS.md (appended)
Gemini Code AssistGEMINI.md (appended)
Windsurf.windsurfrules
Zed.rules
Anything elseAGENTS.md (portable fallback)

Force a specific tool: … | bash -s -- --tool cursor. Update later by re-running either install command — both are idempotent.

tip: the skill is MIT and stays MIT. Use it, fork it, ignore it, write a better one.

Give your AI coding agent better defaults

Templates

The configs the skill ships with. Each one is derived from real production use, lightly edited to use placeholder hostnames.