Brian Kimurgor
Get in touch
All posts
26 May 2026stacknextjstypescriptpostgresqltailwind

The stack I use in 2026 and why

Next.js, TypeScript, PostgreSQL, Prisma, Tailwind. Here's the honest reasoning behind each choice — including what I'd swap out.

The stack I use in 2026 and why

Every developer has a default stack. Mine is Next.js + TypeScript + PostgreSQL + Prisma + Tailwind CSS. Here's why each piece is there — and what I'd replace if I were starting fresh today.

Next.js

Why: Full-stack in one repo. App Router gives you server components, which means you can query the database directly in a component without an API layer for internal pages. The mental model is clean once it clicks.

What I'd consider instead: Remix. The loader/action model is more explicit and easier to reason about. I haven't switched because the Next.js ecosystem is larger and I know it better. Not a principled choice — a pragmatic one.

TypeScript

Why: Not optional. Untyped JavaScript in a large codebase is a maintenance nightmare. TypeScript finds bugs at the keyboard that would otherwise surface at 2 AM in production.

What I'd consider instead: Nothing. This is a firm choice.

PostgreSQL

Why: Relational data with real constraints, transactions, and 30 years of battle-tested behaviour. JSON columns when I need flexibility. Arrays when I need lists without a join table.

What I'd consider instead: Nothing for the primary store. I'd add Redis for caching if throughput demanded it.

Prisma

Why: Type-safe queries without writing raw SQL for CRUD. The schema file is the single source of truth for your data model — migrations, types, and the client all derive from it.

What I'd consider instead: Drizzle ORM. It's faster, the query API is closer to SQL, and it doesn't have the engine complexity Prisma 7 introduced. If I were starting this project today, I'd seriously evaluate Drizzle first.

Tailwind CSS

Why: Fast. No context switching between JS and CSS files. The constraint of utility classes forces consistency.

What I'd consider instead: Nothing right now. CSS-in-JS had its moment. Tailwind won for my use case.


The best stack is the one you know well enough to move fast and debug quickly. This is mine. Yours should be yours.