{"collection":{"slug":"frontend-frameworks","name":"Frontend Frameworks"},"digest":{"id":"cwd_oWDdvcDyo0d9iKyXG1jAL","weekStart":"2026-06-01","title":"SvelteKit 3 goes alpha with bundler shifts and tougher requirements","intro":"SvelteKit’s first 3.0 alpha drops alongside major adapter rewrites that migrate from Rollup to Rolldown, while Nuxt ships emergency security patches across both its v3 and v4 lines.","body":"### SvelteKit 3: the path forward\n\nThis week SvelteKit took a big step toward its next major version with the release of [@sveltejs/kit@3.0.0-next.0](/release/rel_-4D3xOWG2HRorYYTuP0tG-sveltejs-kit-3-0-0-next-0) and an accompanying suite of adapter pre-releases. The core framework bumps minimum requirements to Node 22 and TypeScript 6, upgrades to cookie v1 (which restricts cookie names to ASCII characters), and removes the `preloadStrategy` option in favor of always using `modulepreload`. A follow-up [3.0.0-next.1](/release/rel_X2PjTEUYPHCyKmhHMOcPW-sveltejs-kit-3-0-0-next-1) patch restores the `$app/environment` alias for compatibility with dependencies that still import from the old path.\n\nPerhaps more consequential than the framework changes themselves are the shifts happening in the adapter layer. [@sveltejs/adapter-node@6.0.0-next.0](/release/rel_gNWYNl6z97D0ypcAhbFRC-sveltejs-adapter-node-6-0-0-next-0) and [@sveltejs/adapter-vercel@7.0.0-next.0](/release/rel_1uAARSakxN46Z_WbsruQd-sveltejs-adapter-vercel-7-0-0-next-0) both swap Rollup for Rolldown as their bundler, with the Vercel adapter targeting `es2022` for edge functions. [@sveltejs/adapter-netlify@7.0.0-next.0](/release/rel_xB_YtkWSDZAqc0BEFLwuz-sveltejs-adapter-netlify-7-0-0-next-0) additionally aligns with the stable Netlify Frameworks API, meaning deployments now require Netlify CLI v17.31.0 or later. [@sveltejs/adapter-cloudflare@8.0.0-next.0](/release/rel_GlQqUbPRJ0zoHTyGn-5jc-sveltejs-adapter-cloudflare-8-0-0-next-0) upgrades `@cloudflare/workers-types` and replaces `platform.context` with `platform.ctx`. Meanwhile, [@sveltejs/package@3.0.0-next.0](/release/rel_xbkAMGlQmEps4vaOr5Z9o-sveltejs-package-3-0-0-next-0) and [@sveltejs/enhanced-img@1.0.0-next.0](/release/rel_2f0HbiPNi9nyelvi_19Ta-sveltejs-enhanced-img-1-0-0-next-0) also require Node 22, with enhanced-img additionally mandating Vite 8 and `vite-plugin-svelte` 7.\n\nFor users not ready to jump to v3, the 2.x line continues to improve. [@sveltejs/kit@2.63.0](/release/rel_IKRBGI6fysMCdUUajSKUz-sveltejs-kit-2-63-0) adds explicit environment variable support, and [@sveltejs/kit@2.63.1](/release/rel_jatpqtXpQS7Hz1DiuV6hx-sveltejs-kit-2-63-1) fixes a Windows path issue in generated `env.d.ts` imports and switches `query.live` to SSE. The [@sveltejs/kit@2.62.0](/release/rel_QC0D3efEQWQbom1jcflJ4-sveltejs-kit-2-62-0) release from earlier in the week lets you pass SvelteKit config through the Vite plugin, preserves multiple `Set-Cookie` headers on 304 responses, and catches streaming errors in load functions on the client.\n\n### Svelte core: quiet stability\n\nThe Svelte compiler itself saw three patch releases. [svelte@5.56.1](/release/rel_TmR1ObxsJocsvTQ-0Tff_-svelte-5-56-1) adds compile-time errors for duplicate declaration tags and fixes cross-referencing between declarators. [svelte@5.56.2](/release/rel_xpePsHLEr4QLCMmP5fBdm-svelte-5-56-2) improves tracking of effect end nodes for async sibling components and quiets a false-positive reactivity loss warning. [svelte@5.56.3](/release/rel_f_oYlAfc5R5lBkpkleWCK-svelte-5-56-3) ignores errors in destroyed effects and types BigInts in `$state.snapshot()` returns.\n\n### Nuxt security hotfixes\n\nBoth Nuxt v3 and v4 received urgent security releases on the same day. [Nuxt v4.4.7](/release/rel_a4lDFFCTA_XgU-KAxN_RL-v4-4-7) and [Nuxt v3.21.7](/release/rel_bCTjUtJJOwjnBdeUBdiF3-v3-21-7) fix a `noSSR` assignment ordering issue in Nitro that could affect payload extraction, and patch a Vite `allowDirs` filtering bug where directories with shared prefixes could be incorrectly excluded. Users on either version should upgrade promptly.\n\n### Next.js backports and Turbopack progress\n\nNext.js spread fixes across three release channels. The [v16.2.7](/release/rel_uF78CfsWgCtTv-rHtVNbI-next-js-v16-2-7-fixes-hydration-router-query-and-server-action-forwarding) backport resolves a dev mode hydration failure from HTTP cache, `router.query` corruption with basePath and rewrites, server action forwarding loops with middleware rewrites, and FormData entry dropping — the latter also backported to [v15.5.19](/release/rel_wYzGs3YAhrIdYpTvW6Sk5-next-js-v15-5-19-fixes-formdata-entry-loss). On canary, Turbopack work continues with [effect eviction and memory management](/release/rel_nHMHZi-Domrtry_gRtxom-next-js-v16-3-0-canary-44-enables-turbopack-effect-eviction-and-memory), and [improved NFT tracing](/release/rel_DsyT2Q9nWLiOCw2uOsVlk-next-js-v16-3-0-canary-37-awaits-instrumentation-in-routemodule-and-refactors).","releaseIds":["rel_-4D3xOWG2HRorYYTuP0tG","rel_X2PjTEUYPHCyKmhHMOcPW","rel_gNWYNl6z97D0ypcAhbFRC","rel_1uAARSakxN46Z_WbsruQd","rel_xB_YtkWSDZAqc0BEFLwuz","rel_GlQqUbPRJ0zoHTyGn-5jc","rel_xbkAMGlQmEps4vaOr5Z9o","rel_2f0HbiPNi9nyelvi_19Ta","rel_IKRBGI6fysMCdUUajSKUz","rel_jatpqtXpQS7Hz1DiuV6hx","rel_QC0D3efEQWQbom1jcflJ4","rel_TmR1ObxsJocsvTQ-0Tff_","rel_xpePsHLEr4QLCMmP5fBdm","rel_f_oYlAfc5R5lBkpkleWCK","rel_a4lDFFCTA_XgU-KAxN_RL","rel_bCTjUtJJOwjnBdeUBdiF3","rel_uF78CfsWgCtTv-rHtVNbI","rel_wYzGs3YAhrIdYpTvW6Sk5","rel_nHMHZi-Domrtry_gRtxom","rel_DsyT2Q9nWLiOCw2uOsVlk"],"releaseCount":31,"generatedAt":"2026-07-11T16:46:10.554Z","releases":[{"id":"rel_-4D3xOWG2HRorYYTuP0tG","title":"@sveltejs/kit@3.0.0-next.0","path":"/release/rel_-4D3xOWG2HRorYYTuP0tG-sveltejs-kit-3-0-0-next-0","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_X2PjTEUYPHCyKmhHMOcPW","title":"@sveltejs/kit@3.0.0-next.1","path":"/release/rel_X2PjTEUYPHCyKmhHMOcPW-sveltejs-kit-3-0-0-next-1","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_gNWYNl6z97D0ypcAhbFRC","title":"@sveltejs/adapter-node@6.0.0-next.0","path":"/release/rel_gNWYNl6z97D0ypcAhbFRC-sveltejs-adapter-node-6-0-0-next-0","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_1uAARSakxN46Z_WbsruQd","title":"@sveltejs/adapter-vercel@7.0.0-next.0","path":"/release/rel_1uAARSakxN46Z_WbsruQd-sveltejs-adapter-vercel-7-0-0-next-0","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_xB_YtkWSDZAqc0BEFLwuz","title":"@sveltejs/adapter-netlify@7.0.0-next.0","path":"/release/rel_xB_YtkWSDZAqc0BEFLwuz-sveltejs-adapter-netlify-7-0-0-next-0","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_GlQqUbPRJ0zoHTyGn-5jc","title":"@sveltejs/adapter-cloudflare@8.0.0-next.0","path":"/release/rel_GlQqUbPRJ0zoHTyGn-5jc-sveltejs-adapter-cloudflare-8-0-0-next-0","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_xbkAMGlQmEps4vaOr5Z9o","title":"@sveltejs/package@3.0.0-next.0","path":"/release/rel_xbkAMGlQmEps4vaOr5Z9o-sveltejs-package-3-0-0-next-0","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_2f0HbiPNi9nyelvi_19Ta","title":"@sveltejs/enhanced-img@1.0.0-next.0","path":"/release/rel_2f0HbiPNi9nyelvi_19Ta-sveltejs-enhanced-img-1-0-0-next-0","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_IKRBGI6fysMCdUUajSKUz","title":"@sveltejs/kit@2.63.0","path":"/release/rel_IKRBGI6fysMCdUUajSKUz-sveltejs-kit-2-63-0","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_jatpqtXpQS7Hz1DiuV6hx","title":"@sveltejs/kit@2.63.1","path":"/release/rel_jatpqtXpQS7Hz1DiuV6hx-sveltejs-kit-2-63-1","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_QC0D3efEQWQbom1jcflJ4","title":"@sveltejs/kit@2.62.0","path":"/release/rel_QC0D3efEQWQbom1jcflJ4-sveltejs-kit-2-62-0","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_TmR1ObxsJocsvTQ-0Tff_","title":"svelte@5.56.1","path":"/release/rel_TmR1ObxsJocsvTQ-0Tff_-svelte-5-56-1","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_xpePsHLEr4QLCMmP5fBdm","title":"svelte@5.56.2","path":"/release/rel_xpePsHLEr4QLCMmP5fBdm-svelte-5-56-2","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_f_oYlAfc5R5lBkpkleWCK","title":"svelte@5.56.3","path":"/release/rel_f_oYlAfc5R5lBkpkleWCK-svelte-5-56-3","org":{"slug":"svelte","name":"Svelte"},"importance":null},{"id":"rel_a4lDFFCTA_XgU-KAxN_RL","title":"v4.4.7","path":"/release/rel_a4lDFFCTA_XgU-KAxN_RL-v4-4-7","org":{"slug":"nuxt","name":"Nuxt"},"importance":null},{"id":"rel_bCTjUtJJOwjnBdeUBdiF3","title":"v3.21.7","path":"/release/rel_bCTjUtJJOwjnBdeUBdiF3-v3-21-7","org":{"slug":"nuxt","name":"Nuxt"},"importance":null},{"id":"rel_uF78CfsWgCtTv-rHtVNbI","title":"Next.js v16.2.7 fixes hydration, router.query, and server action forwarding","path":"/release/rel_uF78CfsWgCtTv-rHtVNbI-dev-mode-hydration-fixed-router-query-corruption-resolved","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_wYzGs3YAhrIdYpTvW6Sk5","title":"Next.js v15.5.19 fixes FormData entry loss","path":"/release/rel_wYzGs3YAhrIdYpTvW6Sk5-formdata-entries-no-longer-dropped","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_nHMHZi-Domrtry_gRtxom","title":"Next.js v16.3.0-canary.44 enables Turbopack effect eviction and memory management improvements","path":"/release/rel_nHMHZi-Domrtry_gRtxom-turbopack-effect-eviction-enabled-memory-management-refined","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_DsyT2Q9nWLiOCw2uOsVlk","title":"Next.js v16.3.0-canary.37 awaits instrumentation in RouteModule and refactors Turbopack NFT","path":"/release/rel_DsyT2Q9nWLiOCw2uOsVlk-instrumentation-now-awaited-in-routemodule-turbopack-nft-refactored","org":{"slug":"vercel","name":"Vercel"},"importance":null}]}}