Pick a depth. Each prompt opens in your AI pre-loaded with the lesson. Click a row to preview the prompt.
The thing nobody tells you at 0 users is that every novel piece of infrastructure you adopt is a tax you pay every week for the rest of the company's life. Postgres, nginx, Redis, S3 — these are 'boring' because every problem you'll hit has been hit by ten thousand teams before you, with a StackOverflow answer waiting. CockroachDB, ScyllaDB, Temporal, FoundationDB — each of these has a real reason to exist, but most of those reasons start above 1M users. Picking boring tech at Day 0 means you spend your innovation budget on the product, not on debugging a database your future self has never used.
Dan McKinley's 'choose boring technology' essay names the rule: a startup should have an 'innovation token' budget of about three. Spend one on a novel database, one on a novel language, and one on a novel deployment model — you've spent them all on infrastructure and have nothing left for product. Most successful B2B SaaS companies at the 100k-user mark are running Postgres + Redis + a monolith in $LANGUAGE_THEIR_FOUNDERS_KNEW. The boring choice is not 'cheap' or 'lazy' — it's deliberately preserving your innovation budget.
// Pick boring. A typical "what's running in prod at 100k users" looks like this:
const stack = {
app: "Node.js / Python / Go / Rails — pick what your team writes daily",
db: "Postgres (RDS / Supabase / managed)",
cache: "Redis (managed)",
queue: "Postgres-as-queue OR Redis Streams OR SQS",
storage: "S3-compatible (S3, R2, Spaces)",
cdn: "Cloudflare / Fastly",
webserver: "Caddy / nginx / cloud LB",
observability: "managed (Grafana Cloud, Better Stack, Axiom, SigNoz)",
};
// Anti-stack — each of these costs an innovation token you don't have:
const expensive = {
db: "CockroachDB / FoundationDB at 0 users",
msg: "Kafka 'because we'll need it'",
infra: "Kubernetes for a 1-pod deployment",
lang: "Rust 'because performance' for a CRUD API at 100 rps",
};node main.js