Skip to main content

Formwright

Schema-driven form engine for React. Define your form once — runtime handles conditional logic, layout, validation, and data sources.

npm install formwright@latest react-hook-form

Why Formwright

Schema-driven

Define fields, layout, rules, and data sources in plain TypeScript. No JSX in your form logic.

Conditional logic built in

Show, hide, enable, disable, and require fields based on other values or runtime context — evaluated on every change, zero boilerplate.

Bring your own UI

Works with shadcn/ui, Radix, Mantine, Ant Design, MUI, or your own design system. Use FormField compound parts or fieldRendererMap.

React Hook Form native

Built on top of RHF. All RHF features work — resolvers, watch, setValue, manual submit handling.

Flexible validation

Schema-driven field constraints map to RHF rules automatically. Pass a Zod or Yup resolver for cross-field validation.

Extensible via plugins

Add custom operators, effects, field types, and data loaders. All built-in behavior ships as plugins.