Next.js 16: caching finally became opt-in
Next.js 16 effectively admitted the App Router caching was a mistake and made it explicit. Here is what actually changed, and why it is the most honest release in a while.
Next.js 16, released in October 2025, is the most honest release the framework has shipped in a while. The headline is caching, which went from implicit and surprising to explicit and opt-in, a direct fix for the App Router behavior most teams complained about.
use cache, not cache by default
With Cache Components enabled, everything runs at request time by default. You opt into caching with the "use cache" directive on a file, a component or a function, and the compiler derives the cache key for you. It inverts the old model: instead of fighting a cache you did not ask for, you name exactly what should be cached.
// A cached data function. The compiler derives the key. export async function getPosts() { "use cache" cacheLife("hours") return db.posts.findMany({ where: { published: true } }) }
Partial Prerendering stopped being a feature and became the engine. The experimental.ppr flag was removed; PPR is now just how Cache Components render. The mental model is finally simple: everything outside a Suspense boundary is static, everything inside it streams.
The new cache APIs are an architecture decision
revalidateTag now takes a cache profile, updateTag gives read-your-writes semantics for Server Actions and forms, and refresh only refreshes uncached data. Choosing between them is a real design call. Read-your-writes for anything a user just submitted, stale-while-revalidate for catalogs and blogs.
A few quieter signals: middleware.ts was renamed to proxy.ts and runs on the Node runtime, which reads as Vercel stepping back from the edge-everywhere narrative. Turbopack is the default bundler now, with reported two to five times faster builds. The React Compiler is stable but still off by default because of its Babel build cost, and a critical server-component deserialization vulnerability disclosed in December 2025 was a reminder that React Server Components are a new attack surface. Meanwhile a self-hosting counter-movement, Coolify on a cheap VPS, grew after the Vercel billing changes.
