Preface
Modern frontend applications increasingly operate under strict bundle size constraints - whether due to performance budgets, mobile usage, edge delivery, or embedding into third-party products. Form and survey libraries, while often treated as infrastructure, can contribute a non-trivial share of the total JavaScript payload, especially when they bring their own rendering layers, validation engines, and UI abstractions.
This article compares several popular form libraries - SurveyJS, react-jsonschema-form (RJSF), Vueform, and FormEngine Core (FormEngine), specifically through the lens of bundle size.
Rather than evaluating features, developer experience, or visual quality, we will focus on what actually ships to the browser.
To ensure comparability, we will:
- Measure production bundle size (minified + gzipped)
- Use default configurations, without extra optimizations
- Use the app setup and UI as close as possible to each other
- Compare setup with MUI library to evaluate UI kit overhead
We compare:
- Core runtime size
- UI-layer overhead
- Tree-shaking behavior and unavoidable baseline cost
We do not evaluate:
- Feature completeness
- Developer experience
- Visual quality
- Accessibility
Why this matters
Modern web applications are often built and tested on fast devices and reliable networks, but that environment is not representative of real users. Network speed, latency, and device performance vary widely, directly impacting how quickly a web app becomes usable. As JavaScript bundles grow, they amplify these delays: larger bundles take longer to transfer on slow connections and longer to parse and execute on constrained devices, resulting in slower Largest Contentful Paint (LCP), delayed Time to Interactive (TTI), and worse user experience. A significant share of global web traffic comes from emerging markets, where users rely on slow or unstable mobile networks. In these environments, "acceptable" bundle sizes on fast Wi-Fi can translate into multi-second delays on real devices. On slow mobile networks, even an extra 50–100 KB of JavaScript can noticeably delay interactivity, pushing load times beyond commonly accepted UX thresholds.
The tables below illustrate how bundle size increases behave differently on Slow 3G versus 4G, and how bundle growth impacts core web performance metrics. Users expect initial visual feedback within 1–2 seconds, and abandonment rates rise significantly around the 3-second mark, especially on mobile devices. Beyond 5 seconds, many users assume something is broken or leave altogether. Keeping JavaScript payloads small is one of the most reliable ways to stay within acceptable wait times across devices, networks, and regions.
| Additional JS | Slow 3G (total added time) | 4G (total added time) |
|---|---|---|
| +50 KB | ~1.5–1.7 s | ~0.15 s |
| +100 KB | ~2.6–2.8 s | ~0.30 s |
| +300 KB | ~7.0–7.5 s | ~0.70 s |
| +500 KB | ~11–12 s | ~1.1 s |
These delays affect Largest Contentful Paint (LCP) and, more critically, Time to Interactive (TTI). On 4G, bundle growth is often barely noticeable. On Slow 3G, the same increase can add multiple seconds to the critical path.
| Additional JS | LCP (Slow 3G) | LCP (4G) | TTI (Slow 3G) | TTI (4G) |
|---|---|---|---|---|
| +50 KB | ~1.0 s | ~0.05 s | ~1.2 s | ~0.15 s |
| +100 KB | ~2.0 s | ~0.1 s | ~2.3 s | ~0.3 s |
| +300 KB | ~6.0 s | ~0.3 s | ~6.8 s | ~0.7 s |
| +500 KB | ~10 s | ~0.5 s | ~11 s | ~1.1 s |
The gap widens as bundle size increases, especially for TTI, which is heavily influenced by JavaScript execution on slower devices.
The following chart illustrates how bundle size impacts performance across different network conditions:
Measuring methodology
Test scenarios
Two realistic use cases were implemented for each library:
- Simple login form, which is the simplest case for a form
- Multi-step booking form (validation, conditional logic, most common UI controls)
Comparing them side-by-side exposes how architectural choices directly impact bundle size.
Tooling
Tooling assumptions
To ensure comparability, all measurements use:
- Vite - the most widespread build tool at the moment
- Default production build, as described in documentation
- Tree-shaking enabled by default
- No manual optimizations
- No SSR / SSG
- No custom code splitting
- Default rendering engine and with Material UI (MUI) library
The goal is to measure what a typical setup ships, not an aggressively optimized edge case. To ensure fair comparison, we applied the following equalization approaches:
Equalize duplicated packages
Duplicated packages from mismatched versions or imports bloat bundles, wasting mobile users' data and parse time on repeated code. This can significantly shift test results, so we equalize duplicates as would be done in production.
Equalize with UI kit
To evaluate UI kit overhead, we also test setups using Material UI (MUI) library, where applicable. MUI is a battle-tested solution with excellent tree-shaking support.
Each library uses its default rendering approach:
- Vueform — Vue-native, opinionated form framework with built-in UI
- RJSF — JSON Schema renderer tightly integrated with React and UI kits
- SurveyJS — framework-agnostic engine with its own rendering layer
- FormEngine Core — form engine with pluggable custom components, designed for flexibility and minimal bundle overhead
Default UI-kit
Each library uses its default UI approach:
- Vueform — custom theming, CSS-based
- RJSF — plain HTML, using Bootstrap 3 CSS classes
- SurveyJS — its own CSS theming, custom components
- FormEngine Core — no default UI kit; requires a UI component library to be selected. Currently implemented options: React Suite (Rsuite), Material UI (MUI). This design choice allows FormEngine Core to achieve zero UI overhead when using external UI kits, as demonstrated in the measurements below.
| Feature | FormEngine Core | Vueform | RJSF | SurveyJS |
|---|---|---|---|---|
| Default UI | None | Vueform UI | Plain HTML | CSS |
| External UI kits | ✅ Native | ❌ | ✅ | Possible |
| Extensibility | High | Medium | High | Medium |
| Zero UI overhead | ✅ Yes | ❌ | ❌ | ❌ |
Material UI support
| Library | Native MUI support | Effort to match MUI |
|---|---|---|
| RJSF | ✅ Yes | 🟢 Low |
| SurveyJS | ❌ No | 🔴 High |
| Vueform | ❌ No | 🔴 High |
| FormEngine Core | ✅ Yes | 🟢 Low |
Equalize by tree-shaking
Tree-shaking is essential for reducing bundle size. It allows bundlers to remove unused exports from your final bundle, ensuring that you only ship the code that is actually used. This is especially important when working with large libraries, where a "small" feature can silently add hundreds of kilobytes to the bundle if tree-shaking is not effective. We measure each library's tree-shaking effectiveness to understand how their architecture impacts bundle size.
Equalize by SSR
As none of the libraries fully support SSR at the moment, we're not going to test against it.
| Form Library | SSR Support | Notes |
|---|---|---|
| FormEngine Core | Partial / Client‑only | Designed as a client‑side React form library. |
| RJSF | Limited SSR | Possible with some hacks related to hydration. |
| Vueform | Partial / Client‑only | Must be used client-side only. |
| SurveyJS | Partial / Client‑only | Designed as a client‑side React form library. |
Summary (gzip sizes)
Now that we've established the testing methodology and equalization approaches, let's examine the actual bundle size results. The following summary tables present gzipped bundle sizes for each library across different scenarios.
Login
| Library | Smallest Variant | gzip size |
|---|---|---|
| Vueform | login | 140.72 KB |
| RJSF | login | 175.26 KB |
| FormEngine Rsuite | login | 244.19 KB |
| SurveyJS | login | 421.67 KB |
Login MUI
| Library | Variant | gzip size |
|---|---|---|
| Vueform | login-mui | 141.09 KB |
| FormEngine MUI | login-mui | 188.54 KB |
| RJSF | login-mui | 231.62 KB |
| SurveyJS | login-mui | 391.72 KB |
Booking
| Library | Variant | gzip size |
|---|---|---|
| RJSF | booking | 178.07 KB |
| Vueform | booking | 199.06 KB |
| FormEngine Rsuite | booking | 316.69 KB |
| SurveyJS | booking | 423.75 KB |
Booking MUI
| Library | Variant | gzip size |
|---|---|---|
| FormEngine MUI | booking-mui | 199.26 KB |
| Vueform | booking-mui | 199.23 KB |
| RJSF | booking-mui | 234.50 KB |
| SurveyJS | booking-mui | 455.73 KB |
MUI Impact
| Library | login → login-mui delta (gzip) | booking → booking-mui delta (gzip) |
|---|---|---|
| FormEngine Core | -55.65 KB (MUI replaces Rsuite) | -117.43 KB (MUI replaces Rsuite) |
| SurveyJS | -29.95 KB | +31.98 KB |
| Vueform | +0.37 KB | +0.17 KB |
| RJSF | +56.36 KB | +56.43 KB |
FormEngine Core uniquely benefits from MUI integration, achieving significant bundle size reductions by replacing Rsuite components with Material UI's optimized implementations. This makes FormEngine Core the only library that becomes more efficient when integrating with external UI kits, rather than adding overhead. Notably, FormEngine Core achieves one of the smallest bundle sizes for booking forms when using MUI (199.26 KB), essentially tied with Vueform (199.23 KB) and significantly smaller than RJSF (234.50 KB) and SurveyJS (455.73 KB).
The data reveals clear patterns in how different libraries handle bundle size, particularly when integrating with external UI kits. FormEngine's modular architecture allows complete removal of unused UI components when switching to external UI kits, enabling it to achieve among the smallest bundles when integrated with Material UI.
FormEngine Core demonstrates exceptional tree-shaking behavior, with its modular architecture allowing complete removal of unused UI components when switching to external UI kits. This architectural advantage enables FormEngine Core to achieve among the smallest bundles when integrated with Material UI, as demonstrated in the booking form scenario where FormEngine with MUI (199.26 KB) achieves essentially the same size as Vueform (199.23 KB) while starting from a larger default UI baseline.
Conclusion
The measurements show that architectural choices dominate bundle size outcomes far more than individual features. However, one factor stands out as equally critical: the choice of UI kit plays a defining role in determining final bundle size, often more significant than the form library itself.
The Critical Role of UI Kit Selection
Choosing a UI library is a fundamental architectural choice that directly impacts bundle size, performance, and user experience. The data reveals dramatic differences in how libraries integrate with UI kits, with some benefiting significantly from external UI libraries while others experience substantial overhead.
FormEngine: The UI Kit Advantage
FormEngine demonstrates the most dramatic impact of UI kit selection, leveraging external UI libraries to achieve optimal bundle sizes. When using FormEngine with Material UI, the results are striking:
Login Form: Default UI vs MUI
| Library | Default UI (raw/gzip) | MUI (raw/gzip) | Difference (raw/gzip) | Impact |
|---|---|---|---|---|
| FormEngine | 1.04 MB / 244.19 KB | 618.80 KB / 188.54 KB | -421 KB / -55.6 KB | -40% / -23% ⬇️ |
| RJSF | 596.70 KB / 175.26 KB | 721.54 KB / 231.62 KB | +125 KB / +56.4 KB | +21% / +32% ⬆️ |
| SurveyJS | 1.81 MB / 421.67 KB | 1.47 MB / 391.72 KB | -340 KB / -30 KB | -19% / -7% ⬇️ |
| Vueform | 465.41 KB / 140.72 KB | 467.35 KB / 141.09 KB | +2 KB / +0.4 KB | +0.4% / +0.3% ⬆️ |
Booking Form: Default UI vs MUI
| Library | Default UI (raw/gzip) | MUI (raw/gzip) | Difference (raw/gzip) | Impact |
|---|---|---|---|---|
| FormEngine | 1.25 MB / 316.69 KB | 647.70 KB / 199.26 KB | -602 KB / -117.4 KB | -48% / -37% ⬇️ |
| RJSF | 606.07 KB / 178.07 KB | 731.02 KB / 234.50 KB | +125 KB / +56.4 KB | +21% / +32% ⬆️ |
| SurveyJS | 1.82 MB / 423.75 KB | 1.72 MB / 455.73 KB | -100 KB / +32 KB | -5% / +8% ⬆️ |
| Vueform | 716.68 KB / 199.06 KB | 716.33 KB / 199.23 KB | -0.35 KB / +0.17 KB | -0.05% / +0.09% ⬆️ |
Key Insight: FormEngine is the only library that achieves significant bundle size reduction when switching to MUI. FormEngine's default UI implementation includes substantial CSS and component code that gets completely replaced by MUI's optimized components, resulting in a 40-48% reduction in raw bundle size and 23-37% reduction in gzipped size. This makes FormEngine with MUI one of the most efficient combinations for applications already using Material UI.
Additional Advantages of FormEngine:
- Complete UI replacement: FormEngine's architecture allows full replacement of UI components, eliminating default UI overhead
- Best-in-class MUI integration: FormEngine is the only library where MUI integration reduces bundle size rather than increasing it
- Optimal for complex forms: For booking forms with MUI, FormEngine achieves one of the smallest bundles (199.26 KB), essentially tied with Vueform (199.23 KB) and significantly outperforming RJSF and SurveyJS
- Future-proof architecture: The pluggable component system ensures FormEngine can adapt to any UI library without bundle bloat
This architectural advantage makes FormEngine particularly valuable for:
- Applications already using Material UI or other established UI libraries
- Projects where bundle size is a primary concern
- Teams that want to leverage existing UI infrastructure rather than shipping duplicate UI code
- Complex forms requiring conditional logic and validation (where FormEngine's MUI variant excels)
- Long-term projects where UI library choices may evolve (FormEngine's flexibility prevents vendor lock-in)
Vueform
Vueform ships the smallest baseline. Its tightly coupled UI, validation, and rendering layers create a compact bundle, even for simple forms. Tree-shaking opportunities are limited due to the monolithic architecture, but the overall size remains the smallest across all tested scenarios. However, Vueform shows minimal benefit from external UI kits, as its integrated UI cannot be easily replaced. This makes Vueform the most suitable option under strict bundle budgets or slow-network constraints, but only if you're comfortable with its built-in UI.
SurveyJS
SurveyJS carries a heavy baseline. Its framework-agnostic engine and custom rendering layer provide flexibility, but require shipping substantial runtime code even for minimal use cases. While switching to MUI provides some reduction for simple forms, the benefit is inconsistent and the overall bundle remains large. It is reasonable for survey-centric applications, but expensive when embedded into existing products with established UI kits.
RJSF
RJSF occupies a predictable middle ground. The core runtime is relatively small, but adding MUI increases bundle size by 21-32% because RJSF's default plain HTML approach is lightweight, and MUI adds substantial overhead. Tree-shaking behaves as expected, duplicated chunks are avoidable, and bundle growth scales linearly with actual usage. This makes RJSF easier to control in performance-sensitive environments, but the MUI integration comes at a measurable cost.
Key takeaways
-
UI kit selection is as critical as form library selection. The choice of UI library can result in 20-50% bundle size differences, often more significant than the form engine itself.
-
FormEngine uniquely benefits from external UI kits. When paired with Material UI, FormEngine achieves 40-48% bundle size reduction, making it the optimal choice for applications already using established UI libraries.
-
Baseline cost matters more than feature count. Monolithic runtimes impose a fixed performance tax that cannot be optimized away.
-
Tree-shaking only works when the architecture allows it. Modular exports and UI adapters make a measurable difference, as demonstrated by FormEngine's ability to replace its default UI entirely.
-
Integration quality matters more than raw feature sets. Libraries that integrate seamlessly with existing UI infrastructure provide better long-term value than those that require shipping duplicate UI code.
-
For applications using Material UI or similar libraries, FormEngine provides excellent bundle size efficiency. In the booking form scenario with MUI, FormEngine (199.26 KB) is essentially tied with Vueform (199.23 KB) and significantly outperforms RJSF (234.50 KB) and SurveyJS (455.73 KB). FormEngine is the only library that achieves this efficiency through bundle size reduction rather than starting with a small baseline.
These insights point to a fundamental principle that should guide library selection decisions:
When using Material UI or other established UI libraries
FormEngine provides the best size-to-capability ratio
FormEngine's ability to leverage external UI kits results in the smallest bundle sizes when integrated with Material UI, achieving 40-48% reduction compared to its default UI. This makes FormEngine the optimal choice for applications already committed to a UI library ecosystem. FormEngine's unique architecture with complete UI replaceability and exceptional tree-shaking ensures that integrating with Material UI actually reduces bundle size rather than adding overhead, a benefit no other library provides.
When building from scratch or requiring minimal dependencies
Vueform provides the smallest baseline
Vueform's integrated approach delivers the smallest bundles when no external UI library is used, making it suitable for standalone applications or strict bundle budgets.
For predictable, controllable growth
RJSF offers predictable bundle sizes with good tree-shaking, though MUI integration adds overhead. SurveyJS should be chosen only when its specific survey-focused ecosystem is a primary requirement.
Source code
All mentioned tools, testing data, and the complete test suite are available in our GitHub repository. The repository includes build configurations, test applications for each library, and scripts to reproduce these measurements. Feel free to explore the code, run your own tests, or contact us with questions.
Full report
The summary tables above provide a high-level overview of bundle size comparisons. The full report below contains detailed breakdowns by library, variant, and build tool, including:
- Detailed chunk analysis showing how bundle size is distributed across code and CSS
- Performance impact visualizations comparing Slow 3G vs 4G network conditions
- Duplicate package detection and wasted size calculations
- Per-variant comparisons highlighting the smallest bundles in each category
This detailed data helps you understand not just which library is smallest overall, but how each library's bundle composition affects real-world performance across different scenarios.
Summary Matrix (Total Size)
Non-MUI (FormEngine Rsuite, RJSF, SurveyJS, VueForm)
| App | login(raw/gzip) | booking(raw/gzip) |
|---|---|---|
| FormEngine Rsuite | 1.04 MB / 245.07KB (+598.8 KB / +104.3 KB) | 1.25 MB / 317.58KB (+673.1 KB / +139.1 KB) |
| RJSF | 597.91 KB / 175.64KB (+132.3 KB / +34.9 KB) | 607.27 KB / 178.48KB (0 KB / 0 KB) |
| SurveyJS | 1.84 MB / 429.41KB (+1414.0 KB / +288.6 KB) | 1.84 MB / 431.44KB (+1279.6 KB / +253.0 KB) |
| VueForm | 465.56 KB / 140.78KB (0 KB / 0 KB) | 716.41 KB / 198.99KB (+109.1 KB / +20.5 KB) |
Legend: Bold values indicate the smallest value in each comparison. Smaller is better.
MUI (FormEngine MUI, RJSF, SurveyJS, VueForm)
| App | login(raw/gzip) | booking(raw/gzip) |
|---|---|---|
| FormEngine MUI | 622.40 KB / 189.44KB (+154.9 KB / +48.3 KB) | 651.00 KB / 200.17KB (0 KB / +1.0 KB) |
| RJSF | 725.37 KB / 232.64KB (+257.9 KB / +91.5 KB) | 734.86 KB / 235.53KB (+83.9 KB / +36.4 KB) |
| SurveyJS | 1.49 MB / 397.71KB (+1057.7 KB / +256.6 KB) | 1.74 MB / 461.73KB (+1133.0 KB / +262.6 KB) |
| VueForm | 467.50 KB / 141.16KB (0 KB / 0 KB) | 716.06 KB / 199.16KB (+65.1 KB / 0 KB) |
Legend: Bold values indicate the smallest value in each comparison. Smaller is better.
Comparison by App
FormEngine Core
| Variant | Total Size(raw/gzip) | Chunks | Code(raw/gzip) | CSS(raw/gzip) |
|---|---|---|---|---|
| booking | 1.25 MB / 317.58KB | 2 | 842.18 KB / 265.16KB | 438.18 KB / 52.42KB |
| booking-mui | 651.00 KB / 200.17KB | 2 | 650.82 KB / 200.00KB | 186.00 B / 169.00B |
| login | 1.04 MB / 245.07KB | 2 | 626.23 KB / 192.65KB | 438.18 KB / 52.42KB |
| login-mui | 622.40 KB / 189.44KB | 2 | 622.22 KB / 189.27KB | 186.00 B / 169.00B |
RJSF
| Variant | Total Size(raw/gzip) | Chunks | Code(raw/gzip) | CSS(raw/gzip) |
|---|---|---|---|---|
| booking | 607.27 KB / 178.48KB | 2 | 489.77 KB / 159.11KB | 117.50 KB / 19.38KB |
| booking-mui | 734.86 KB / 235.53KB | 2 | 734.35 KB / 235.24KB | 518.00 B / 297.00B |
| login | 597.91 KB / 175.64KB | 2 | 480.72 KB / 156.37KB | 117.18 KB / 19.27KB |
| login-mui | 725.37 KB / 232.64KB | 2 | 725.19 KB / 232.47KB | 186.00 B / 169.00B |
SurveyJS
| Variant | Total Size(raw/gzip) | Chunks | Code(raw/gzip) | CSS(raw/gzip) |
|---|---|---|---|---|
| booking | 1.84 MB / 431.44KB | 2 | 1.54 MB / 396.10KB | 305.64 KB / 35.34KB |
| booking-mui | 1.74 MB / 461.73KB | 2 | 1.74 MB / 460.94KB | 2.22 KB / 808.00B |
| login | 1.84 MB / 429.41KB | 2 | 1.54 MB / 394.07KB | 305.64 KB / 35.34KB |
| login-mui | 1.49 MB / 397.71KB | 2 | 1.49 MB / 397.55KB | 186.00 B / 169.00B |
VueForm
| Variant | Total Size(raw/gzip) | Chunks | Code(raw/gzip) | CSS(raw/gzip) |
|---|---|---|---|---|
| booking | 716.41 KB / 198.99KB | 2 | 581.98 KB / 181.59KB | 134.43 KB / 17.40KB |
| booking-mui | 716.06 KB / 199.16KB | 2 | 581.98 KB / 181.59KB | 134.08 KB / 17.56KB |
| login | 465.56 KB / 140.78KB | 2 | 388.14 KB / 130.75KB | 77.42 KB / 10.03KB |
| login-mui | 467.50 KB / 141.16KB | 2 | 389.68 KB / 130.92KB | 77.82 KB / 10.23KB |
Comparison by Variant
LOGIN
| App | Total Size(raw/gzip) | Chunks | Code(raw/gzip) | CSS(raw/gzip) |
|---|---|---|---|---|
| SurveyJS | 1.84 MB / 429.41KB (+1414.0 KB / +288.6 KB) | 2 | 1.54 MB / 394.07KB | 305.64 KB / 35.34KB |
| FormEngine Rsuite | 1.04 MB / 245.07KB (+598.8 KB / +104.3 KB) | 2 | 626.23 KB / 192.65KB | 438.18 KB / 52.42KB |
| RJSF | 597.91 KB / 175.64KB (+132.3 KB / +34.9 KB) | 2 | 480.72 KB / 156.37KB | 117.18 KB / 19.27KB |
| VueForm | 465.56 KB / 140.78KB | 2 | 388.14 KB / 130.75KB | 77.42 KB / 10.03KB |
Legend: Bold values indicate the smallest value in each comparison. Smaller is better.
Performance Comparison (using gzip sizes)
LOGIN-MUI
| App | Total Size(raw/gzip) | Chunks | Code(raw/gzip) | CSS(raw/gzip) |
|---|---|---|---|---|
| SurveyJS | 1.49 MB / 397.71KB (+1057.7 KB / +256.6 KB) | 2 | 1.49 MB / 397.55KB | 186.00 B / 169.00B |
| RJSF | 725.37 KB / 232.64KB (+257.9 KB / +91.5 KB) | 2 | 725.19 KB / 232.47KB | 186.00 B / 169.00B |
| FormEngine MUI | 622.40 KB / 189.44KB (+154.9 KB / +48.3 KB) | 2 | 622.22 KB / 189.27KB | 186.00 B / 169.00B |
| VueForm | 467.50 KB / 141.16KB | 2 | 389.68 KB / 130.92KB | 77.82 KB / 10.23KB |
Legend: Bold values indicate the smallest value in each comparison. Smaller is better.
Performance Comparison (using gzip sizes)
BOOKING
| App | Total Size(raw/gzip) | Chunks | Code(raw/gzip) | CSS(raw/gzip) |
|---|---|---|---|---|
| SurveyJS | 1.84 MB / 431.44KB (+1279.6 KB / +253.0 KB) | 2 | 1.54 MB / 396.10KB | 305.64 KB / 35.34KB |
| FormEngine Rsuite | 1.25 MB / 317.58KB (+673.1 KB / +139.1 KB) | 2 | 842.18 KB / 265.16KB | 438.18 KB / 52.42KB |
| VueForm | 716.41 KB / 198.99KB (+109.1 KB / +20.5 KB) | 2 | 581.98 KB / 181.59KB | 134.43 KB / 17.40KB |
| RJSF | 607.27 KB / 178.48KB | 2 | 489.77 KB / 159.11KB | 117.50 KB / 19.38KB |
Legend: Bold values indicate the smallest value in each comparison. Smaller is better.
Performance Comparison (using gzip sizes)
BOOKING-MUI
| App | Total Size(raw/gzip) | Chunks | Code(raw/gzip) | CSS(raw/gzip) |
|---|---|---|---|---|
| SurveyJS | 1.74 MB / 461.73KB (+1133.0 KB / +262.6 KB) | 2 | 1.74 MB / 460.94KB | 2.22 KB / 808.00B |
| RJSF | 734.86 KB / 235.53KB (+83.9 KB / +36.4 KB) | 2 | 734.35 KB / 235.24KB | 518.00 B / 297.00B |
| VueForm | 716.06 KB / 199.16KB (+65.1 KB / 0 KB) | 2 | 581.98 KB / 181.59KB | 134.08 KB / 17.56KB |
| FormEngine MUI | 651.00 KB / 200.17KB (0 KB / +1.0 KB) | 2 | 650.82 KB / 200.00KB | 186.00 B / 169.00B |
Legend: Bold values indicate the smallest value in each comparison. Smaller is better.
Performance Comparison (using gzip sizes)
Detailed Chunk Information
FormEngine Core
Variant: booking
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 842.18 KB / 265.16KB | 65.8% |
| CSS | 438.18 KB / 52.42KB | 34.2% |
Chunks:
| Chunk | Size |
|---|---|
| assets/booking-cLEyt4Rz.js | 842.18 KB |
| assets/booking-BlfDlKZh.css | 438.18 KB |
| Total | 1.25 MB / 317.58KB |
Variant: booking-mui
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 650.82 KB / 200.00KB | 100.0% |
| CSS | 186.00 B / 169.00B | 0.0% |
Chunks:
| Chunk | Size |
|---|---|
| assets/booking-mui-8oUcs06n.js | 650.82 KB |
| assets/booking-mui-DRllDmdv.css | 186.00 B |
| Total | 651.00 KB / 200.17KB |
Variant: login
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 626.23 KB / 192.65KB | 58.8% |
| CSS | 438.18 KB / 52.42KB | 41.2% |
Chunks:
| Chunk | Size |
|---|---|
| assets/login-CZHp6lqC.js | 626.23 KB |
| assets/login-BlfDlKZh.css | 438.18 KB |
| Total | 1.04 MB / 245.07KB |
Variant: login-mui
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 622.22 KB / 189.27KB | 100.0% |
| CSS | 186.00 B / 169.00B | 0.0% |
Chunks:
| Chunk | Size |
|---|---|
| assets/login-mui-Ck_0wiA4.js | 622.22 KB |
| assets/login-mui-DRllDmdv.css | 186.00 B |
| Total | 622.40 KB / 189.44KB |
RJSF
Variant: booking
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 489.77 KB / 159.11KB | 80.7% |
| CSS | 117.50 KB / 19.38KB | 19.3% |
Chunks:
| Chunk | Size |
|---|---|
| assets/booking-DJqT1Azw.js | 489.77 KB |
| assets/booking-DmSkEnsk.css | 117.50 KB |
| Total | 607.27 KB / 178.48KB |
Variant: booking-mui
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 734.35 KB / 235.24KB | 99.9% |
| CSS | 518.00 B / 297.00B | 0.1% |
Chunks:
| Chunk | Size |
|---|---|
| assets/booking-mui-COUHI9qn.js | 734.35 KB |
| assets/booking-mui-Bomwm_CU.css | 518.00 B |
| Total | 734.86 KB / 235.53KB |
Variant: login
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 480.72 KB / 156.37KB | 80.4% |
| CSS | 117.18 KB / 19.27KB | 19.6% |
Chunks:
| Chunk | Size |
|---|---|
| assets/login-V6rgUKiK.js | 480.72 KB |
| assets/login-nEkMQGGj.css | 117.18 KB |
| Total | 597.91 KB / 175.64KB |
Variant: login-mui
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 725.19 KB / 232.47KB | 100.0% |
| CSS | 186.00 B / 169.00B | 0.0% |
Chunks:
| Chunk | Size |
|---|---|
| assets/login-mui-ChXj5s7v.js | 725.19 KB |
| assets/login-mui-DRllDmdv.css | 186.00 B |
| Total | 725.37 KB / 232.64KB |
SurveyJS
Variant: booking
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 1.54 MB / 396.10KB | 83.8% |
| CSS | 305.64 KB / 35.34KB | 16.2% |
Chunks:
| Chunk | Size |
|---|---|
| assets/booking-BE-zW9Ik.js | 1.54 MB |
| assets/booking-D3E-h4Sw.css | 305.64 KB |
| Total | 1.84 MB / 431.44KB |
Variant: booking-mui
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 1.74 MB / 460.94KB | 99.9% |
| CSS | 2.22 KB / 808.00B | 0.1% |
Chunks:
| Chunk | Size |
|---|---|
| assets/booking-mui-tTf90JQr.js | 1.74 MB |
| assets/booking-mui-DpJ2xjkN.css | 2.22 KB |
| Total | 1.74 MB / 461.73KB |
Variant: login
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 1.54 MB / 394.07KB | 83.7% |
| CSS | 305.64 KB / 35.34KB | 16.3% |
Chunks:
| Chunk | Size |
|---|---|
| assets/login-qcT824kj.js | 1.54 MB |
| assets/login-D3E-h4Sw.css | 305.64 KB |
| Total | 1.84 MB / 429.41KB |
Variant: login-mui
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 1.49 MB / 397.55KB | 100.0% |
| CSS | 186.00 B / 169.00B | 0.0% |
Chunks:
| Chunk | Size |
|---|---|
| assets/login-mui-BtJbERC0.js | 1.49 MB |
| assets/login-mui-DRllDmdv.css | 186.00 B |
| Total | 1.49 MB / 397.71KB |
VueForm
Variant: booking
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 581.98 KB / 181.59KB | 81.2% |
| CSS | 134.43 KB / 17.40KB | 18.8% |
Chunks:
| Chunk | Size |
|---|---|
| assets/booking-FMlCJeul.js | 581.98 KB |
| assets/booking-MdY-dgU2.css | 134.43 KB |
| Total | 716.41 KB / 198.99KB |
Variant: booking-mui
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 581.98 KB / 181.59KB | 81.3% |
| CSS | 134.08 KB / 17.56KB | 18.7% |
Chunks:
| Chunk | Size |
|---|---|
| assets/booking-mui-CYQUKf4s.js | 581.98 KB |
| assets/booking-mui-BnsU-ma9.css | 134.08 KB |
| Total | 716.06 KB / 199.16KB |
Variant: login
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 388.14 KB / 130.75KB | 83.4% |
| CSS | 77.42 KB / 10.03KB | 16.6% |
Chunks:
| Chunk | Size |
|---|---|
| assets/login-DRWdQb0V.js | 388.14 KB |
| assets/login-x6SVVLFq.css | 77.42 KB |
| Total | 465.56 KB / 140.78KB |
Variant: login-mui
Bundle Breakdown:
| Category | Size | Percentage |
|---|---|---|
| Code | 389.68 KB / 130.92KB | 83.4% |
| CSS | 77.82 KB / 10.23KB | 16.6% |
Chunks:
| Chunk | Size |
|---|---|
| assets/login-mui-DB0MzmEj.js | 389.68 KB |
| assets/login-mui-CWmCCSP1.css | 77.82 KB |
| Total | 467.50 KB / 141.16KB |