Next.jsReactWeb Development

Next.js 15: Everything You Need to Know

A

Alex Chen

March 5, 2025

8 min read

Introduction

Next.js 15 is one of the most significant releases in the framework's history, introducing a completely overhauled caching strategy, full React 19 support, and a production-ready Turbopack bundler. In this article, we'll walk through every major change and discuss how to migrate your existing projects.

Revamped Caching Model

One of the most controversial aspects of Next.js 14 was its aggressive opt-in caching defaults. Next.js 15 takes a pragmatic U-turn: fetch requests, GET Route Handlers, and Client-side navigations are now uncached by default.

This change eliminates a whole class of 'why is my data stale?' bugs that developers frequently encountered. To opt into caching, you now explicitly set the cache option on your fetch calls. You can set revalidate to a number of seconds, or use 'force-cache' for indefinitely cached data.

React 19 Support

Next.js 15 fully embraces React 19, bringing the new use hook for reading promises and context, improved Server Actions with better error handling, an enhanced Form component with built-in optimistic updates, and the experimental React Compiler for automatic memoization.

The React Compiler automatically optimizes your components by detecting when re-renders are unnecessary, eliminating the need for manual memoization in most cases.

Turbopack for Production

After years in experimental status, Turbopack is now stable for development builds in Next.js 15. The numbers speak for themselves:

  • **76.7% faster** local server startup
  • **96.3% faster** code updates (HMR)
  • **45.8% faster** initial route compilation

Production builds with Turbopack are still in progress, but the development experience improvements alone make upgrading worthwhile.

Async Request APIs

A breaking change in Next.js 15 is that several previously synchronous APIs are now async. Props like params and searchParams in page components now return Promises that must be awaited. This change aligns Next.js more closely with web standards and enables better streaming support.

Enhanced Security with Server Actions

Next.js 15 introduces unguessable endpoint IDs for Server Actions, providing an additional layer of security. The framework now also supports the forbidden() and unauthorized() functions for better error handling in protected routes.

Migration Guide

To upgrade from Next.js 14: update your dependencies to next@15, run the automated codemod with npx @next/codemod@latest upgrade latest, address any remaining async API migrations manually, and test your caching behavior thoroughly.

Conclusion

Next.js 15 represents a maturation of the framework, with pragmatic decisions that prioritize developer experience and predictability. The uncached-by-default model alone will save countless hours of debugging for teams everywhere.

Tagged with

Next.jsReactWeb Development