A schema-driven, adapter-based React form engine.
Wire any UI library and any state library — without changing your schemas.
Describe your form as a plain TypeScript object. The engine handles rendering, validation, state management, layout, conditional fields, masking, and submission.
Read the docs →
<RavenForm
schema={{
fields: [
{
name: 'email',
type: 'email',
label: 'Email',
validation: { required: true },
colSpan: 12,
},
{
name: 'password',
type: 'password',
label: 'Password',
validation: { required: true, minLength: 8 },
colSpan: 12,
},
],
}}
onSubmit={handleSubmit}
submitLabel="Sign In"
/>Define your entire form as a plain JS/JSON object. No JSX required for field registration — just describe the shape, and the engine renders it.
Swap UI libraries (ShadCN, AntD, MUI) and state libraries (RHF, Formik, Zustand) independently without changing a single field definition.
Built-in multi-step forms with per-step validation, progress indicator, and Prev/Next navigation — all from a steps[] array.
Dynamic add/remove rows of sub-fields for line items, team members, addresses, and any one-to-many relationship.
hidden and disabled accept functions of form values — enabling reactive show/hide and enable/disable without extra state.
Floating 🦅 DevTools panel with live state inspection, dirty-field analysis, and smart validation hints. Zero impact in production.
Every cell in this matrix is a valid configuration.