Svelte
npx @buildinternet/releases get svelteSvelteKit 3.0 pushed through thirteen preview releases in July, locking in a reshaped navigation API and retiring some of the framework's longest-lived abstractions.
Shallow routing baked into navigation. The 3.0 preview added shallow routing directly to goto, with a persistState option that preserves page state across reloads. pushState and replaceState are deprecated in favor of this unified API. Navigation options also simplified: the noScroll and keepFocus flags collapsed into a single reset option, reducing the surface developers have to reason about.
Path and origin configuration consolidated. A new kit.paths.origin config option replaces both kit.prerender.origin and the Node adapter's ORIGIN environment variable, giving origin configuration a single home. In the same wave, external redirects are now forbidden by default, and handleError can influence the HTTP status code returned on errors.
Legacy API surface trimmed. $app/stores, the base and assets exports from $app/paths, and individual param folder files are all removed in 3.0. Svelte config options must now flow through the Vite plugin, and the framework requires Vite 8 with bundled rolldown 1.0. Remote function files are gated behind experimental.remoteFunctions, and error() now takes an explicit message argument before the detail object.
Tracing is no longer experimental. Distributed tracing support graduated out of the experimental namespace and dropped the separate instrumentation flag requirement. Adapters can now also supply their own Vite plugins.
Stable line patched for security. Kit 2.70.2 fixed quadratic backtracking in Accept header content negotiation, a vulnerability in the request parser that could be triggered by a crafted header value.