Thursday, December 18th 2025
Next.js 16.1
Posted byNext.js 16.1 focuses on faster development workflows and improved stability, with major updates to Turbopack and tooling.
- Turbopack File System Caching for
next dev(stable): Improved compile times fornext devby default. - Next.js Bundle Analyzer (experimental): Optimize your code with our new interactive tool.
- Easier debugging: Debug your Next.js app with
next dev --inspect. - Transitive external dependencies: Turbopack can automatically handle transitive external dependencies with no warnings.
Upgrade Today
# Use the automated upgrade CLI
npx @next/codemod@canary upgrade latest
# ...or upgrade manually
npm install next@latest react@latest react-dom@latest
# ...or start a new project
npx create-next-app@latestTurbopack File System Caching for next dev
Turbopack file system caching for next dev is now stable and on by default. Compiler artifacts are stored on disk, leading to significantly faster compile times when restarting your development server, especially in large projects.
First route compile time
~10× faster
Cold
Cached
~5× faster
Cold
Cached
Large internal Vercel app
~14× faster
Cold
Cached
Internal applications at Vercel have been dogfooding this for the past year. To learn more about how we built file system caching for Turbopack, watch Luke Sandberg's talk at Next.js Conf.
Following this release, we'll be stabilizing file system caching for next build. See our documentation for more information, and share your feedback on the dedicated GitHub discussion.
Next.js Bundle Analyzer (experimental)
Next.js 16.1 includes a new experimental Bundle Analyzer that works with Turbopack. It makes it easier to optimize bundle sizes for both server and client code—helping improve Core Web Vitals, reduce lambda cold start times, and identify bloated dependencies.
next experimental-analyzeRunning the command launches an interactive UI to inspect production bundles, identify large modules, and see why they're included.

Try it yourself: Open the interactive Bundle Analyzer demo to explore the module graph.
The Bundle Analyzer is deeply integrated into Next.js, allowing you to:
- Filter bundles by route
- View the full import chain showing why a module is included
- Trace imports across server-to-client component boundaries and dynamic imports
- View CSS and other imported asset sizes
- Switch between client and server views
The Bundle Analyzer is in early development and will be improved further in future releases. Share your feedback on the dedicated GitHub discussion.
Easier Debugging with next dev --inspect
You can now enable the Node.js debugger by passing --inspect to next dev. Previously this required passing NODE_OPTIONS=--inspect and would attach the inspector to all processes spawned by Next.js instead of only to the process running your code.
Improved Handling of serverExternalPackages
Next.js allows you to keep dependencies unbundled using serverExternalPackages. Previously, this only worked reliably for direct dependencies. If you used a library that internally depends on something like sqlite, and needed to externalize sqlite, you'd have to add it to your own package.json—even though it's not your direct dependency. This workaround leaked internal implementation details, created maintenance burden, and could lead to impossible version conflicts when multiple packages required different versions of the same dependency.
Next.js 16.1 fixes this for Turbopack, which now correctly resolves and externalizes transitive dependencies in serverExternalPackages without additional configuration.
Other Updates
- 20MB smaller installs: Next.js installs are about 20MB smaller thanks to simplifications in the Turbopack file system caching layer.
- New
next upgradecommand: A newnext upgradecommand makes upgrading easier. Going forward, you can just run this to upgrade Next.js versions. - MCP
get_routestool: The Next.js DevTools MCP server now has aget_routestool to get the full list of routes in your application. generateStaticParamstiming: Time spent ongenerateStaticParamsis now logged as part of the timings shown for requests in development.- Build worker logging:
next build"Collecting page data" and "Generating static pages" now log the number of worker threads used. - Improved async import bundling: Turbopack has improved bundling of async imports in dev to reduce the number of chunks produced, avoiding certain pathological but real-world cases.
- Relative source map paths: Turbopack now produces source maps with relative file paths for server-side code, improving compatibility with Node.js and other ecosystem tools.
Feedback and Community
Share your feedback and help shape the future of Next.js:
Contributors
Next.js is the result of the combined work of over 3,700 individual developers. This release was brought to you by:
- The Next.js team: Andrew, Hendrik, Janka, Jiachi, Jimmy, Jiwon, JJ, Josh, Jude, Sam, Sebastian, Sebbie, Wyatt, and Zack.
- The Turbopack team: Benjamin, Luke, Niklas, Tim, Tobias, and Will.
- The Next.js Docs team: Delba, Rich, Ismael, and Joseph.
Huge thanks to @kdy1, @eps1lon, @SyMind, @bgw, @swarnava, @devjiwonchoi, @ztanner, @ijjk, @huozhi, @icyJoseph, @acdlite, @unstubbable, @gnoff, @gusfune, @lukesandberg, @sokra, @hayes, @shuding, @wyattjoh, @marjan-ahmed, @timneutkens, @ajstrongdev, @zigang93, @mischnic, @Nayeem-XTREME, @hamirmahal, @eli0shin, @tessamero, @gaojude, @jamesdaniels, @georgesfarah, @timeyoutakeit, @sequencerr, @Strernd, @lucasadrianof, @wbinnssmith, @hamidreza-nateghi, @jokokoloko, @dijonmusters, @H01001000, @xusd320, @lubieowoce, @KaziMahbuburRahman, @zhiyanzhaijie, @feedthejim, @that-one-arab, @JamBalaya56562, @shrink, @florianliebig, @allenzhou101, @benmerckx, @ymc9, @Marukome0743, @pyrytakala, @danpeleg4, @gaearon, @styfle, @jhuleatt, @muhammadsyaddad, @roelvan, and @SukkaW for helping!
