New projects do not need novel infrastructure. They need a default that gets out of the way so you can spend your judgement on the actual product.
Boring on purpose
Boring technology has known failure modes, deep documentation, and a community that has already hit your bug. That is not a compromise — it is the feature.
The default stack
Postgres for almost all state, a single typed backend, a CDN in front, and one queue when you genuinely need async. Reach for more only when a real constraint forces it.
When to deviate
Deviate when the product has a hard requirement the default cannot meet — sub-second fan-out, exotic geo, regulatory isolation. Write down why, so the next person knows it was a choice and not an accident.
