Every new project starts the same way.
Open terminal. mkdir new-project . And then... 2 days of configuration before writing a single line of business logic.
After 8 years building APIs professionally — across startups and companies — I realized I was solving the same problems every single time:
TypeScript strict mode setup that actually works
JWT auth with refresh token rotation
A folder structure that doesn't fall apart at scale
Docker that works the same on every machine
CI/CD that doesn't take half a day to configure
So I stopped. And I packaged everything into a boilerplate I actually use in production.
What the stack looks like
After trying many combinations, this is what I landed on:
Fastify over Express — it's faster, has better TypeScript support out of the box, and the plugin system is genuinely good once you understand it.
Prisma over raw SQL or other ORMs — the DX is excellent and the generated types save hours of manual typing.
Zod for validation — schema-first validation that…