One practical email each week on how to build with Boring Stack. RSS · subscribe by email.
A backup that runs on schedule, reports success, and copies nothing is the most expensive kind. Unix path traversal and SQLite's WAL file each produce one, and neither raises an error. Here is how to check yours in one command.
Generate a tested Go app and run it locally in one terminal session. The CLI turns the stack's opinions into 19 files that format, test, and build before it reports success.
Build one Linux binary, copy it over SSH, swap it atomically, restart systemd, and roll back when the health check fails. The entire release path is 26 executable lines.
The backup layer for a single SQLite file: one config file, one systemd unit, continuous replication to Cloudflare R2, and a restore command you should run before you need it. Eleven lines of actual configuration.
The boring runtime for a single Go binary: one service file, restart policy, journald logs, graceful shutdown, and enough sandboxing to catch dumb mistakes without inventing a platform.
Every line of the actual $5.96/mo bill that runs the boring-stack production. What each line buys, what it would cost on a platform PaaS, and what it tells you about the architecture. The bill is the blast radius in dollars.
From launch day until 48 hours ago, every newsletter signup on boringstack.org silently failed at the TLS edge. Lower bound: 49 attempts. Ceiling: unknowable. Here's the bug, the blast radius, the 3 PRs we shipped to fix it, and the 3 things we'd do differently.
The full case for SQLite in production: what it actually does well, what WAL mode changes, what Litestream adds, what fails, when to switch to Postgres, and how to migrate when you do.
The Boring Stack in one sitting — what each piece is, why it's there, and what it costs. The mental model you need before you read anything else here.
Most projects do not need a complicated stack on day one. Boring Stack is the public default — philosophy, AI coding skill, templates, and weekly notes.