Next.js(6)
The App Router, route handlers and server components, and where Next.js stops behaving like plain React.
- What Breaks When You Enable cacheComponents in Next.js 16: 29 Cases, MeasuredFlipping cacheComponents on turns silent build-time data freezes into build errors. We put 29 code patterns through 110 builds on Next.js 16.1.7 and 16.3.5, one pattern per build, and recorded every error verbatim. Twelve patterns fail. Two stop compiling. The pass/fail is identical across both versions - the amount of help you get is not.28 min read
- Next.js App Router Navigation, Measured: What a Link Prefetches and Which next/router APIs Are GoneWe measured client-side navigation on a deployed Next.js 16.1 site: a soft navigation transfers about half the bytes of a full page load, and a <Link> prefetch transfers the same payload as the navigation it prepares - the whole route, once per link in the viewport, in production. Then we read the useRouter return type out of the installed package: six methods, and no router.events, router.query, router.pathname, router.isReady, router.beforePopState or shallow routing.19 min read
- What a Next.js Route Handler Does When It Throws: 13 Cases, Measured in Dev and ProductionWe seeded thirteen failure modes into Next.js 16.1 route handlers and recorded the status, headers and body the client got back, under next dev and under a production build. An uncaught throw is an empty 500 with no Content-Type. Throwing a Response does not set its status. A stream that fails after its first byte is a truncated 200. Dev and production returned the same thing every time.15 min read
- Testing Next.js Route Handlers: Ten Seeded Bugs, Four Methods, and What Each One MissedWe put ten defects into real route handlers and ran four testing methods at them: a direct call, next-test-api-route-handler, next start, and the Cloudflare Workers build we deploy. Two methods pass a handler that is broken, and one fails a handler that is fine.18 min read
- Next.js API Routes: Route Handlers, Caching, and the Server Actions DecisionHow route handlers actually behave in Next.js 16: GET is no longer cached by default, params are async, and most of what you need is a server action instead. With a real deployment that is not on Vercel.17 min read
- Next.js 16 App Router: Getting Started, and What the Model CostsThe App Router explained through a site that actually runs on it: server components, async request APIs, generateStaticParams, and the three things that break when you deploy somewhere other than Vercel.13 min read