The landscape has shifted
Three years ago, choosing Next.js was a bet on a framework. Today it is the safe, boring, correct choice — and that is exactly what we want when we are shipping something that needs to still work in production two years from now.
App Router stabilised. Server Components moved from experiment to mainstream. Edge runtimes matured. The tooling around Next.js — Vercel, Turbopack, the ecosystem of hooks and libraries — has compounded into something that simply makes teams faster.
Server Components changed everything
The single biggest shift is the default rendering model. With React Server Components, data fetching happens on the server, close to the database, with zero client bundle cost. Pages that used to require a loading spinner and a client-side fetch are now instant.
We have migrated three existing projects to the App Router this year. In every case, Lighthouse performance scores improved by 15–30 points without touching the visual design. That is not a rounding error — that is a genuine UX win that comes for free.
Edge deployment without the complexity
Shipping to the edge used to mean rewriting your data-fetching layer, reasoning about cold starts, and convincing your team to learn a new mental model. Next.js on Vercel collapses that to a config flag.
We now default to edge middleware for auth checks, geolocation redirects, and A/B testing. The latency savings in markets outside North America — Southeast Asia, the Middle East, Africa — are material enough that clients notice them in their analytics.
The parts that still need attention
Next.js is not frictionless. The App Router caching model has sharp edges: understanding when data is fresh, when to use revalidate, and how to opt out requires deliberate learning. We maintain an internal guide for this and treat it as part of every project onboarding.
Turbopack, while significantly faster than Webpack, occasionally surfaces incompatibilities with older community packages. We keep a short list of known gotchas and check it before adding new dependencies.
Despite these caveats, the framework is the right default for us. The productivity gains, the performance defaults, and the alignment with where the React ecosystem is heading make it the clear choice for 2026 and beyond.