Remote vs Client Forms
When to Use
Remote - Database mutations, server-side validation, redirects after submit.
Client - Local state, filters, search forms, multi-step wizards.
Comparison
| Remote | Client | |
|---|---|---|
| Import | form from $app/server | Zod schema only |
| Data binding | form.fields.set() | bind:value |
| Submission | Server action | onsubmit callback |
| Validation | Server-side | Client-side |
| Redirects | Built-in | Manual |
Examples
Remote
<script lang="ts">
import { TypedForm } from '@repo/form'
import { createUserForm, userSchema } from './user.remote'
</script>
<TypedForm.Remote form={createUserForm} schema={userSchema} />