ShopperCove
Menu
All writingBlogTopicsCategoriesAboutRSS
Blog
Categories
Observability & SRE62All categories
Topics
sre111localhost lab102performance70python58javascript47bundle size36benchmarking35node.js35web development21typescript19benchmark16content creation15All topics
About
Loading article…

ShopperCove

Hands-on notes on developer tools, written after the tool has actually been run.

All writingBlogCategoriesTopicsAboutPrivacyRSS

© 2026 ShopperCove

On this page

  1. SvelteKit 3 Is Here (Oct 1, 2026): Migration Checklist for Teams
  2. 1. What shipped on Oct 1, 2026 (vendor highlights)
  3. 2. Minimum dependency floor (migration guide)
  4. 3. Config lives in the Vite plugin now
  5. 4. `$lib` → `#lib` (subpath imports)
  6. 5. Module and API migration hotspots
  7. 6. Team migration checklist (practical order)
  8. 7. Why this post (catalog diversification)
  9. 8. FAQ (short)
  10. Optional tool for indie founders (not a SvelteKit dependency)
  11. Bottom line
  12. FAQ
  13. What is the SvelteKit 3 migration command?
  14. What are the minimum versions for SvelteKit 3?
  15. Are remote functions ready in SvelteKit 3?
  1. Blog

SvelteKit 3 Migration: What Changes First?

3 October 2026·8 min read

Summary
On this page
  1. SvelteKit 3 Is Here (Oct 1, 2026): Migration Checklist for Teams
  2. 1. What shipped on Oct 1, 2026 (vendor highlights)
  3. 2. Minimum dependency floor (migration guide)
  4. 3. Config lives in the Vite plugin now
  5. 4. `$lib` → `#lib` (subpath imports)
  6. 5. Module and API migration hotspots
  7. 6. Team migration checklist (practical order)
  8. 7. Why this post (catalog diversification)
  9. 8. FAQ (short)
  10. Optional tool for indie founders (not a SvelteKit dependency)
  11. Bottom line
  12. FAQ
  13. What is the SvelteKit 3 migration command?
  14. What are the minimum versions for SvelteKit 3?
  15. Are remote functions ready in SvelteKit 3?

SvelteKit 3 Is Here (Oct 1, 2026): Migration Checklist for Teams

To migrate to SvelteKit 3, which shipped on October 1, 2026, first raise your floor to Node 22.17, TypeScript 6, Svelte 5.57.1, Vite 8.0.12 and vite-plugin-svelte 7, then run npx sv migrate sveltekit-3 --tasks all --confirm on a clean branch. The two changes that break most PRs are that svelte.config.js is no longer supported (kit options move into sveltekit() in vite.config) and $lib becomes #lib through package.json subpath imports with file extensions.

Related posts on ShopperCove:

  • 01shoppercove.comReact 19.3 View Transitions & Fragment Refs (2026)
  • 02shoppercove.comRemix 3 Ships Oct 2, 2026: What Frontend Teams Need
  • 03shoppercove.comChrome DevTools AI Assistance with Gemini (2026)
  • 04shoppercove.comNext.js 16.3 for AI Coding Agents (2026)
  • 05shoppercove.comTanStack Start XSS: Patch CVE-2026-102989 Now
  • 06shoppercove.comTailwind CSS v4 Migration Checklist (2026)
  • 07shoppercove.comNext.js 16 App Router Production Checklist (2026)
  • 08shoppercove.comBuild an AI Chat UI with Next.js & shadcn (2026)
  • 09shoppercove.comGrow Site Traffic in the AI Search Era (2026)
  • 10shoppercove.comClozure AI Business OS Review

Affiliate disclosure. This post includes one optional ClickBank affiliate link for Clozure (seller nickname CLOZURE). If you buy through that link, ShopperCove may earn a commission at no extra cost to you. Clozure is not a SvelteKit adapter, Vite plugin, or framework dependency—only an optional AI business OS (email/calendar/CRM) some indie founders use. ShopperCove has not trialed Clozure for this SvelteKit 3 briefing. ClickBank is the retailer of products on this site. CLICKBANK® is a registered trademark of Click Sales, Inc., a Delaware corporation located at 1444 S. Entertainment Ave., Suite 410, Boise, ID 83709, USA, and used by permission. ClickBank’s role as retailer does not constitute an endorsement, approval, or review of these products or any claim, statement, or opinion used in promotion of these products.

1. What shipped on Oct 1, 2026 (vendor highlights)

From the announce post, quick highlights:

  • Configuration moves into vite.config (no more svelte.config.js)
  • $lib → #lib via standard Node subpath imports
  • Environment variables are more powerful / easier
  • Service workers need less boilerplate
  • Error handling improved across the board

New apps:

npx sv create my-new-app

Migrating apps:

npx sv migrate sveltekit-3 --tasks all --confirm

The migrator rewrites what it can and emits a TODO list for the rest (the announce post notes agent-assisted cleanup works well on leftovers).

Remote functions: still not production-ready. The team’s top priority, but they require Async Svelte behind an experimental flag. Do not treat remote functions as a migration blocker or a day-one production bet.

2. Minimum dependency floor (migration guide)

Per Migrating to SvelteKit v3, raise the floor before you expect a clean build:

DependencyMinimum (vendor)
Nodev22.17
TypeScriptv6
Sveltev5.57.1
Vitev8.0.12 (first Vite 8 with stable rolldown v1)
@sveltejs/vite-plugin-sveltev7

Vendor tip: upgrade to the newest 2.x first so you see targeted deprecation warnings, then jump to 3.0.

3. Config lives in the Vite plugin now

svelte.config.js is no longer supported. Pass former config.kit.* options as top-level options to sveltekit() in vite.config.js / vite.config.ts, alongside compilerOptions:

import adapter from '@sveltejs/adapter-auto';
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [
    sveltekit({
      adapter: adapter(),
      compilerOptions: {
        experimental: {
          async: true
        }
      },
      experimental: {
        remoteFunctions: true // only if you intentionally opt into experimental remote functions
      }
    })
  ]
});

Removed / renamed options to watch (migration guide—verify against current docs for your exact adapters):

  • vitePlugin removed — pass vite-plugin-svelte options (e.g. inspector) directly
  • preloadStrategy removed — modulepreload always
  • prerender.origin → paths.origin
  • csrf.checkOrigin → csrf.trustedOrigins
  • experimental.tracing → top-level tracing
  • files.lib, experimental.handleRenderingErrors, experimental.instrumentation obsolete

New / changed examples: output.linkHeaderPreload, csrf.trustedOrigins, paths.origin (also replaces adapter-node’s old ORIGIN env var), version.pollInterval defaulting to one hour.

4. $lib → #lib (subpath imports)

#lib is not auto-injected. Declare it in package.json imports:

{
  "imports": {
    "#lib": "./src/lib/index.js",
    "#lib/*": "./src/lib/*"
  }
}

Then replace imports and add extensions (Node/TS require unambiguous subpaths):

// before
import { foo } from '$lib/foo';

// after
import { foo } from '#lib/foo.js';

sv migrate should rewrite most of this; grep for leftover $lib in CI.

5. Module and API migration hotspots

Treat these as checklist items (details in the migration guide—not exhaustive):

  1. $app/environment → $app/env (also usable from service workers).
  2. $app/stores removed — use $app/state (page not $page).
  3. $service-worker removed — use $app/env, $app/manifest, $app/paths as documented.
  4. $env/... deprecated in favor of $app/env/private and $app/env/public.
  5. tsconfig should extends $app/tsconfig (not ./.svelte-kit/tsconfig.json); set your own include / exclude. Service workers get a separate src/service-worker/tsconfig.json extending $app/tsconfig/service-worker.
  6. Shallow routing — prefer goto(..., { shallow: true }) over deprecated pushState / replaceState; invalidateAll → refreshAll; goto option renames (replace, reset: false, etc.).
  7. $app/paths — use resolve / asset instead of removed base / assets / resolveRoute.
  8. Param matchers — single src/params.ts via defineParams from @sveltejs/kit/params (not a src/params/ directory of files).
  9. Server-only modules — filename segment server (not only .server. infix); any server directory (except routes/static) is server-only.
  10. Error / CSRF / forms — handleError sees more cases; CSRF always on with trustedOrigins; enhanced form fail statuses surface; external redirect needs { external: true } (or allowlist).
  11. Adapters — first-party adapters require Kit 3; Cloudflare APIs move toward cloudflare:workers / request.cf; adapter-node uses rolldown and drops ORIGIN env; adapter-vercel drops edge runtime; Netlify needs newer CLI, etc. Read the adapter section for your host.

6. Team migration checklist (practical order)

  1. Read primaries — announce + migration guide (+ RC notes if you spiked early).
  2. Raise Node / TS / Svelte / Vite / vite-plugin-svelte to the minimums above on a branch.
  3. Land latest 2.x and clear deprecation warnings in CI.
  4. Run npx sv migrate sveltekit-3 --tasks all --confirm on a clean working tree.
  5. Delete / stop maintaining svelte.config.js; confirm vite.config owns adapter + kit options.
  6. Verify #lib imports map and extensioned imports; fail CI on $lib.
  7. Update $app/* imports (stores → state, env rename, service-worker removals).
  8. Retest adapters on staging (Cloudflare / Node / Netlify / Vercel each have Kit 3-specific notes).
  9. Leave remote functions experimental unless you have an explicit spike plan with compilerOptions.experimental.async + experimental.remoteFunctions.
  10. Smoke SSR, form actions, auth cookies, CSRF cross-origin allowlists, and service worker offline paths.
  11. Teach the team — #lib extensions and vite-config location are the two most common “why is my PR red?” traps.

7. Why this post (catalog diversification)

ShopperCove’s recent frontend trend posts lean Next.js / Remix / React tooling. SvelteKit 3’s Oct 1 ship date is a clean, time-sensitive alternative for teams (and searchers) on the Svelte stack—without inventing a framework beauty contest. If you are React-primary, still skim the migration shape: Vite-centric config and subpath #lib mirror broader 2026 frontend tooling directions.

8. FAQ (short)

Is this a rewrite like Remix 3?
No. Vendor framing is “same framework,” major-version cleanup + dependency floor + config/alias moves. Compare with our Remix 3 briefing if you need the “new framework vs continuation” distinction elsewhere.

Are remote functions ready?
Not yet (experimental + Async Svelte). Top priority for the team; not a default production feature on day one.

Do I need Clozure to migrate?
No. Unrelated optional ops tooling.

Where do docs live during the cutover?
Prefer current svelte.dev kit docs / migration guide; RC-era notes pointed at next.svelte.dev while docs were catching up—confirm you are on stable docs when you cut.

Optional tool for indie founders (not a SvelteKit dependency)

A major-version migration week is usually about Node, Vite, and CI—not a new CRM. Solo founders who also want email/calendar/CRM sometimes evaluate an AI business OS separately from framework work.

One disclosed option (vendor claims only; ShopperCove has not hands-on tested it for this briefing):

​Visit Clozure AI Business OS​

Skip it if you already have ops tooling or only came for the SvelteKit 3 checklist. Verify export, cancel, and access controls before putting customer data in any SaaS.

Bottom line

SvelteKit 3.0 arrived October 1, 2026. Raise Node 22.17+, TypeScript 6, Svelte 5.57.1+, Vite 8.0.12+, run npx sv migrate sveltekit-3 --tasks all --confirm, move kit config into sveltekit() in Vite, switch $lib → #lib, and treat remote functions as experimental. Attribute every floor and rename to the official migration guide; spike adapters on staging before you call the cutover done.

FAQ

What is the SvelteKit 3 migration command?

npx sv migrate sveltekit-3 --tasks all --confirm. It rewrites what it can and leaves a TODO list for the rest.

What are the minimum versions for SvelteKit 3?

Node 22.17, TypeScript 6, Svelte 5.57.1, Vite 8.0.12 and @sveltejs/vite-plugin-svelte 7, per the official Migrating to SvelteKit v3 guide.

Are remote functions ready in SvelteKit 3?

No. They still need Async Svelte behind an experimental flag, so leave them out of the migration unless you have a planned spike.

Primary sources: SvelteKit 3 is here, Migrating to SvelteKit v3.

sveltekit 3migrationweb developmentvitetypescriptfrontend frameworkjavascript

Lab evidence

What I found running this

Hands-on notes: this checklist is attributed to the official svelte.dev SvelteKit 3 announcement dated Oct 1, 2026, and the official Migrating to SvelteKit v3 documentation. I reviewed the documented configuration, alias, runtime, TypeScript, Svelte, and Vite requirements and migration command. No invented benchmarks or local performance measurements are included.

Explore the product

Check the live price, offer, and return terms on the seller page before you buy.

Visit Clozure AI Business OS

Check price & buy

Notes when a lab post goes up

Occasional email for new hands-on reviews. No sequence and no sponsors.

Explore the product

Check the live price, offer, and return terms on the seller page before you buy.

Visit Clozure AI Business OS

Check price & buy

Keep reading

  • Vite vs Parcel: 0.69s vs 1.72s Cold Dev Start

    Vite 7.3.6 vs Parcel 2.16.4 on a 40-page React 19 TS fixture (147 modules): cold serve-ready median 692 ms vs 1,718 ms (~2.5x); cold prod build wall median 2,586 ms vs 1,806 ms; JS 228,426 B vs 227,172 B with Parcel --no-source-maps.

    Hands-on5 Oct 20265 min read

  • oxfmt 0.72: native Markdown formatter, Prettier 3.9.9 parity test, sorted imports in code fences (5 Oct 2026)

    oxfmt 0.72.0 (5 Oct 2026) swaps its Prettier-backed Markdown path for the native oxc_formatter_markdown (breaking). ShopperCove formatted 221 Markdown drafts with oxfmt 0.71.0, 0.72.0 and Prettier 3.9.9: byte-identical output, ~2 s vs ~16 ms. Plus opt-in import sorting inside code fences, the documented divergences, ignore-file and LSP fixes. No affiliate links.

    Summary5 Oct 20265 min read

  • Biome 2.5.15: type-inference speedups, nursery rules, HTML formatter (30 Sep 2026)

    Biome published @biomejs/biome@2.5.15 on 30 September 2026: type-inference and HTML formatter performance, plus nursery rules for React defaults, Svelte runes, logical CSS, and more. ShopperCove upgrade checklist only; no affiliate.

    Summary5 Oct 20264 min read