The revenue path is a named, separately tested concept.
WhyThe flow that produces income deserves a harder gate than the rest of the application. Naming it makes it something a test can defend.
CostIt adds a second verification lane to maintain alongside the normal unit tests.
A production build that runs without a database.
WhyContinuous integration should be able to prove the application compiles and renders without provisioning Postgres for every run.
CostA build-time shim to maintain, and database-dependent behaviour moves to the e2e lane.
Toolchain versions pinned, with the reason recorded as a numbered decision.
WhyAn unexplained pin gets removed by the next person who sees an available upgrade. A recorded reason survives.
CostUpgrades become deliberate work rather than routine maintenance.
Zod schemas at every boundary rather than trusting types alone.
WhyTypeScript types vanish at runtime. The server has to re-check anything that crossed the network.
CostSchema duplication between the type layer and the validation layer.