Why We Pick Next.js for Almost Every Project
A pragmatic case for Next.js as our default web framework — and the rare cases where we use something else.
We have used Next.js on every client project for the last three years. It is not because it is fashionable — it is because the defaults are right.
Routing, server, edge — one mental model
The App Router unifies SSR, ISR, and client rendering behind a single component tree. We think about routes and data fetching the same way regardless of where the page is rendered.
Vercel is a force multiplier
Deploy is `git push`. Previews are per-branch. Edge functions are first-class. The team is shipping features instead of configuring infrastructure.
When we pick something else
Highly bespoke marketing sites with no app surface sometimes go on Astro for static-first perf. Realtime-first products (whiteboards, multiplayer) sometimes go on a custom Node + WebSocket stack. Everything else is Next.js.
