7 curated breaking changes across major versions of next. Use this as a migration checklist before bumping dependencies.
React Compiler stable (when enabled via experimental flag in 15, stable in 16).
Enable via `experimental.reactCompiler = true` in next.config.js. Reduces manual useMemo/useCallback.
Turbopack is the default dev bundler. Webpack dev path still available via `--webpack`.
If you have custom webpack config for dev, either migrate to Turbopack rules or run `next dev --webpack`.
params and searchParams in pages/layouts/route handlers are now Promises and must be awaited.
`export default async function Page({ params }) { const { id } = await params; }`. Use the `next-codemod` codemod `next-async-request-api`.
Get this data programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/breaking/npm/nextfetch() is no longer cached by default in Route Handlers and Server Components. Opt-in via `cache: 'force-cache'` or `export const fetchCache = 'default-cache'`.
Audit fetches you relied on being cached. Explicit opt-in: `fetch(url, { cache: 'force-cache' })` or set `export const dynamic = 'force-static'`.
GET Route Handlers are no longer cached by default. Client Router Cache no longer caches page components by default (staleTimes.dynamic defaults to 0).
To restore previous behavior set `experimental.staleTimes.dynamic = 30` in next.config.js or export `dynamic = 'force-static'` from route handlers.
@next/font package removed; use the built-in `next/font`.
`npm uninstall @next/font` and replace `from '@next/font/google'` with `from 'next/font/google'`.
Minimum React version is 19 RC+ for App Router. Pages Router still supports React 18.
App Router: upgrade to React 19. Pages Router: stay on React 18 if needed, but new features target 19.