Updated June 2026 3 days All students must have JavaScript and HTML programming experience. Experience with CSS is helpful but not required. This Svelte Essentials course teaches modern Svelte 5 and SvelteKit 2 from the ground up. The course centers on runes ( All students receive comprehensive courseware covering all topics in the course. The instructor distributes courseware via GitHub. The courseware includes documentation and extensive code samples. Students practice the topics covered through challenging hands-on lab exercises. 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. We will provide a cloud-based environment if students cannot configure a local environment.Svelte Essentials
Class Duration
Target Audience
Description
$state, $derived, $effect, $props) — Svelte 5's signal-based reactivity model that replaces the legacy $: reactive statements and the bulk of stores-based state management. Participants build SvelteKit 2 applications using the new file-based routing, server load functions, form actions, and TypeScript end-to-end. Coverage includes the modern component model (callback props replacing createEventDispatcher, snippets replacing slots), client-side hydration, server-side rendering, the async preview, and progressive enhancement. The course also touches on legacy Svelte 4 patterns just enough that participants can read older codebases — but every new pattern taught is the current Svelte 5 one. By the end, participants build, test, and deploy a real SvelteKit 2 application.Objectives
+page.svelte, +page.server.ts, +layout.svelte, server load functions, form actions, and route groups.$state, $derived, $effect, $props — and know when each is the right tool.{#snippet} / {@render}) as the modern replacement for slots and slot props.createEventDispatcher and event forwarding).use:enhance.$:, stores, createEventDispatcher) and migrate selectively to runes.Training Materials
Software Requirements
Training Topics
Introduction to Svelte 5
Development Environment
npx sv create)+page.svelte, +page.server.ts, +layout.svelte)SvelteKit 2 Overview
Getting Started
bind:, class:, style:)Static and Dynamic Pages
<svelte:head>@sveltejs/enhanced-img{#if}, {#each}, {#await}, {#key}){#snippet} / {@render}) — modern slot replacementReactivity with Runes
$state, $derived, $effect, $props$state for primitive and reactive object/array state$derived for computed values (replacing $: reactive statements)$effect for side effects and DOM interaction$props() for component inputs and defaults$state.raw and $state.snapshot for non-reactive dataComponent Basics
$props() and TypeScript types$bindable()export let and migratingComponent Composition
Event Handling
onclick, oninput)createEventDispatcher)Data Binding
bind:value$bindable)Forms
+page.server.tsuse:enhanceLifecycle and Effects
$effect and $effect.preonMount and onDestroy (still available)tick() for awaiting DOM updatesState Management
$state (the default modern choice)writable, readable, derived) — when they still make senseRouting
+page.server.ts load)+server.ts)Errors and Redirects
error() and redirect() helpers+error.svelte pagesAsynchronous Data
{#await}