FormViewer, and it renders with full state management, validation, conditional
logic, and event handling. The UI layer is pluggable: use Material UI, React Suite, Mantine, or your
own component library. No seat limits, no attribution required — production-ready and zero cost.

Key capabilities
JSON-driven rendering
Form structure, validation rules, and behavior all live in a portable JSON schema
Conditional logic
Show or hide fields declaratively in the schema, no custom JSX conditionals required
Computed properties
Derive field values and states from other form data
Actions and events
Attach named handlers to field events; trigger validation, navigation, or API calls
Localization
Built-in multi-language support with per-language property overrides
Pluggable UI
Swap the component layer (MUI, Mantine, custom) without changing the schema
Zod validation
Built-in validation rules backed by Zod; custom rules are supported
TypeScript support
Typed schema and component props throughout
Why JSON instead of JSX?
If you’re coming from React Hook Form or Formik, the main difference is that FormEngine Core replaces per-field JSX with a single JSON object that describes the entire form.| Task | React Hook Form / Formik | FormEngine Core |
|---|---|---|
| Define a form | Write JSX + useForm hooks for each field | One JSON object → FormViewer renders it |
| Add a new field | New JSX component, register, validation code | Add one entry to JSON |
| Show/hide a field conditionally | Write {condition && <Field />} in JSX | Set "visible": { "rule": "..." } in JSON |
| Switch UI library | Rewrite all JSX for the new library | Change the view adapter — JSON stays the same |
| Let non-developers edit forms | Not possible without custom tooling | FormEngine Designer outputs the same JSON |
| Update a live form | Change code → build → deploy | Update JSON — no redeploy |
How it works
FormEngine Core separates the form definition from the renderer. A JSON object describes the form structure, component types, props, validation rules, and event handlers. Aview adapter maps those
component types to real React components. FormViewer receives both and renders the live form.
UI library support
Support
- GitHub Discussions — questions and community
- Issue Tracker — bug reports and feature requests
- @react-form-builder/core on npm
License
FormEngine Core is free forever under the MIT license. Use it in commercial products, SaaS apps, internal tools — no seat limits, no attribution required, no strings attached.
Installation
Set up FormEngine Core in your project.
Rendering Forms
Render JSON form definitions with production-ready runtime behavior.
Validation
Add field and form validation with scalable rule management.
Actions and Events
Implement dynamic logic and integration behavior in runtime flows.