Skip to content

Svelte5 Hook Form

The New Standard for
Svelte5 Forms.

Reimagined to be invisible. Focus on your user experience while we handle the boilerplate and state management.

ILoveSvelte.svelte
<script>
  import { createForm } from 'svelte5-hook-form';

  // Native Svelte 5 Runes support
  const { register, handleSubmit, errors } = createForm();
</script>

<form onsubmit={handleSubmit}>
  <input ...{register('email', { required: true })} />
  {#if $errors.email}
    <span>Email is required</span>
  {/if}
  <button type="submit">Submit</button>
</form>

Why Svelte5 Hook Form?

Reimagined to be invisible. Focus on your user experience while we handle the boilerplate and state management.

Svelte 5 Native

Built from the ground up using Runes. Experience seamless reactivity with $state and $derived without the overhead.

End-to-End Type Safety

Built with TypeScript first. Enjoy perfect schema inference and compile-time error checking for your forms.

Intuitive API

Minimal learning curve. Familiar patterns inspired by industry standards, optimized for the Svelte compiler.

Flexible Validation

From simple required fields to complex asynchronous logic, handle any validation scenario with ease.

Advanced State Tracking

Effortlessly monitor form status including isDirty, isValid, and isSubmitting in real-time.

Zero Dependencies

A lightweight powerhouse with no external bloat. Pure performance focused on your core form logic.

Ready to build better forms?

The most lightweight, type-safe form engine ever built for Svelte 5. Minimal effort, maximum performance, zero overhead.

Start Documentation