Now booking projectsFree 30-min discovery call
Home/Notes/The case for boring stacks

The case for boring stacks

New tooling is exciting. Boring tooling has bug fixes, training material, and a community that has already solved your problem.

Every year a new framework promises to fix what last year's framework couldn't. Every year a few of those frameworks survive.

We default to boring on purpose. The boring stack has answers to questions you haven't asked yet. The boring stack has a Stack Overflow page for the bug you're about to find. The boring stack has tutorials your client's next developer can read.

What "boring" actually means here

Not legacy - we still ship modern Next.js, modern WordPress, modern Postgres. Boring means well-known, mature, and present in enough production codebases that the failure modes are documented.

When we pick the new thing

When the boring tool genuinely can't do the job. Real-time multiplayer, edge-rendered personalization, workloads that don't fit a relational schema - those buy you a new dependency.

Wanting to play with a new framework doesn't.

The trade-off isn't "boring vs exciting." It is "predictable cost vs unpredictable cost." Clients pay us to keep the cost predictable.

#stack-choice#engineering#process