spences10/svelte-skills-kit7 files

Sveltekit Data Flow

SvelteKit data flow guidance. Use for load functions, form actions, server/client data, and invalidation. Covers +page.server.ts vs +page.ts, serialization, fail(), redirect(), error(), invalidateAll().

Specification
Skill ID
spences10/svelte-skills-kit/sveltekit-data-flow
Publisher
spences10
Repository
svelte-skills-kit
Installs
0
Files
7
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

spences10/svelte-skills-kit/sveltekit-data-flowInstalls these files
  • README.md
  • SKILL.md
  • references/client-auth-invalidation.md
  • references/error-redirect-handling.md
  • references/form-actions.md
  • references/load-functions.md
  • references/serialization.md

What this skill tells the agent

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

// +page.server.ts
import { fail, redirect } from '@sveltejs/kit';

export const load = async ({ locals }) => {
	const user = await db.users.get(locals.userId);
	return { user }; // Must be JSON-serializable
};

export const actions = {
	default: async ({ request }) => {
		const data = await request.formData();
		const email = data.get('email');

		if (!email) return fail(400, { email, missing: true });

		await updateEmail(email);
		throw redirect(303, '/success');
	},
};

Reference Files

  • load-functions.md - Server vs universal
  • form-actions.md - Form handling patterns
  • serialization.md - What can/can't serialize
  • error-redirect-handling.md - fail/redirect/error
  • client-auth-invalidation.md - invalidateAll() after client-side auth

Notes

  • Server load → universal load via data param | ALWAYS throw redirect()/error()
  • No class instances/functions from server load (not serializable)
  • Last verified: 2025-01-11

<!-- PROGRESSIVE DISCLOSURE GUIDELINES:

  • Keep this file ~50 lines total (max ~150 lines)
  • Use 1-2 code blocks only (recommend 1)
  • Keep description <200 chars for Level 1 efficiency
  • Move detailed docs to references/ for Level 3 loading
  • This is Level 2 - quick reference ONLY, not a manual

LLM WORKFLOW (when editing this file):

  1. Write/edit SKILL.md
  2. Format (if formatter available)
  3. Run: npx skills add . --list
  4. If the skill is not discovered, check SKILL.md frontmatter formatting
  5. Validate again to confirm

-->

Use this skill in a project

Open any RiverX project, search the Skills panel for spences10/svelte-skills-kit/sveltekit-data-flow, and install it in one click.

Use this skill