svelte5-best-practices

Svelte 5 Best Practices

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "svelte5-best-practices" with this command: npx skills add julien-blanchon/montelimar/julien-blanchon-montelimar-svelte5-best-practices

Svelte 5 Best Practices

Quick Reference

Topic When to Use Reference

Runes $state, $derived, $effect, $props, $bindable, $inspect runes.md

Snippets Replacing slots, {#snippet}, {@render} snippets.md

Events onclick handlers, callback props, context API events.md

TypeScript Props typing, generic components typescript.md

Migration Svelte 4 to 5, stores to runes migration.md

SvelteKit Load functions, form actions, SSR, page typing sveltekit.md

Performance Universal reactivity, avoiding over-reactivity, streaming performance.md

Essential Patterns

Reactive State

<script> let count = $state(0); // Reactive state let doubled = $derived(count * 2); // Computed value </script>

Component Props

<script> let { name, count = 0 } = $props(); let { value = $bindable() } = $props(); // Two-way binding </script>

Snippets (replacing slots)

<script> let { children, header } = $props(); </script>

{@render header?.()} {@render children()}

Event Handlers

<!-- Svelte 5: use onclick, not on:click --> <button onclick={() => count++}>Click</button>

Callback Props (replacing createEventDispatcher)

<script> let { onclick } = $props(); </script>

<button onclick={() => onclick?.({ data })}>Click</button>

Common Mistakes

  • Using let without $state

  • Variables are not reactive without $state()

  • Using $effect for derived values - Use $derived instead

  • Using on:click syntax - Use onclick in Svelte 5

  • Using createEventDispatcher

  • Use callback props instead

  • Using <slot>

  • Use snippets with {@render}

  • Forgetting $bindable()

  • Required for bind: to work

  • Setting module-level state in SSR - Causes cross-request leaks

  • Sequential awaits in load functions - Use Promise.all for parallel requests

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

svelte5-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review
General

Youtube Podcast Generator

Extracts the original text of Youtube video and converts it into a multi-voice AI podcast using a local Node.js API and FFmpeg. It also can show you the text...

Registry SourceRecently Updated
General

ERPClaw

AI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842,...

Registry SourceRecently Updated
General

Whisper AI Audio to Text Transcriber

Turn raw transcripts into structured summaries, meeting minutes, and action items.

Registry SourceRecently Updated