What you’ll learn
- The differences between the three UI component packages
- How to choose based on your project needs
- How to install and get started with each
- Whether you can switch packages later
- How the three packages compare in features, component count, and unique capabilities
The three options
FormEngine supports three separate UI component libraries. Each is a complete, production-ready package. They’re not themes or skins — they’re three distinct sets of components with different capabilities, different type names, and different peer dependencies.| Package | NPM | License | Version | Component Count | Unique Strength |
|---|---|---|---|---|---|
| RSuite | @react-form-builder/components-rsuite | MIT | Latest | ~35 | Multi-step wizard support |
| Material UI | @react-form-builder/components-material-ui | MIT | Latest | ~27 | Native MUI design tokens |
| Mantine | @react-form-builder/components-mantine | MIT | Latest | ~45+ | Color pickers, ratings, sliders, rich date/time options |
Quick decision guide
Answer these questions to find your best fit:“I want the fastest setup”
→ RSuite RSuite is the default choice for new projects. It requires zero configuration, has the most stable API, and the largest community within FormEngine. Install it and start building immediately.”My project already uses Material UI”
→ Material UI If your React app already imports from@mui/material, choose the Material UI FormEngine package. Components inherit your MUI theme tokens automatically — buttons, inputs, and dialogs match your brand colors and typography without extra configuration.
”I need specialized inputs (colors, ratings, dates)”
→ Mantine Mantine excels at rich form inputs. It’s the only package with built-in color pickers, rating components, slider variations, and 20+ date/time variants (ranges, month pickers, year pickers). If your forms need these, Mantine saves you from building custom components.”I need multi-step wizard forms”
→ RSuite (only option) Only RSuite includes aRsWizard component for step-by-step forms. Material UI and Mantine don’t have built-in wizards, though you can build custom step logic with conditional rendering.
Feature comparison table
| Feature | RSuite | Material UI | Mantine |
|---|---|---|---|
| Text input | RsInput | MuiTextField | MtTextInput |
| Dropdown select | RsDropdown | MuiSelect | MtSelect |
| Checkbox | RsCheckbox | MuiCheckbox | MtCheckbox |
| Radio group | RsRadioGroup | MuiRadioGroup | MtRadioGroup |
| Textarea | RsTextArea | MuiTextField (multiline) | MtTextarea |
| Button | RsButton | MuiButton | MtButton |
| Date picker | RsDatePicker | MuiDatePicker | MtDatePickerInput, MtDateRangePickerInput, MtMonthPickerInput |
| Time picker | RsTimePicker | ❌ | MtTimePicker, MtTimeInput |
| Color picker | ❌ | ❌ | MtColorInput, MtColorPicker |
| Rating | ❌ | ❌ | MtRating |
| Switch / Toggle | RsToggle | MuiSwitch | MtSwitch |
| Stepper / Wizard | RsWizard | ❌ | ❌ |
| Card / Container | RsCard, RsContainer | MuiCard, MuiContainer | MtContainer |
| Modal / Dialog | RsModalLayout | MuiDialog | MtDialog |
| File upload | RsUploader | MuiUploader | MtFileInput |
| Custom styling | CSS properties | MUI sx prop | Mantine classNames |
- RSuite: 35 components, wizard support, strong form UX
- Material UI: 27 components, native MUI tokens, aligns with existing MUI projects
- Mantine: 45+ components, specialty inputs (colors, ratings, rich dates), best for complex forms
Installation for each package
RSuite
Material UI
Mantine
Can I switch later?
Yes, switching is possible, but requires schema migration. The JSON schema structure stays the same across all three packages —key, props, children, validations, and events work identically. What changes is the type values.
Example migration from RSuite to Mantine:
type values in your schemas. If you have 50 forms, that’s 50 migrations. Consider using a migration script or helper function.
Pro tip: If you think you might switch in the future, store form schemas in a database (not hardcoded) so you can update them all at once.
Can I use two libraries in one app?
No — one form uses one view package. You can’t mix RSuite and Material UI components in the same form. But you can use different packages for different forms in the same app:Premium add-on components
FormEngine also offers premium add-on components that work with all three packages:- Data Grid — render large datasets in a table with sorting, filtering, pagination
- Rich Text Editor — WYSIWYG editor for long-form content
- Signature Pad — capture handwritten signatures
- QR Code — generate and display QR codes
- Google Maps — embed maps with address autocomplete
Common questions
”Which package has the best performance?”
All three have similar performance characteristics. RSuite and Mantine are slightly lighter than Material UI (which has more default styling). For most forms, the difference is negligible.”Can I use my own custom components instead?”
Yes. FormEngine supports custom components. You can mix built-in RSuite components with your own React components in the same form. See Custom Components for details.”What if I need a component that doesn’t exist?”
Build it as a custom component. FormEngine is designed to be extended. Any React component can be wrapped and used in your form JSON schema.”Do the three packages get the same updates?”
Yes. New features, bug fixes, and performance improvements are released across all three packages simultaneously. None is “more maintained” than the others.”Which package works with TypeScript?”
All three. FormEngine is fully typed, and all three packages include TypeScript definitions.”How much do the peer dependencies add to my bundle?”
- RSuite: ~80 KB (gzip) for rsuite
- Material UI: ~60 KB (gzip) for @mui/material + emotion
- Mantine: ~50 KB (gzip) for @mantine/core
Decision matrix
Use this matrix to confirm your choice:| If you… | Choose |
|---|---|
| …are building a new project with no existing UI framework | RSuite |
| …already use Material UI in your app | Material UI |
| …need color pickers, ratings, or advanced date pickers | Mantine |
| …need a multi-step wizard form | RSuite |
| …want maximum component count and flexibility | Mantine |
| …want the smallest bundle size | Material UI |
| …want zero configuration and fast setup | RSuite |
| …need very specific date/time pickers (month, year, range) | Mantine |
Next steps
RSuite Components
Browse all RSuite components, type names, and prop documentation.
Quick Start
Install FormEngine and build your first form in 5 minutes.
Material UI Components
View all Material UI component types and examples.
Mantine Components
Explore all Mantine components including color and date pickers.