SvelteKit 3.0 enters breaking-change territory while Vite 8 goes stable
July 6–12, 2026
This week SvelteKit dropped three consecutive 3.0 pre-releases that remove $app/stores, $app/paths, and require Vite 8 with Rolldown 1.0.0, while Next.js gradually ships Request Insights and an experimental TypeScript CLI.
The story of the week is SvelteKit's sprint toward 3.0. Three sequential pre-releases — next.5, next.6, and next.7 — landed within days of each other, each carrying major breaking changes that will require careful attention from anyone upgrading.
A clean break with $app/stores and $app/paths
The most surface-level change is the removal of two beloved modules. SvelteKit 3.0.0-next.7 eliminates $app/stores entirely, forcing migration to the updated $app/state module. SvelteKit 3.0.0-next.5 removes base, assets, and resolveRoute from $app/paths. Both decisions reflect the framework's ongoing move toward a more consistent state model. If you're reaching for $app/paths in your SvelteKit project, you'll need to import base and assets from $app/state instead.
Form actions get surgical
Form handling received significant attention. SvelteKit 3.0.0-next.6 now uses the HTTP status code returned from fail() for form action responses, rather than ignoring it. The form.error type in next.7 was tightened from any to App.Error | undefined — a welcome narrowing that catches type mismatches at compile time rather than runtime. On the stable side, SvelteKit 2.69.0 exposed a submitted property on remote forms, and SvelteKit 2.68.0 exposed RemoteFormEnhanceInstance and RemoteFormEnhanceCallback types for better TypeScript ergonomics.
Vite 8 and Rolldown 1.0.0 become the baseline
A hard requirement for Vite ^8.0.12, the first stable Vite 8 release bundling Rolldown 1.0.0, ripples through every SvelteKit next-release. SvelteKit 3.0.0-next.5 requires it, as does the SvelteKit Adapter for Vercel v7.0.0-next.1, the adapter-node 6.0.0-next.1, and enhanced-img 1.0.0-next.1. If you're running any of these adapters or plugins, you must upgrade your Vite version in lockstep.
Adapter config consolidation
The adapter-node 6.0.0-next.2 removes the ORIGIN environment variable and kit.prerender.origin config option, replacing both with a single kit.paths.origin config. This simplifies deployment configuration, especially for those running behind proxies. The adapter-node@5.5.7 also shipped a fix adding X-Accel-Buffering: no headers to SSE responses to prevent nginx buffering.
Next.js edges toward developer tooling
While the SvelteKit ecosystem dominated the week, Next.js shipped several canary releases worth noting. Next.js v16.3.0-canary.84 introduces Request Insights, which exposes dev snapshots to tools and HMR, derives request history and fetch data, and records local framework spans. Next.js v16.3.0-canary.83 adds an experimental TypeScript CLI backend, and Next.js v16.3.0-canary.82 normalizes expire and revalidate values to handle Infinity and surface configuration mistakes early.
Security and platform fixes
Two practical fixes worth highlighting: SvelteKit 2.69.1 patches a prototype pollution vulnerability when deleting file inputs, and the SvelteKit adapter-netlify v7.0.0-next.2 fixes type definitions for platform.context. Expo also added passkey sign-in to its accounts, replacing the password-plus-OTP combination for more secure authentication.
Releases covered
- SvelteKit 3.0.0-next.7 removes $app/stores and param files, hardens form.error typing
- SvelteKit 3.0.0-next.5 removes base/assets from $app/paths and requires Vite 8
- SvelteKit 3.0.0-next.6 overhauls form actions, HTTP status handling, and navigation
- SvelteKit 2.69.0 exposes submitted property of remote forms
- SvelteKit 2.68.0 exposes form enhancement types and sets submit field values
- SvelteKit Adapter for Vercel v7.0.0-next.1 requires Vite 8
- @sveltejs/enhanced-img@1.0.0-next.1 requires Vite 8.0.12+
- @sveltejs/adapter-node 6.0.0-next.2 consolidates origin config
- @sveltejs/adapter-node@5.5.7 fixes streaming buffering and socket file cleanup
- SvelteKit 2.69.1 fixes prototype pollution and unhandled promise rejection
- SvelteKit adapter-netlify v7.0.0-next.2 fixes platform.context types