Install the package along with FormEngine Core and MUI dependencies:
npm install @react-form-builder/core @mui/material @emotion/react @emotion/styled @react-form-builder/components-material-ui
npm i @react-form-builder/core @react-form-builder/components-material-ui
Production-ready form components built on top of MUI.
Only 188 KB gzip for Core + MUI (JS + CSS).
Build complex forms without React expertise.
Entire form defined in one JSON file for structure + UI.
Build once, reuse everywhere with a single form engine and no dependency headaches.
Easily adapt field sets and styling without deep CSS or UI work.
Locale-based labels, placeholders, validation messages, and errors defined directly in the form schema.
Open-source core, safe for commercial use.
FormEngine Core maps a JSON form definition to a dynamic HTML form and lets you plug in your own UI components — or use the ready-made MUI pack.
FormEngine Core is a lightweight React form library with tree-shaking support for MUI components. At just 188 KB (with MUI), it's significantly smaller than alternatives like SurveyJS (391 KB) and React JSON Schema Form (231 KB). Reduce your bundle size without sacrificing dynamic form capabilities.
Bundle sizes are approximate and depend on build config, tree-shaking, and selected features.
Use Material UI components via @react-form-builder/components-material-ui.
Keep the renderer independent from UI. Swap themes when needed.
Copy, version, and reuse forms across applications and teams.
Works smoothly with Next.js, Remix, and other React setups.
MUI, shadcn/ui, React Suite, Mantine — with more on the way.
Start with the free MIT core and scale to a drag-and-drop workflow when needed.
Install the package along with FormEngine Core and MUI dependencies:
npm install @react-form-builder/core @mui/material @emotion/react @emotion/styled @react-form-builder/components-material-ui
Here's an example of how to set up FormEngine with Material UI components:
import { view } from "@react-form-builder/components-material-ui";
import type { FormViewerProps } from "@react-form-builder/core";
import { FormViewer } from "@react-form-builder/core";
const json = {
errorType: 'MuiErrorWrapper',
form: {
key: "Screen",
type: "Screen",
children: [
{
key: "firstName",
type: "MuiTextField",
props: {
label: { value: "First Name" },
helperText: { value: "Enter your first name" },
},
schema: {
validations: [
{
key: "required",
},
],
},
},
{
key: "lastName",
type: "MuiTextField",
props: {
label: { value: "Last Name" },
helperText: { value: "Enter your last name" },
},
schema: {
validations: [
{
key: "required",
},
],
},
},
{
key: "submit",
type: "MuiButton",
props: {
children: { value: "Submit" },
variant: { value: "contained" },
color: { value: "primary" },
},
events: {
onClick: [
{
name: "validate",
type: "common",
args: {
failOnError: true,
},
},
{
name: "onSubmit",
type: "custom",
},
],
},
},
],
},
};
const MuiExample = () => {
const getForm = () => JSON.stringify(json);
const actions: FormViewerProps["actions"] = {
onSubmit: (e) => {
// submit the form to the backend
alert("Form data: " + JSON.stringify(e.data));
},
};
return <FormViewer view={view} getForm={getForm} actions={actions} />;
};
Yes. The core library is MIT-licensed, which is suitable for commercial use.
Yes — the JSON schema can be loaded from any source (file, DB, CMS, API) and rendered in the client.
The repository provides a benchmark example: ~188.54 KB gzip for FormEngine Core (JS + CSS).
Install @react-form-builder/components-material-ui and render forms with FormViewer using the provided MUI view.
Yes — it's designed to work smoothly with modern React stacks, including Next.js and Remix.
Yes — the core is designed to render using your components; the MUI pack is a ready-made option.
No. You can render and manage forms purely from JSON. A visual builder can be added later if your workflow needs it.
MUI, shadcn/ui, React Suite, Mantine are listed as supported themes, with more coming soon.
Start with the MIT-licensed core, render your first form, and keep your UI consistent with Material UI.