Vercel Recently launched Nextjs 15, and decaled it as stable and ready for production. Today we'll disscuss what's new in Nextjs 15.
Basically there are new features in Nextjs 15;
React 19 RC Support
Next.js 15 RC now supports React 19 RC. This includes the new features for both client and server side rendering. One of the new features in React 19 is Actions which is a very common use case in React Apps to perform Data Mutation and then update in response.
For example; when a user submits a form to change their name, you'll make an api request and then handle a response.
@next/codemode CLI
Now you can easily upgrade to latest Nextjs and React versions
npx @next/codemod@canary upgrade latest
Turbopack Dev (Stable)
Performance and stability has been improved to the next level.
React Compiler (Experimental)
The React Compiler is a new compiler created by the React team at Meta. Complier understands your code at a deep level through it's understanding of plain JavaScript semantics and the rules of React, which allows it to add automatic optimizations to your code.
The code reduce the amount of manual memorization developers has to do with apis such as useMemo and useCallback, making code simpler, easier to maintain, and less error prove.
Hydration Error Improvements.
Nextjs continues to build on those by an improved hydration error view. Hydration errors now display the source code of the error with suggestion on how to address the error.
Such improvements help the developers to better understand the error fix it in low time.
Caching Updates
In Nextjs 15, caching default for fetch requests, GET Route handlers and Client Route Handlers and client router cache has changed from cached by default to uncached by default.
If you want to retain the previous behavior, you can continue to opt-into caching.
Partial Prerendering (Experimental)
Partial Prerendering is a new rendering strategy that combines the benefits of static and dynamic rendering on the same route. Quite similar to parallel routing, right? With PPR, you can wrap any dynamic components in a Suspense Boundary.
When a new request comes in, Nextjs will immediately serve a static HTML shell from the cache, then render and stream the dynamic parts in the same HTTP request.
unstable_after API (Experimental)
This executers a stream after a response finishes streaming.
So, these were the backbone new features of Nextjs 15, I find them quite fascinating and interesting, and after using them from almost two months (October 2025 to December 2025), I can now witness that is really lot much better already, and in the next releases it will improve further more.
I would love to hear your thoughts, questions and critics on it.
Top comments (0)