Next.js 15 goes stable — what changed for developers
Next.js 15 is now stable after a two-month release candidate cycle. The headline changes are a switch to async request APIs, a stable release of the Rust-based compiler, and updated defaults for client-side caching — the last of which reverses a decision that caused confusion since version 13.
Fetch requests are no longer cached by default. In 14, an uncached fetch inside a Server Component was easy to write by accident; the new default makes caching opt-in via { cache: 'force-cache' }, matching what most developers expected from the start.
paramsandsearchParamsare now async and must be awaited- The Rust compiler (Turbopack) is stable for
next dev, with build support still in beta - New
after()API for running code after a response has streamed
If you're on Vercel's free tier, the new fetch defaults can meaningfully cut function invocations on pages that don't need fresh data every request — worth an audit before you upgrade, not just a version bump.
Upgrading is mostly mechanical: run the official codemod for the async params change, audit any Server Component fetches you were relying on implicit caching for, and re-test anything using middleware, since matcher behavior tightened slightly in this release.