SvelteKit Data Flow
Quick Start
Which file? Server-only (DB/secrets): +page.server.ts |
Universal (runs both): +page.ts | API: +server.ts
Load decision: Need server resources? → server load | Need client APIs? → universal load
Form actions: Always +page.server.ts. Return fail() for
errors, throw redirect() to navigate, throw error() for failures.
Example
Reference Files
- load-functions.md [blocked] - Server vs universal
- form-actions.md [blocked] - Form handling patterns
- serialization.md [blocked] - What can/can't serialize
- error-redirect-handling.md [blocked] - fail/redirect/error
- client-auth-invalidation.md [blocked] - invalidateAll() after client-side auth
Notes
- Server load → universal load via
dataparam | ALWAYSthrow redirect()/error() - No class instances/functions from server load (not serializable)
- Last verified: 2025-01-11


