---
collection: frontend-frameworks
collection_name: Frontend Frameworks
week_start: 2026-07-06
title: SvelteKit 3.0 enters breaking-change territory while Vite 8 goes stable
release_count: 22
generated: 2026-07-13
canonical: https://releases.sh/collections/frontend-frameworks/digest/2026-07-06
---

# SvelteKit 3.0 enters breaking-change territory while Vite 8 goes stable

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](/release/rel_1rMskW060DcWmp_SU0TPn-sveltekit-3-0-0-next-7-removes-app-stores-and-param-files-hardens-form-error) eliminates `$app/stores` entirely, forcing migration to the updated `$app/state` module. [SvelteKit 3.0.0-next.5](/release/rel_96BPhN_GSv-E1I7lI7ukF-sveltekit-3-0-0-next-5-removes-base-assets-from-app-paths-and-requires-vite-8) 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](/release/rel_a0BM5D2wIO40Aq4QQ2vqa-sveltekit-3-0-0-next-6-overhauls-form-actions-http-status-handling-and) 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](/release/rel_teoEWFDQ_cJ04sJHZpGJq-sveltekit-2-69-0-exposes-submitted-property-of-remote-forms) exposed a `submitted` property on remote forms, and [SvelteKit 2.68.0](/release/rel_mEJOjlmLhLqVedlaT-Po_-sveltekit-2-68-0-exposes-form-enhancement-types-and-sets-submit-field-values) 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](/release/rel_96BPhN_GSv-E1I7lI7ukF-sveltekit-3-0-0-next-5-removes-base-assets-from-app-paths-and-requires-vite-8) requires it, as does the [SvelteKit Adapter for Vercel v7.0.0-next.1](/release/rel_6PbgqTgNylXaTOfHgBcOO-sveltekit-adapter-for-vercel-v7-0-0-next-1-requires-vite-8), the adapter-node 6.0.0-next.1, and [enhanced-img 1.0.0-next.1](/release/rel_KVxZ9eaumpnYp30kDyhTt-sveltejs-enhanced-img-1-0-0-next-1-requires-vite-8-0-12). 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](/release/rel_9ho4jhx0jN3UH-vClJrLT-sveltejs-adapter-node-6-0-0-next-2-consolidates-origin-config) 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](/release/rel_BgscVEyivd4snALZ3M5U3-sveltejs-adapter-node-5-5-7-fixes-streaming-buffering-and-socket-file-cleanup) 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](/release/rel_PN4mrV7AG6zy4DjPt1NBT-next-js-v16-3-0-canary-84-adds-request-insights-with-dev-snapshots-and-hmr) 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](/release/rel_kkmBkrqwHoHXpIQvt3I2W-next-js-v16-3-0-canary-83-adds-experimental-typescript-cli-backend) adds an experimental TypeScript CLI backend, and [Next.js v16.3.0-canary.82](/release/rel_81a-5DkemmvlbD7l5_s7k-next-js-v16-3-0-canary-82-normalizes-expire-and-revalidate-values) 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](/release/rel_oQflo-_uObskPhfi7PiDF-sveltekit-2-69-1-fixes-prototype-pollution-and-unhandled-promise-rejection) patches a prototype pollution vulnerability when deleting file inputs, and the [SvelteKit adapter-netlify v7.0.0-next.2](/release/rel_Nijrz0L4lLNpCAQpEknDj-sveltekit-adapter-netlify-v7-0-0-next-2-fixes-platform-context-types) fixes type definitions for `platform.context`. Expo also [added passkey sign-in](/release/rel_Lsb42L6v7Q-90yhtxnbW0-expo-adds-passkey-sign-in-to-accounts) to its accounts, replacing the password-plus-OTP combination for more secure authentication.

## Releases covered

### Expo

- [Expo adds passkey sign-in to accounts](https://releases.sh/release/rel_Lsb42L6v7Q-90yhtxnbW0-passkey-sign-in-now-available)

### Svelte

- [SvelteKit 3.0.0-next.7 removes $app/stores and param files, hardens form.error typing](https://releases.sh/release/rel_1rMskW060DcWmp_SU0TPn-app-stores-removed-form-error-now-typed-param-files-deprecated)
- [SvelteKit 3.0.0-next.5 removes base/assets from $app/paths and requires Vite 8](https://releases.sh/release/rel_96BPhN_GSv-E1I7lI7ukF-app-paths-simplified-base-and-assets-removed-requires-vite-8)
- [SvelteKit 3.0.0-next.6 overhauls form actions, HTTP status handling, and navigation](https://releases.sh/release/rel_a0BM5D2wIO40Aq4QQ2vqa-form-actions-now-return-http-status-codes-external-redirects-forbidden-by)
- [SvelteKit 2.69.0 exposes submitted property of remote forms](https://releases.sh/release/rel_teoEWFDQ_cJ04sJHZpGJq-remote-forms-now-expose-submitted-property)
- [SvelteKit 2.68.0 exposes form enhancement types and sets submit field values](https://releases.sh/release/rel_mEJOjlmLhLqVedlaT-Po_-form-enhancement-types-exposed-submit-fields-now-populated-on-submission)
- [SvelteKit Adapter for Vercel v7.0.0-next.1 requires Vite 8](https://releases.sh/release/rel_6PbgqTgNylXaTOfHgBcOO-requires-vite-8-0-12)
- [@sveltejs/enhanced-img@1.0.0-next.1 requires Vite 8.0.12+](https://releases.sh/release/rel_KVxZ9eaumpnYp30kDyhTt-requires-vite-8-0-12-and-above)
- [@sveltejs/adapter-node 6.0.0-next.2 consolidates origin config](https://releases.sh/release/rel_9ho4jhx0jN3UH-vClJrLT-kit-paths-origin-replaces-prerender-origin-and-origin-env-var)
- [@sveltejs/adapter-node@5.5.7 fixes streaming buffering and socket file cleanup](https://releases.sh/release/rel_BgscVEyivd4snALZ3M5U3-streamed-responses-no-longer-buffered-by-reverse-proxies-socket-file-cleanup)
- [SvelteKit 2.69.1 fixes prototype pollution and unhandled promise rejection](https://releases.sh/release/rel_oQflo-_uObskPhfi7PiDF-prototype-pollution-fixed-unhandled-promise-rejection-prevented)
- [SvelteKit adapter-netlify v7.0.0-next.2 fixes platform.context types](https://releases.sh/release/rel_Nijrz0L4lLNpCAQpEknDj-platform-context-types-fixed)

### Vercel

- [Next.js v16.3.0-canary.84 adds request insights with dev snapshots and HMR](https://releases.sh/release/rel_PN4mrV7AG6zy4DjPt1NBT-request-insights-dev-snapshots-fetch-history-framework-spans)
- [Next.js v16.3.0-canary.83 adds experimental TypeScript CLI backend](https://releases.sh/release/rel_kkmBkrqwHoHXpIQvt3I2W-experimental-typescript-cli-backend-ships)
- [Next.js v16.3.0-canary.82 normalizes expire and revalidate values](https://releases.sh/release/rel_81a-5DkemmvlbD7l5_s7k-expire-and-revalidate-values-now-normalized-and-validated)
