Why I keep choosing the same stack
Next.js, TypeScript, Zod and MongoDB: what each one does for me, and what I would change next time.

Joshua Adjei
· 1 min read
People often ask why I reach for the same stack again and again. The short answer: it lets me spend my time on the product instead of on glue code.
Next.js for the whole web surface
Server components render the public pages fast and keep secrets on the server. Route handlers give me a typed API in the same project, so the website and the studio share one source of truth.
TypeScript and Zod everywhere
Types catch mistakes while I write; Zod catches them at runtime. One schema describes a request, validates it on the server and types the form that sends it.
MongoDB with strict models
Flexible documents are great until a typo creates a new field. Strict schemas make the database refuse anything it does not expect.
What I would change
- Fewer client components than I used early on.
- More end-to-end tests of real visitor journeys.
- Measuring performance budgets from day one.
The best stack is the one you understand deeply enough to keep simple.
Comments1