Every stack works for the hello-world demo. The interesting question is which stack still serves you when the product has real users, real data and a growing team.
Optimize for the boring case
Most software spends its life in maintenance, not greenfield development. Favor technologies with strong documentation, a deep hiring pool and a track record of stability over the newest, most exciting option.
The novelty budget
Spend your innovation budget on the parts of the product that are genuinely differentiating. Use proven, boring technology for everything else.
A short evaluation checklist
- Can we hire people who already know it?
- Is the documentation excellent?
- What does the upgrade path look like in 2 years?
- How does it fail, and how observable is that failure?
- Does it have a sustainable maintainer or company behind it?
Default to typed, default to managed
We default to TypeScript end to end and managed infrastructure where it removes operational burden. Types catch a class of bugs at compile time; managed services let a small team operate like a larger one.
$ bun create app$ bun add zod @tanstack/react-query$ bun run typecheck


