Next.js 15 is now available
Next.js 15
Next.js 15 introduces caching improvements, React 19 support, a stable release for Turbopack in development, new experimental APIs, and more.
Changes for Next.js 15
Version 15.3
- Turbopack Builds (Alpha): Alpha release of next build --turbopack extends Turbopack’s fast development performance to production builds, passing 99.3% of integration tests and showing significant speed gains, especially on multi-core machines.
- Turbopack Configuration (Stable): Turbopack settings moved to a top-level turbopack key in next.config.ts, with legacy experimental.turbo support continuing until the next major release.
- Rspack Support (Experimental): Community-supported Rspack plugin offers an alternative bundler with Webpack API compatibility, improving local compilation and build times for users not ready to switch to Turbopack.
- Client Instrumentation Hook: Introduction of instrumentation-client.js|ts file for early integration of monitoring and analytics tools, enabling performance tracking and error reporting before app code runs.
- Navigation Hooks: New client-side routing hooks including onNavigate event on components for precise SPA navigation control (including navigation cancellation) and useLinkStatus hook to track navigation loading states for localized UI feedback.
- TypeScript Plugin Performance Improvements: Significant speed and stability improvements (~60%) for the Next.js TypeScript language server plugin, enhancing developer experience in large codebases.
- Support for new URL() in images.remotePatterns: Added support for using new URL() in image remote pattern configurations.
- Separate Viewport Options: Viewport settings are now managed separately from metadata configuration for better clarity and control.
- New unstable_dynamicOnHover Option: Experimental option to control dynamic behavior on hover interactions.
- Pinterest Rich Pins Support: Added support for Pinterest Rich Pins metadata.
- Improved Revalidation and Redirect Handling: Fixes to ensure revalidation works correctly when followed by redirects in Route Handlers and stronger consistency after calling revalidate in Server Actions.
- Upgraded sharp Library: Updated for faster PNG to AVIF image conversions.
Version 15.2
- Redesigned Error UI (Stable): Overhauled error interface highlights core details like error messages, code frames, and call stacks while reducing noise from dependencies, improving debugging clarity.
- Owner Stacks for Error Tracing (Stable): Uses React’s owner stacks to pinpoint the exact subcomponent causing errors, enhancing error trace fidelity in complex component trees.
- Error Overlay Feedback (Stable): Added a feedback section in error overlays allowing developers to rate the helpfulness of error messages to guide future improvements.
- Dev Indicator (Stable): Consolidated development indicator shows rendering mode (static/dynamic), Turbopack compilation status, and active errors with quick access to overlays, centralizing dev info.
- Streaming Metadata (Stable): Allows sending initial UI to the browser before asynchronous generateMetadata completes, improving perceived page load times without blocking rendering; supports bot compatibility with customizable htmlLimitedBots.
- Turbopack Performance Improvements (Stable): Achieves up to 57.6% faster compile times and 30% reduced memory usage in local development, making Turbopack faster than Webpack in nearly all scenarios.
- React View Transitions (Experimental): Enables experimental support for React’s View Transitions API to animate transitions between views and components, enabled via viewTransition: true in next.config.js.
- Node.js Middleware (Experimental): Experimental support for running Next.js Middleware on the Node.js runtime, providing more flexibility for server-side logic; enabled via nodeMiddleware: true and runtime: 'nodejs' in middleware config.
- Upcoming Features: Stabilization of "use cache" as a standalone feature and introduction of Turbopack persistent caching (experimental) planned for future releases.
- Additional Improvements: Added --api flag for headless API-only projects, support for images.qualities in next/image, improved lint performance, enhanced error reporting, pagination SEO link tags, and better MDX plugin support for Turbopack compatibility.
Version 15.1
- React 19 (Stable): Official full support for React 19 in both Pages Router and App Router, enabling use of the latest React features and continued React 19 Canary releases in the App Router for experimental updates.
- Improved Error Debugging: Enhanced developer experience with better source maps, collapsed stack frames hiding third-party code by default, consistent error display across terminal, browser, and Edge runtime, and improved profiling support.
- after API (Stable): The after() API is now stable, allowing execution of tasks like logging or analytics after the response has finished streaming, with improved support for self-hosted servers and runtime APIs such as cookies() and headers().
- forbidden / unauthorized APIs (Experimental): New experimental APIs to handle granular authentication errors with customizable UI for 403 (forbidden) and 401 (unauthorized) statuses, extending the existing notFound() pattern for error handling in the App Router.
- Codemod CLI Enhancements: Continued improvements to the Codemod CLI tool for seamless automated upgrades of Next.js and React versions, simplifying migration and dependency management.
- Static Route Indicator: Visual indicator during development to distinguish static routes from dynamic ones, aiding debugging and optimization.
- Turbopack Dev (Stable): Turbopack is stable and recommended for development, providing faster build times and improved source map handling over Webpack.
- ESLint 9 Support: Full support for ESLint 9 integrated into create-next-app and the framework, ensuring up-to-date linting capabilities.
- Increased Max Cache Tags: Cache tag limit increased to 128, allowing more granular cache control.
- Experimental CSS Inlining: Added experimental support for CSS inlining to improve performance.
- Bundling External Packages: Improved configuration options to bundle or exclude external packages separately for Pages Router and App Router, optimizing build size and performance.
- Miscellaneous Improvements: Fixes for route interception on catch-all routes, response cloning in request deduplication, Server Action redirects, and enhanced MDX plugin support for Turbopack compatibility.
Version 15
- Async Request APIs (Breaking): Incremental step towards a simplified rendering and caching model by making APIs that depend on request-specific data asynchronous, improving data fetching and responsiveness.
- Caching Semantics (Breaking): "fetch" requests, GET Route Handlers, and client navigations are no longer cached by default, adopting a default "no-store" policy to ensure data freshness and security.
- React 19 Support: Full support for React 19 including new hooks (useActionState, useOptimistic, useFormStatus), React Compiler (experimental), improved hydration error handling, and enhanced Server Actions security with unguessable endpoints and automatic removal of unused actions.
- Turbopack Dev (Stable): Integration of Turbopack as the new development server bundler, delivering significant performance and stability improvements, including up to 53% faster startup times compared to Webpack.
- Static Indicator: New visual indicator during development to show which routes are statically rendered, aiding developers in understanding build behavior.
- unstable_after API (Experimental): Enables executing code after the response finishes streaming, useful for deferring non-critical tasks like logging or analytics to improve initial load performance.
- instrumentation.js API (Stable): New API for server lifecycle observability, allowing better monitoring and debugging of server-side processes.
- Enhanced Forms (next/form): Improved HTML form handling with client-side navigation and integration with React 19’s new hooks, simplifying form state management and server interactions.
- next.config.ts: Added TypeScript support for the Next.js configuration file, improving DX with type safety and autocompletion.
- Self-hosting Improvements: More granular control over Cache-Control headers, enabling precise caching strategies at the component and route levels.
- Server Actions Security: Server Actions now generate unguessable endpoints and automatically remove unused actions at build time, enhancing security and reducing bundle size.
- Bundling External Packages (Stable): New configuration options for bundling external packages in both App and Pages Router, improving build performance and dependency management.
- ESLint 9 Support: Added support for ESLint 9 with updated React Hooks linting rules and backward compatibility.
- Development and Build Performance: Overall improvements in build times, faster Fast Refresh with caching of fetch responses during development, and optimized static generation by reusing render results and sharing fetch caches.