Releases Index

BetaWeekly digests are a beta — we're trying something new. Feedback welcome.

Next.js 16.4 lands as Turbopack, GC, and crash reporting harden the stack

October 5–11, 2026

VercelNuxtExpoSvelte
Vercel, Nuxt, Expo, Svelte

Next.js shipped its 16.4 stable release alongside a rapid canary burst that enables garbage collection by default, Nuxt rolled out a rebuilt interactive dev terminal with its CLI v4, and Expo's EAS Observe began capturing native crashes on Android and iOS.

The week at a glance

Replay the week
FeaturesEnhancementsFixesMajorLandmarkTile size reflects impact

Next.js 16.4 arrives amid a Turbopack hardening blitz

The headline of the week is Next.js itself: the stable 16.4 release shipped with compiler plugin warnings surfaced in more situations, corrected proxy detection under compound page extensions, and bundle-analyzer history recorded on every run — steady groundwork rather than flash, but it anchors a week in which the canary line moved fast on the build layer.

Most of that churn is Turbopack maturing. Garbage collection is now on by default on canary, with two GC paths that used to leave half-torn-down dependency edges repaired, and the webp feature flag removed so builds emit webp unconditionally. Snapshot handling got its own overhaul, with copy-on-write snapshots bincode-encoded instead of cloned, tasks copied on first modification, and persisting disabled after a failed snapshot. Errors that used to dead-end are being made legible: a fetch failure for a Google font now reports the real cause instead of "Module not found", and Turbopack now emits an actionable error when Node.js child processes can't connect, while module resolution quietly ignores realpath errors to match Node. Elsewhere the server error inspector stopped parsing error message lines as stack frames, and the public next/image-optimizer-transform subpath plus fixes for chunk group registration and collapsed generated-path classification round out the dev-experience work.

Tooling and scaffolding also moved. create-next-app now scaffolds with ESLint 10 and writes an agent feedback block into AGENTS.md when enabled, with a new turbo-trace-size CLI and a no-memory tracing flag for CI. Upgrade prompting became more useful too: agent upgrade prompts now show choices while dev and build keep running, static route error guidance is clearer, and configured output directories now survive static export. Smaller but real: telemetry delivery was repaired on Node.js 24 and the deprecated React.FormEvent type gave way to SubmitEvent. Oddly, the week also saw forbidden() and unauthorized() stabilized and then reverted, so treat those APIs as still experimental, and many developers upgrading from older lines will benefit from a dedicated guide to keeping pages static and optimizing the static shell.

Nuxt rebuilds the dev terminal

Nuxt's minor release centers on an interactive terminal UI in nuxt dev, showing URLs, startup progress and keyboard shortcuts, with panels for error logs, routes and network requests — plus a new major version of the Nuxt CLI that arrives automatically as a dependency. A follow-up patch tidied optimizer messages under Vite 8.1+, widened baseURL typing for named fetch responses, and made Nitro resolve its type declarations correctly under nodenext. The portable event's web view is now built lazily on first access, a small but welcome perf win for server-rendered pages.

Expo's observability net widens

Expo's biggest addition is native crash reporting in EAS Observe: uncaught Java and Kotlin exceptions and OS crash records on Android, Mach exceptions and Unix signals on iOS, all alongside the JavaScript errors it already captured and with no setup required. It needs expo-observe 57.0.21 or later on SDK 57. On the CLI side, browser device login with resumable commands targets chat agents, iOS Simulator sessions can be recorded through serve-sim, and App Store Connect reads and upload commits now retry safely. Custom builds gained an embedded bundle upload step with signed asset and source map URLs in update:view --json, and a late fix stops simulator sessions orphaned by an ill-timed Ctrl+C.

Svelte's quiet correctness pass

Svelte's week was small and surgical: async deriveds are no longer created for components destroyed mid-await, untracked derived reads stop pinning disconnected dependencies, and malformed {:else} chains now error instead of misbehaving. SvelteKit patched relative imports in generated types under nodenext resolution, and its Netlify adapter learned to handle bare Node built-in imports and .wasm/font assets in edge functions.

AI-generated digests may contain mistakes.
Releases covered20
Vercel