Hiprup

What are the key differences between Next.js 13, 14, and 15?

Each of these releases introduced a major architectural shift. A quick tour of what changed and why it matters.

Next.js 13 (October 2022) — introduced the App Router in beta. The biggest release in the framework's history:

  • app/ directory — file-system routing that uses React Server Components by default.

  • Nested layouts and loading stateslayout.tsx, loading.tsx, error.tsx, not-found.tsx.

  • Streaming and Suspense — pages can stream from the server, showing UI incrementally.

  • Server Components, Client Components — clear split between server-only and client-executable code.

  • Turbopack (alpha) — Rust-based dev bundler, much faster than Webpack.

  • next/image and next/font — redesigned image component and first-class web-font support.

Next.js 14 (October 2023) — stabilized 13's new features, no breaking changes:

  • Server Actions (stable)'use server' functions callable from forms and client code.

  • Partial Prerendering (preview) — static shells with streaming dynamic content in the same page.

  • Turbopack for dev — significantly faster local startup and HMR for most projects.

  • Metadata improvements — dynamic OG image generation via ImageResponse.

  • Bundle size and memory usage reductions across the App Router runtime.

Next.js 15 (October 2024) — shifted defaults around caching and async APIs:

  • Async request APIscookies(), headers(), params, and searchParams are now async. Existing code needs await.

  • Caching defaults inverted — fetches and Route Handlers are now uncached by default. Opt back into caching explicitly.

  • React 19 support — Actions, use(), and new form features all work in App Router.

  • Turbopack stable for dev — default bundler for next dev.

  • Static Route Indicator and Dev Instrumentation — clearer diagnostics in dev.

  • next/after — schedule work after the response has been sent.

  • Partial Prerendering (still experimental) — production-ready for many apps.

Practical migration notes:

  • 13 to 14 — generally drop-in. Adopt Server Actions if you're doing forms.

  • 14 to 15 — requires code changes. The codemod command automates most of the async API migrations: npx @next/codemod@latest next-async-request-api. Audit every fetch call to decide whether it should be cached.

  • Anything older than 13 — the Pages Router still works and is still maintained. Moving to the App Router is encouraged but not required for existing projects.

This is a frequently asked question. Know the headline feature of each version: v13 = App Router (beta), v14 = stable App Router + Server Actions, v15 = default caching changes + async APIs.

The v15 caching change is especially important to mention.

What are the key differences between Next.js 13, 14, and 15? | Hiprup