Skip to content

Rapid Form — The 2KB React Form Validation Hook

The 2KB React form hook that just works. No schema. No register(). No re-renders.
npm versionnpm downloadsGitHub starslicense
import { useRapidForm } from 'rapid-form';
export function ContactForm() {
const { refValidation, errors, values } = useRapidForm();
return (
<form ref={(ref) => refValidation(ref)}>
<input name="email" type="email" required placeholder="you@example.com" />
{errors.email?.isInvalid && (
<span>{errors.email.message}</span>
)}
<input name="name" required placeholder="Your name" />
{errors.name?.isInvalid && <span>{errors.name.message}</span>}
<button type="submit">Send</button>
</form>
);
}

That’s the whole thing. No schema. No register(). No Controller. Just native HTML.

~2KB

Zero runtime dependencies. Ships in under 2KB minified and gzipped. react-hook-form is ~25KB. Your users will notice.

Native HTML

Any element with name + required is automatically validated. No register(). No Controller. No wrappers.

No re-renders

Validation is event-driven, not controlled. Your form doesn’t re-render on every keystroke. It stays fast.

Any field type

input, select, textarea, checkbox — all supported out of the box. If the browser knows it, Rapid Form handles it.