January 26, 2025

Exploring the New Features in Next.js 15

Next.js 15 introduces a host of new features and improvements that enhance both developer experience and application performance.In this post, we'll delve into some of the most notable updates in this release.

thumbnail

Post Details

Exploring the New Features in Next.js 15

Next.js 15 introduces a host of new features and improvements that enhance both developer experience and application performance. In this post, we'll delve into some of the most notable updates in this release.

React 19 Support

Next.js 15 now fully supports React 19, enabling developers to leverage the latest React features and improvements. This includes new hooks like `useActionState`, which simplifies managing and displaying the state of ongoing actions in the UI. For example:

import { useActionState } from 'react';

const submitAction = async (prevState, formData) => {
  // Perform some action, such as adding a user to the users array
};

export default function ActionStateComponent() {
  const [state, formAction] = useActionState(submitAction, {
    users: [],
    error: null,
  });

  return (
    <div>
      <h1>useActionState Example</h1>
      <form action={formAction} id="action-hook-form" className="mb-4">
        <div>
          <input type="text" name="username" placeholder="Enter your name" />
          <button type="submit">Submit</button>
        </div>
      </form>
      <div>{state?.error}</div>
    </div>
  );
}

Source: What's New in Next.js 15: New Hooks, Turbopack and more

Turbopack in Development

The new next dev --turbo command is now stable, offering significant performance improvements during development. For instance, large Next.js applications have reported:

  • Up to 76.7% faster local server startup.
  • Up to 96.3% faster code updates with Fast Refresh.
  • Up to 45.8% faster initial route compilation without caching.

Source: Next.js 15

Enhanced Caching Semantics

In this release, caching defaults have been adjusted for better performance and developer control:

  • fetch Requests: Server-side fetch`` requests are no longer cached by default. Developers can opt into caching using the \cache` option.
  • GET Route Handlers: These are now uncached by default, with options to opt into caching as needed.
  • Client Router Cache: Page components are no longer cached by default during client-side navigation, ensuring the latest data is displayed.

Source: Next.js 15

Static Route Indicator

A new visual indicator in development mode now shows which routes are static or dynamic, aiding in performance optimization by providing insights into page rendering methods.

Source: Next.js 15

Improved Developer Experience

Next.js 15 continues to prioritize developer experience with several enhancements:

  • TypeScript Support: Faster type-checking and better editor integration.
  • Debugging Tools: More detailed error messages and stack traces for quicker issue resolution.
  • Enhanced CLI: New commands and options make project management more straightforward.

Source: Introduction to Next.js 15: What's New and Improved

For a comprehensive overview of all the new features and improvements, check out the official Next.js 15 release notes.

Source: Next.js 15

Stay updated with the latest developments in Next.js by visiting the official blog.

Source: Next.js Blog

Happy coding!