What if your form validation worked seamlessly with React Server Actions — progressive enhancement, no client JavaScript required?
Conform is a form validation library designed for server-first React applications.
Why Conform
Traditional form libraries (React Hook Form, Formik) are client-side only. Conform works with:
- Server Actions — validate on the server, progressively enhance on client
- Progressive enhancement — forms work without JavaScript
- Zod/Yup integration — use your existing schemas
- Accessibility — ARIA attributes generated automatically
- Nested objects and arrays — complex form structures with type safety
- File uploads — built-in support
Quick Start
npm install @conform-to/react @conform-to/zod
// Server Action
"use server";
import { parseWithZod } from "@conform-to/zod";
import { z } from "zod";
const schema = z.object({
email: z.string().email(),
password: z.string().min(8),
});
export async function signup(prevState: unknown, formData: FormData) {
const submission = parseWithZod(formData, { schema });
if (submission.status !== "success") {
return submission.reply();
}
// Create user...
return redirect("/dashboard");
}
// Client Component
"use client";
import { useForm } from "@conform-to/react";
import { parseWithZod } from "@conform-to/zod";
import { useActionState } from "react";
import { signup } from "./actions";
export function SignupForm() {
const [lastResult, action] = useActionState(signup, undefined);
const [form, fields] = useForm({
lastResult,
onValidate({ formData }) {
return parseWithZod(formData, { schema });
},
});
return (
<form id={form.id} onSubmit={form.onSubmit} action={action}>
<input name={fields.email.name} />
<div>{fields.email.errors}</div>
<input name={fields.password.name} type="password" />
<div>{fields.password.errors}</div>
<button>Sign Up</button>
</form>
);
}
Real Use Case
A SaaS rebuilt their multi-step onboarding form with Conform + Server Actions. The form worked even when JavaScript failed to load. Conversion rate improved 12% on mobile — where JS loading is unreliable.
When to Use Conform
- React Server Components / Server Actions projects
- Forms that must work without JavaScript
- Complex multi-step forms with nested data
- Accessibility-critical applications
Get Started
Visit conform.guide — open source, works with Next.js, Remix, and any React framework.
Need custom data pipelines or scraping solutions? Check out my Apify actors or email me at spinov001@gmail.com for custom solutions.
Top comments (0)