NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3204 most downloaded on npm
The React Framework
Last release today
05 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Most releases are documented
notes for 40 of the last 60 stable releases
144 versions withdrawn
withdrawn after publishing
15 years old
3973 releases · first in 2011
ServerActionsGraph: pass ModuleGraphLayer as OperationVc: #94141
75b0945b-20260526 to c0cd4d5d-20260527: #94161require.context in Turbopack analyzer: #94162Huge thanks to @sokra, @bgw, @acdlite, @mischnic, @icyJoseph, @gaojude, @vercel-release-bot, @igorbabko, and @sampoder for helping!
One column per quarter.
Revert "Revert "refactor: write pages router export files directly to server/pages/"": #93409
d5736f09-20260507 to 75b0945b-20260526: #94131experimental.partialFallbacks: #93299Huge thanks to @sokra, @SyMind, @gnoff, @timneutkens, @eps1lon, @icyJoseph, @bgw, @unstubbable, @vercel-release-bot, and @acdlite for helping!
Replace next-ppr-optimizer with next-cache-components-optimizer: #94035
Huge thanks to @gaojude and @sokra for helping!
[Skills] Mark backport-pr and create-pr as internal: #94076
Huge thanks to @gaojude for helping!
Add next-dev-loop and next-ppr-optimizer skills: #93943
Huge thanks to @gaojude, @timneutkens, @gnoff, and @samselikoff for helping!
[ci] Add an TURBO_TASKS_AVAILABLE_PARALLELISM environment variable that overrides std::available_parallelism callsites: #93995
TURBO_TASKS_AVAILABLE_PARALLELISM environment variable that overrides std::thread::available_parallelism callsites: #93995--debug-build-paths work with src/ directory projects: #94016TURBO_TASKS_AVAILABLE_PARALLELISM to 4 in most e2e tests: #93996Huge thanks to @bgw, @unstubbable, @timneutkens, @acdlite, @lukesandberg, @mischnic, @gnoff, and @vercel-release-bot for helping!
Enable mimalloc in benchmarks: #93388
Huge thanks to @lukesandberg, @mischnic, @aurorascharff, @timneutkens, @wbinnssmith, @unstubbable, and @acdlite for helping!
Add nextConfig.instrumentationClientInject: #93785
compile_route tool: #93337prefetch={true} and cachedNavigations: #93940EcmascriptBuildNodeChunkVersion.
: #93807Huge thanks to @timneutkens, @mischnic, @gnoff, @kakadiadarpan, @unstubbable, @wbinnssmith, and @lukesandberg for helping!
[Turbopack] Add graph-based CSS chunking algorithm behind experimental.cssChunking: "graph": #93606
og-api test suite into default and standalone variants: #93915Huge thanks to @timneutkens, @sokra, @unstubbable, @mischnic, @aurorascharff, and @lukesandberg for helping!
turbo-tasks: prioritize recomputed tasks with Recomputation priority: #93876
Huge thanks to @sokra for helping!
Redesign dev overlay: cleaner shell + instant fix-card guidance: #93755
Huge thanks to @unstubbable and @yavorpunchev for helping!
[turbopack] fix feature usage telemetry: #93100
generateViewport: #93759next internal static-routes-info CLI command: #93399router.query corruption with basePath + rewrites: #93294dd453071-20260506 to d5736f09-20260507: #93702"use cache" as cause of nested-dynamic cache error: #93707root attribute for strongly consistent reads and collectibles: #93114playwright-core to resolve _finishedPromise on requestFailed: #93802cached-navigations tests": #93798Date.now() cause shadowing in sync IO error overlay: #93857npx skills add hides them: #93856Huge thanks to @lukesandberg, @mischnic, @unstubbable, @timneutkens, @aurorascharff, @icyJoseph, @acdlite, @christopherkindl, @sokra, @gnoff, @publictheta, @gaojude, @unclebay143, @lubieowoce, @vercel-release-bot, and @samselikoff for helping!
Proof of concept: task eviction after snapshot for turbo-tasks-backend: #91790
Huge thanks to @lukesandberg for helping!
Remove redundant instant navigation prefetch header: #93713
Huge thanks to @acdlite, @gnoff, and @timneutkens for helping!
Use Next.js version as Turbopack persistent cache versioning key: #93605
unstable_io: #93621Huge thanks to @gnoff, @sokra, @tim123abc, @aurorascharff, @acdlite, @timneutkens, @bgw, and @lukesandberg for helping!
Hold cacheSignal across unstable_cache foreground revalidation: #93617
cacheSignal across unstable_cache foreground revalidation: #93617Huge thanks to @unstubbable for helping!
[devtools] Force ANSI colors on overlay code frames regardless of TTY: #93550
searchParams access through a Proxy to catch missing-key reads: #93549rcstr! macro_rules with proc macro: #93551Huge thanks to @aurorascharff, @icyJoseph, @eps1lon, @lukesandberg, @timneutkens, @unstubbable, and @bgw for helping!
perf(ecmascript): shrink JsValue 64→32 bytes: #93106
Huge thanks to @mmastrac, @sokra, and @mischnic for helping!
Disable instant validations in draft mode: #93472
ReferencedAsset::from_resolve_result as a turbotask: #93297Huge thanks to @samselikoff, @lukesandberg, and @bgw for helping!
Refactor: Decouple request store creation from req / res: #93499
req / res: #93499'use cache' module-scope deadlocks early in dev: #93500'use cache' deadlock probe worker: #93538f4e0d4ed-20260429 to dd453071-20260506: #93547Huge thanks to @lukesandberg, @unstubbable, @mischnic, @sokra, @icyJoseph, @eps1lon, @gnoff, and @vercel-release-bot for helping!
Don't suppress usage of deprecated TypeScript compilerOptions: #93377
compilerOptions: #93377RELEASE_BOT_GITHUB_TOKEN: #93455RELEASE_BOT_GITHUB_TOKEN: #93456unstable_prefetch and unstable_instant docs to reflect current API shape: #93514setup-nextjs-build.yml workflow: #93512Huge thanks to @eps1lon, @unstubbable, @armando-andre, @mischnic, and @gnoff for helping!
Upgrade React from da9325b5-20260417 to f4e0d4ed-20260429: #93457
da9325b5-20260417 to f4e0d4ed-20260429: #93457@vercel/ncc: #93459cacheHandlers keys: #93453Huge thanks to @mischnic, @vercel-release-bot, @eps1lon, @rishishanbhag, and @lukesandberg for helping!
Drop once_cell from all direct crate deps: #93095
Huge thanks to @mmastrac for helping!
Revert "Revert "Node.js streams: Add forkpoint for prerenderToStream"": #93376
other: #93206Huge thanks to @sokra, @timneutkens, @lukesandberg, and @samselikoff for helping!
[test] Preserve Playwright traces on every failure: #93366
Huge thanks to @eps1lon, @unstubbable, @timneutkens, and @ztanner for helping!
Honor the route-level expire value with blocking revalidation: #93211
expire value with blocking revalidation: #93211experimental.turbopackWorkerAssetPrefix to keep Workers same-origin when assetPrefix is a CDN: #93271onError once: #93209Huge thanks to @mmastrac, @unstubbable, @GuinsooRocky, @sokra, @eps1lon, @mischnic, @maximecolin, @lukesandberg, @wbinnssmith, @lubieowoce, @timneutkens, @ztanner, @zana-abdi2002, and @icyJoseph for helping!
Apply sourcemaps by default during prerender in next build: #93280
next build: #93280export * as X from './self' in scope-hoisted modules: #93192Huge thanks to @eps1lon, @mischnic, @unstubbable, @ztanner, @sokra, @wbinnssmith, and @lukesandberg for helping!
Preserve __NEXT_ERROR_CODE across the /_error page handoff: #93183
__NEXT_ERROR_CODE across the /_error page handoff: #93183Huge thanks to @unstubbable and @lukesandberg for helping!
[next/image] Stop using deprecated url.parse: #93208
no-location-assign-relative-destination: #92900fef12a01-20260413 to da9325b5-20260417: #92945url.parse: #93208shallow-routing: #93006'use cache': #93055'use cache' fill timeout configurable: #93070react@experimental is available: #93235super(...) messages in Error subclass constructors: #93182Huge thanks to @bgw, @eps1lon, @SukkaW, @nextjs-bot, @devjiwonchoi, @aurorascharff, @feedthejim, @icyJoseph, @ztanner, @vercel-release-bot, @mmastrac, @mischnic, @gaojude, @unstubbable, @lukesandberg, @ijjk, @wbinnssmith, @awo00, @sokra, @acdlite, and @christopherkindl for helping!
Improve "make root node" trace attributes: #92941
Huge thanks to @sokra for helping!
Support more prefetch configuration options: #92859
'use cache' invocations: #91830Huge thanks to @gnoff, @unstubbable, @ztanner, @aurorascharff, @mmastrac, and @icyJoseph for helping!
fix(next/image): ensure images.maximumResponseBody applies to local images too: #92920
images.maximumResponseBody applies to local images too: #92920unstable_io: #92923Huge thanks to @styfle, @mmastrac, @ztanner, @lukesandberg, @sokra, @timneutkens, and @gnoff for helping!
Backport/docs fixes 16.2 - July round by @icyJoseph in https://github.com/vercel/next.js/pull/96031
Full Changelog: https://github.com/vercel/next.js/compare/v16.2.11...v16.2.12
This release contains security fixes for the following advisories:
This release contains security fixes for the following advisories:
High:
Moderate:
Contains no changes except publishing @next/swc-wasm-web which was accidentally not published since 16.2.4.
Contains no changes except publishing @next/swc-wasm-web which was accidentally not published since 16.2.4.
Empty release to ensure next@latest points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM di
Empty release to ensure next@latest points at a stable release. Next.js only allows publishing with Trusted Publishing enabled. In order to fix NPM dist-tags, we have to release a new version. Updating dist-tags is not possible with Trusted Publishing.
Release with no changes in an attempt to fix next@latest pointing at a prerelease version.
Release with no changes in an attempt to fix next@latest pointing at a prerelease version.
> This release is backporting bug fixes. It does not include all pending features/changes on canary.
[!NOTE] This release is backporting bug fixes. It does not include all pending features/changes on canary.
playwright-core to resolve _finishedPromise on requestFailed (#93920)router.query corruption with basePath + rewrites (#93917)FormData entries (#94240)Huge thanks to @eps1lon, @icyJoseph, @unstubbable, @mischnic, @bgw, @timneutkens, and @lukesandberg for helping!
> This release contains security fixes and backported bug fixes. It does not include all pending features/changes on canary.
[!NOTE] This release contains security fixes and backported bug fixes. It does not include all pending features/changes on canary.
The following advisories have been addressed:
High:
Moderate:
Low:
cacheHandlers keys (#93453)> This release contains security fixes and backported bug fixes. It does not include all pending features/changes on canary.
[!NOTE] This release contains security fixes and backported bug fixes. It does not include all pending features/changes on canary.
The following advisories have been addressed:
High:
Moderate:
Low:
cacheHandlers keys (#93453)> This release is backporting bug fixes. It does not include all pending features/changes on canary.
[!NOTE] This release is backporting bug fixes. It does not include all pending features/changes on canary.
Huge thanks to @Badbird5907, @lukesandberg, @andrewimm, @sokra, and @mischnic for helping!
For more information about the fixed security vulnerability, please see https://vercel.com/changelog/summary-of-cve-2026-23869. The release does not i…
[!NOTE] This release is backporting security and bug fixes. For more information about the fixed security vulnerability, please see https://vercel.com/changelog/summary-of-cve-2026-23869. The release does not include all pending features/changes on canary.
Huge thanks to @icyJoseph, @sokra, @wbinnssmith, @eps1lon and @ztanner for helping!
Backport: TypeScript v6 deprecations for baseUrl and moduleResolution
[!NOTE] This release is backporting bug fixes. It does not include all pending features/changes on canary.
Huge thanks to @nextjs-bot, @icyJoseph, @ijjk, @gaojude, @wbinnssmith, @lukesandberg, and @bgw for helping!
> This release is backporting bug fixes. It does not include all pending features/changes on canary.
[!NOTE] This release is backporting bug fixes. It does not include all pending features/changes on canary.
cacheComponents (#91711){eval:true} in worker_threads constructors (#91666)Huge thanks to @icyJoseph, @abhishekmardiya, @ijjk, @mischnic, @unstubbable, @sokra, and @lukesandberg for helping!
Replace deprecated moduleResolution: "node": #92654
moduleResolution: "node": #92654Huge thanks to @mischnic, @sokra, @unstubbable, @aurorascharff, @acdlite, @bgw, @mmastrac, @eps1lon, and @lukesandberg for helping!
Allow overriding outputHashSalt in modifyConfig: #92856
Huge thanks to @bgw, @ztanner, @sokra, and @mischnic for helping!
fix(trace-server): default MCP port to --port + 1 to avoid conflicts: #92831
"use cache" args during final prerender: #92820Huge thanks to @mmastrac, @sokra, @mischnic, @timneutkens, @vercel-release-bot, @unstubbable, @icyJoseph, and @MukundaKatta for helping!
Stop using deprecated baseUrl: #92653
baseUrl: #92653@next/swc binary postinstall: #92813Huge thanks to @sokra, @eps1lon, @bgw, @icyJoseph, @mischnic, and @timneutkens for helping!
Scope Safari ?ts= cache-buster to CSS/font assets only (Pages Router): #92580
Huge thanks to @lukesandberg and @acdlite for helping!
Fix devlow-bench: tsconfig rootDir mismatch with package.json bin: #92800
Huge thanks to @mmastrac for helping!
Stop using deprecated downlevelIteration: #92652
"use cache": #92736downlevelIteration: #92652Huge thanks to @bgw, @mmastrac, @sokra, @timneutkens, @eps1lon, @unstubbable, @mischnic, @bgub, @aurorascharff, @gnoff, and @lukesandberg for helping!
Ensure x-nextjs-data header is only set during resolve: #92752
Huge thanks to @ijjk for helping!
Exclude trace files from directory deletion in builds: #92486
Huge thanks to @lukesandberg, @mmastrac, and @acdlite for helping!
Fix prefetch hints not being loaded during revalidation: #92625
Huge thanks to @acdlite for helping!
test: use Turborepo pack task for test isolation: #92575
404b38c7-20260408 to fef12a01-20260413: #92728baseUrl: #92469Huge thanks to @vercel-release-bot, @eps1lon, @mischnic, @timneutkens, @hamedniroomand, @sleitor, @sokra, @Badbird5907, @fireairforce, and @andrewimm for helping!
Node.js streams: Add forkpoint for error recovery: #92457
--debug-build-paths requires route group folders in paths: #92618Huge thanks to @lukesandberg, @timneutkens, and @icyJoseph for helping!
feat(turbopack): add LocalPathOrProjectPath PostCSS config resolution: #91338
Huge thanks to @lukesandberg, @sokra, @mischnic, @timneutkens, and @mmastrac for helping!
Add codemod command to middleware deprecation warning: #92532
compilerOptions.paths in tsconfigs without compilerOptions.baseUrl: #92277@turbopack/base64 module: #92549Huge thanks to @sokra, @timneutkens, @hamidrezahanafi, @mmastrac, @lukesandberg, @aurorascharff, @bgw, @ztanner, @mischnic, @fireairforce, and @bgub for helping!
Don't swallow strings thrown in Server Components: #92592
Huge thanks to @eps1lon for helping!
[test] Stop using deprecated target: "es5" TypeScript compiler option: #92458
target option in React Compiler for Pages + React 18: #91500unstable_retry() behavior: #91827target: "es5" TypeScript compiler option: #92458Huge thanks to @sokra, @timneutkens, @devjiwonchoi, @aurorascharff, @eps1lon, @lukesandberg, @icyJoseph, @bgw, @mmastrac, and @wbinnssmith for helping!
Your coding agent can read these notes before it upgrades. Set up the MCP server →