SvelteKit
Reference Repositories
- SvelteKit - Svelte application framework for routing, server rendering, form actions, and adapters
- Svelte - Svelte 5 compiler and runtime
Upstream Grounding
When SvelteKit load behavior, invalidation, cookies, hooks, env handling, server-only modules, generated $types, or adapter behavior affects correctness, ask DeepWiki a narrow question against sveltejs/kit before relying on memory. Verify decisive details against local installed types and source.
Use the svelte skill for component runes and template mechanics.
Server Versus Universal Code
- Use
+page.server.tsor+layout.server.tsfor secrets, database access, auth, cookies, andlocals. - Use universal
+page.tsor+layout.tsonly for client-safe data and behavior. - Keep server-only code in
$lib/server,.servermodules,hooks.server.ts,+server.ts, or server route files. - Server
loadreturn values must be serializable. - Do not store shared mutable request state in server modules or
loadfunctions. Put per-request state inevent.locals.
Loading, Invalidation, And Forms
- Use
depends,invalidate,invalidateAll, anduntrackdeliberately. Do not assume server fetches are invalidation-trackable unless the dependency is explicit. - Define form actions in
+page.server.ts. - Use
fail()for validation failures so the page keeps form state and status. - Use
use:enhanceonly forPOSTforms. - Put auth and session lookup in
hooks.server.ts, then expose the request result throughevent.locals.
Types And Boundaries
- Import generated route types from
./$typesin route files. - Keep env reads in server code unless the value is intentionally public.
- Keep redirects and errors explicit with SvelteKit helpers so status codes survive SSR and client navigation.