Updated November 2026 7 hours of live training delivered over 1 day. Developers, tech leads, and platform teams responsible for SvelteKit 2 apps or shared Svelte libraries. The course works best when teams bring a real codebase to migrate. Teams that need a refresher on current Svelte can start with Svelte Essentials. SvelteKit 3 moves configuration into the Vite plugin, replaces Comprehensive courseware is distributed online at the start of class. All students receive a downloadable MP4 recording of the training. Students will need a free, personal GitHub account to access the courseware. Students need permission to install Node.js and Visual Studio Code on their computers. Also, students will need permission to install NPM Packages and Visual Studio Code extensions. An AI coding agent (such as Claude Code, GitHub Copilot, or Cursor) is recommended for the TODO list topics. We will provide a cloud-based environment if students cannot configure a local environment. Software versions: SvelteKit 2 (latest 2.x) to SvelteKit 3, with Svelte 5, Vite 8, TypeScript 6, and Node.js 22.17 or later.Migrating to SvelteKit 3
Class Duration
Student Prerequisites
Target Audience
Description
$lib with #lib, and removes $app/stores. It also raises the minimums to Node.js 22.17, TypeScript 6, and Vite 8. Students first prepare on the latest 2.x release, then run npx sv migrate sveltekit-3 and review each task's diff. They work through the remaining breaking changes area by area, from imports and errors to cookies and adapters. The course closes with clearing leftover TODOs with an AI coding agent, then testing and rolling out the upgrade.Learning Outcomes
npx sv migrate sveltekit-3 and review the resulting diff.@migration-task comments and svelte-check errors into a task list.Training Materials
Software Requirements
Training Topics
Planning the Upgrade
@sveltejs/vite-plugin-svelte 7svelte-check, and buildsPreparing on the Latest 2.x
vite.config.ts on 2.x$app/state with npx sv migrate app-stateresolve() and asset() in place of baseRunning
npx sv migrate sveltekit-3--tasks allpackage-json and tsconfig prerequisitessvelte-config to app-state@migration-task commentsConfiguration
svelte.config.js to vite.config.tssveltekit() plugin optionscompilerOptions beside SvelteKit optionsfiles.libprerender.origin and csrf.checkOrigincsrf.trustedOrigins and paths.originoutput.linkHeaderPreloadversion.pollInterval defaultImports and TypeScript
$lib to #libpackage.json imports and file extensions$app/tsconfiginclude and exclude$app/environment renamed to $app/env$env/* to src/env.ts$app/env/private and $app/env/public$app/serverState and Navigation
$app/stores removed$page to page in $app/statepage.urlupdated.current version checksgoto with shallow in place of pushStateinvalidateAll to refreshAllgoto optionsgoto rejecting unknown routespreloadDatause:enhance with actions on other pagesPaths
base, assets, and resolveRoute removedasset() and resolve() without leading slashesPath and AssetPath typesErrors
status on every App.Errorerror()handleErrorhandleErrorfail() status codes in enhanced formsRouting, Responses, and Server Code
src/params.tsdefineParamsserver file segmentsresolve() in handle returning a promiseResponse in place of json() and text()external: truedata-sveltekit-* values of falserefreshAll()config overriding server configSecurity and Cookies
csrf.trustedOriginsContent-Type/ cookie pathService Workers and Observability
$service-worker removed$app/env, $app/manifest, and $app/paths in workers$app/service-workerinstrumentation.server loadingAdapters
adapter-node static asset listsadapter-cloudflare and cloudflare:workersadapter-netlify changesadapter-vercel without the edge runtimegetRequest and setResponseRemote Functions (Experimental)
remote file name segmentfield.as()Clearing the TODO List with an AI Coding Agent
@migration-task comments and svelte-check errorsllms.txt documentation filessvelte-autofixerTesting and Rollout
svelte-package