Skip to main content

Introducing Workflow Engine, try for FREE workflowengine.io.

Bundle Size Comparison of Form Libraries

Choosing the right form library significantly impacts your application's performance, especially on mobile devices and slow networks. This comprehensive comparison analyzes bundle sizes of four popular form libraries: FormEngine Core, SurveyJS, react-jsonschema-form (RJSF), and Vueform, helping you make an informed decision based on actual shipping code rather than feature lists.

Why bundle size matters for form libraries

Modern web applications face strict performance budgets, particularly when serving users on mobile devices or in regions with limited network connectivity. Every kilobyte of JavaScript affects load times, user experience, and conversion rates.

The performance impact of bundle size

Additional JavaScriptSlow 3G Impact4G ImpactUser Experience Impact
+50 KB~1.5–1.7 seconds~0.15 secondsNoticeable delay on mobile
+100 KB~2.6–2.8 seconds~0.30 secondsSignificant delay, possible abandonment
+300 KB~7.0–7.5 seconds~0.70 secondsHigh abandonment rate
+500 KB~11–12 seconds~1.1 secondsCritical performance issue

Form libraries, while essential for user interaction, can contribute substantially to your total JavaScript payload. Understanding how different libraries approach bundle size helps you choose one that aligns with your performance goals.

Testing methodology and fair comparison

info

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.

To ensure accurate, comparable results, we implemented a standardized testing approach:

Test scenarios

  • Login form: Simple form with email and password fields
  • Booking form: Complex multi-step form with validation and conditional logic

Tooling assumptions

  • Build tool: Vite (default production configuration)
  • Optimizations: Minification + gzip enabled
  • Tree-shaking: Enabled by default
  • UI variations: Tested with default UI and Material UI (MUI) where applicable

Equalization approaches

  1. Duplicate package removal: Eliminated version mismatches
  2. UI kit equalization: Tested with and without Material UI
  3. Tree-shaking evaluation: Measured effectiveness of dead code elimination

Bundle size results: gzipped comparison

The following tables present gzipped bundle sizes for each library across different scenarios. Gzipped size represents what actually travels over the network to users' browsers.

Simple login form results

LibraryDefault UI SizeWith Material UIDifferenceKey Insight
Vueform140.72 KB141.09 KB+0.37 KBMinimal change, smallest baseline
RJSF175.26 KB231.62 KB+56.36 KBMUI adds significant overhead
FormEngine Core244.19 KB188.54 KB-55.65 KBOnly library that reduces size with MUI
SurveyJS421.67 KB391.72 KB-29.95 KBLarge baseline, modest reduction

Complex booking form results

LibraryDefault UI SizeWith Material UIDifferenceKey Insight
Vueform199.06 KB199.23 KB+0.17 KBStable size, integrated UI
RJSF178.07 KB234.50 KB+56.43 KBPredictable growth with MUI
FormEngine Core316.69 KB199.26 KB-117.43 KBDramatic 37% reduction with MUI
SurveyJS423.75 KB455.73 KB+31.98 KBInconsistent MUI impact

Architectural analysis: Why results vary

Different libraries adopt distinct architectural approaches that directly impact their bundle size characteristics.

FormEngine Core: The modular advantage

FormEngine's pluggable architecture enables complete UI replacement. When you switch from its default React Suite components to Material UI:

Important

FormEngine's modular design means you only pay for what you use. When integrated with Material UI, the default React Suite components are completely removed from your bundle, resulting in significant size reductions.

  • Complete UI replacement: Default UI components are entirely removed
  • Optimal tree-shaking: Unused code is effectively eliminated
  • Zero UI overhead: No duplicate UI code shipped
  • Best-in-class MUI integration: Actually reduces bundle size

This makes FormEngine Core particularly valuable for teams already using established UI libraries like Material UI.

Vueform: Integrated efficiency

Vueform delivers the smallest baseline through tight integration:

  • Monolithic architecture: UI, validation, and rendering are coupled
  • Stable size: Consistent across UI variations
  • Suitable for: Standalone applications with strict size budgets

RJSF: Predictable performance

RJSF offers predictable bundle growth:

  • Small core runtime: Lightweight foundation
  • Linear scaling: Bundle size grows with feature usage
  • MUI overhead: Adds 21-32% to bundle size

SurveyJS: Feature-rich foundation

SurveyJS prioritizes features over size:

  • Large baseline: Substantial runtime even for simple forms
  • Framework-agnostic: Flexibility comes at a size cost
  • Inconsistent optimization: MUI impact varies by scenario
  • Best for: Survey-focused applications needing extensive features

Key takeaways for library selection

When using Material UI or established UI libraries

Choose FormEngine Core for optimal size-to-capability ratio

FormEngine Core is the only library that reduces bundle size when integrating with Material UI, achieving 40-48% reduction compared to React Suite UI. This makes it ideal for teams leveraging existing UI infrastructure.

Benefits:

  • Complete UI replacement eliminates default UI overhead
  • Exceptional tree-shaking removes unused code
  • Future-proof architecture adapts to any UI library
  • Best performance for complex forms with MUI

When building from scratch with minimal dependencies

Choose Vueform for the smallest baseline

Vueform delivers the most compact bundles when no external UI library is required, making it suitable for standalone applications or strict performance budgets.

When needing predictable, controllable growth

Choose RJSF for linear scaling

RJSF offers predictable bundle sizes, though Material UI integration adds measurable overhead.

When survey-specific features are essential

Choose SurveyJS for specialized capabilities

SurveyJS provides extensive survey-focused features but carries a substantial size penalty that may not justify the cost for general form use cases.

Practical recommendations

For performance-critical applications

  1. Audit your UI library usage: If already using Material UI, FormEngine Core provides the best efficiency
  2. Consider network conditions: On Slow 3G networks, every 50KB adds ~1.5 seconds to load time
  3. Test with your actual forms: Bundle size impact varies with form complexity
  4. Monitor tree-shaking effectiveness: Use bundle analyzers to verify dead code elimination

Integration considerations

  • FormEngine Core: Requires UI library selection but offers maximum flexibility
  • Vueform: Works best with its integrated UI, limited external UI support
  • RJSF: Good Material UI integration but adds overhead
  • SurveyJS: Limited UI kit support, primarily uses custom rendering

Summary

FormEngine's architecture makes it the most efficient choice for teams already invested in UI library ecosystems, while Vueform offers the smallest footprint for new projects. The choice ultimately depends on your specific constraints around existing infrastructure, performance requirements, and feature needs.


warning

Below is a detailed, in-depth library comparison with graphs. This may be of interest to those who plan to replicate these measurements and compare them with our results.

Detailed performance impact visualization

The chart below illustrates how bundle size affects load times across different network conditions:

Complete test data and methodology

Summary Matrix (Total Size)

Non-MUI (FormEngine Rsuite, RJSF, SurveyJS, VueForm)

Applogin(raw/gzip)booking(raw/gzip)
FormEngine Rsuite1.04 MB / 245.07KB (+598.8 KB / +104.3 KB)1.25 MB / 317.58KB (+673.1 KB / +139.1 KB)
RJSF597.91 KB / 175.64KB (+132.3 KB / +34.9 KB)607.27 KB / 178.48KB (0 KB / 0 KB)
SurveyJS1.84 MB / 429.41KB (+1414.0 KB / +288.6 KB)1.84 MB / 431.44KB (+1279.6 KB / +253.0 KB)
VueForm465.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)

Applogin(raw/gzip)booking(raw/gzip)
FormEngine MUI622.40 KB / 189.44KB (+154.9 KB / +48.3 KB)651.00 KB / 200.17KB (0 KB / +1.0 KB)
RJSF725.37 KB / 232.64KB (+257.9 KB / +91.5 KB)734.86 KB / 235.53KB (+83.9 KB / +36.4 KB)
SurveyJS1.49 MB / 397.71KB (+1057.7 KB / +256.6 KB)1.74 MB / 461.73KB (+1133.0 KB / +262.6 KB)
VueForm467.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

VariantTotal Size(raw/gzip)ChunksCode(raw/gzip)CSS(raw/gzip)
booking1.25 MB / 317.58KB2842.18 KB / 265.16KB438.18 KB / 52.42KB
booking-mui651.00 KB / 200.17KB2650.82 KB / 200.00KB186.00 B / 169.00B
login1.04 MB / 245.07KB2626.23 KB / 192.65KB438.18 KB / 52.42KB
login-mui622.40 KB / 189.44KB2622.22 KB / 189.27KB186.00 B / 169.00B

RJSF

VariantTotal Size(raw/gzip)ChunksCode(raw/gzip)CSS(raw/gzip)
booking607.27 KB / 178.48KB2489.77 KB / 159.11KB117.50 KB / 19.38KB
booking-mui734.86 KB / 235.53KB2734.35 KB / 235.24KB518.00 B / 297.00B
login597.91 KB / 175.64KB2480.72 KB / 156.37KB117.18 KB / 19.27KB
login-mui725.37 KB / 232.64KB2725.19 KB / 232.47KB186.00 B / 169.00B

SurveyJS

VariantTotal Size(raw/gzip)ChunksCode(raw/gzip)CSS(raw/gzip)
booking1.84 MB / 431.44KB21.54 MB / 396.10KB305.64 KB / 35.34KB
booking-mui1.74 MB / 461.73KB21.74 MB / 460.94KB2.22 KB / 808.00B
login1.84 MB / 429.41KB21.54 MB / 394.07KB305.64 KB / 35.34KB
login-mui1.49 MB / 397.71KB21.49 MB / 397.55KB186.00 B / 169.00B

VueForm

VariantTotal Size(raw/gzip)ChunksCode(raw/gzip)CSS(raw/gzip)
booking716.41 KB / 198.99KB2581.98 KB / 181.59KB134.43 KB / 17.40KB
booking-mui716.06 KB / 199.16KB2581.98 KB / 181.59KB134.08 KB / 17.56KB
login465.56 KB / 140.78KB2388.14 KB / 130.75KB77.42 KB / 10.03KB
login-mui467.50 KB / 141.16KB2389.68 KB / 130.92KB77.82 KB / 10.23KB

Comparison by Variant

LOGIN

AppTotal Size(raw/gzip)ChunksCode(raw/gzip)CSS(raw/gzip)
SurveyJS1.84 MB / 429.41KB (+1414.0 KB / +288.6 KB)21.54 MB / 394.07KB305.64 KB / 35.34KB
FormEngine Rsuite1.04 MB / 245.07KB (+598.8 KB / +104.3 KB)2626.23 KB / 192.65KB438.18 KB / 52.42KB
RJSF597.91 KB / 175.64KB (+132.3 KB / +34.9 KB)2480.72 KB / 156.37KB117.18 KB / 19.27KB
VueForm465.56 KB / 140.78KB2388.14 KB / 130.75KB77.42 KB / 10.03KB

Legend: Bold values indicate the smallest value in each comparison. Smaller is better.

Performance Comparison (using gzip sizes)

LOGIN-MUI

AppTotal Size(raw/gzip)ChunksCode(raw/gzip)CSS(raw/gzip)
SurveyJS1.49 MB / 397.71KB (+1057.7 KB / +256.6 KB)21.49 MB / 397.55KB186.00 B / 169.00B
RJSF725.37 KB / 232.64KB (+257.9 KB / +91.5 KB)2725.19 KB / 232.47KB186.00 B / 169.00B
FormEngine MUI622.40 KB / 189.44KB (+154.9 KB / +48.3 KB)2622.22 KB / 189.27KB186.00 B / 169.00B
VueForm467.50 KB / 141.16KB2389.68 KB / 130.92KB77.82 KB / 10.23KB

Legend: Bold values indicate the smallest value in each comparison. Smaller is better.

Performance Comparison (using gzip sizes)

BOOKING

AppTotal Size(raw/gzip)ChunksCode(raw/gzip)CSS(raw/gzip)
SurveyJS1.84 MB / 431.44KB (+1279.6 KB / +253.0 KB)21.54 MB / 396.10KB305.64 KB / 35.34KB
FormEngine Rsuite1.25 MB / 317.58KB (+673.1 KB / +139.1 KB)2842.18 KB / 265.16KB438.18 KB / 52.42KB
VueForm716.41 KB / 198.99KB (+109.1 KB / +20.5 KB)2581.98 KB / 181.59KB134.43 KB / 17.40KB
RJSF607.27 KB / 178.48KB2489.77 KB / 159.11KB117.50 KB / 19.38KB

Legend: Bold values indicate the smallest value in each comparison. Smaller is better.

Performance Comparison (using gzip sizes)

BOOKING-MUI

AppTotal Size(raw/gzip)ChunksCode(raw/gzip)CSS(raw/gzip)
SurveyJS1.74 MB / 461.73KB (+1133.0 KB / +262.6 KB)21.74 MB / 460.94KB2.22 KB / 808.00B
RJSF734.86 KB / 235.53KB (+83.9 KB / +36.4 KB)2734.35 KB / 235.24KB518.00 B / 297.00B
VueForm716.06 KB / 199.16KB (+65.1 KB / 0 KB)2581.98 KB / 181.59KB134.08 KB / 17.56KB
FormEngine MUI651.00 KB / 200.17KB (0 KB / +1.0 KB)2650.82 KB / 200.00KB186.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:

CategorySizePercentage
Code842.18 KB / 265.16KB65.8%
CSS438.18 KB / 52.42KB34.2%

Chunks:

ChunkSize
assets/booking-cLEyt4Rz.js842.18 KB
assets/booking-BlfDlKZh.css438.18 KB
Total1.25 MB / 317.58KB
Variant: booking-mui

Bundle Breakdown:

CategorySizePercentage
Code650.82 KB / 200.00KB100.0%
CSS186.00 B / 169.00B0.0%

Chunks:

ChunkSize
assets/booking-mui-8oUcs06n.js650.82 KB
assets/booking-mui-DRllDmdv.css186.00 B
Total651.00 KB / 200.17KB
Variant: login

Bundle Breakdown:

CategorySizePercentage
Code626.23 KB / 192.65KB58.8%
CSS438.18 KB / 52.42KB41.2%

Chunks:

ChunkSize
assets/login-CZHp6lqC.js626.23 KB
assets/login-BlfDlKZh.css438.18 KB
Total1.04 MB / 245.07KB
Variant: login-mui

Bundle Breakdown:

CategorySizePercentage
Code622.22 KB / 189.27KB100.0%
CSS186.00 B / 169.00B0.0%

Chunks:

ChunkSize
assets/login-mui-Ck_0wiA4.js622.22 KB
assets/login-mui-DRllDmdv.css186.00 B
Total622.40 KB / 189.44KB

RJSF

Variant: booking

Bundle Breakdown:

CategorySizePercentage
Code489.77 KB / 159.11KB80.7%
CSS117.50 KB / 19.38KB19.3%

Chunks:

ChunkSize
assets/booking-DJqT1Azw.js489.77 KB
assets/booking-DmSkEnsk.css117.50 KB
Total607.27 KB / 178.48KB
Variant: booking-mui

Bundle Breakdown:

CategorySizePercentage
Code734.35 KB / 235.24KB99.9%
CSS518.00 B / 297.00B0.1%

Chunks:

ChunkSize
assets/booking-mui-COUHI9qn.js734.35 KB
assets/booking-mui-Bomwm_CU.css518.00 B
Total734.86 KB / 235.53KB
Variant: login

Bundle Breakdown:

CategorySizePercentage
Code480.72 KB / 156.37KB80.4%
CSS117.18 KB / 19.27KB19.6%

Chunks:

ChunkSize
assets/login-V6rgUKiK.js480.72 KB
assets/login-nEkMQGGj.css117.18 KB
Total597.91 KB / 175.64KB
Variant: login-mui

Bundle Breakdown:

CategorySizePercentage
Code725.19 KB / 232.47KB100.0%
CSS186.00 B / 169.00B0.0%

Chunks:

ChunkSize
assets/login-mui-ChXj5s7v.js725.19 KB
assets/login-mui-DRllDmdv.css186.00 B
Total725.37 KB / 232.64KB

SurveyJS

Variant: booking

Bundle Breakdown:

CategorySizePercentage
Code1.54 MB / 396.10KB83.8%
CSS305.64 KB / 35.34KB16.2%

Chunks:

ChunkSize
assets/booking-BE-zW9Ik.js1.54 MB
assets/booking-D3E-h4Sw.css305.64 KB
Total1.84 MB / 431.44KB
Variant: booking-mui

Bundle Breakdown:

CategorySizePercentage
Code1.74 MB / 460.94KB99.9%
CSS2.22 KB / 808.00B0.1%

Chunks:

ChunkSize
assets/booking-mui-tTf90JQr.js1.74 MB
assets/booking-mui-DpJ2xjkN.css2.22 KB
Total1.74 MB / 461.73KB
Variant: login

Bundle Breakdown:

CategorySizePercentage
Code1.54 MB / 394.07KB83.7%
CSS305.64 KB / 35.34KB16.3%

Chunks:

ChunkSize
assets/login-qcT824kj.js1.54 MB
assets/login-D3E-h4Sw.css305.64 KB
Total1.84 MB / 429.41KB
Variant: login-mui

Bundle Breakdown:

CategorySizePercentage
Code1.49 MB / 397.55KB100.0%
CSS186.00 B / 169.00B0.0%

Chunks:

ChunkSize
assets/login-mui-BtJbERC0.js1.49 MB
assets/login-mui-DRllDmdv.css186.00 B
Total1.49 MB / 397.71KB

VueForm

Variant: booking

Bundle Breakdown:

CategorySizePercentage
Code581.98 KB / 181.59KB81.2%
CSS134.43 KB / 17.40KB18.8%

Chunks:

ChunkSize
assets/booking-FMlCJeul.js581.98 KB
assets/booking-MdY-dgU2.css134.43 KB
Total716.41 KB / 198.99KB
Variant: booking-mui

Bundle Breakdown:

CategorySizePercentage
Code581.98 KB / 181.59KB81.3%
CSS134.08 KB / 17.56KB18.7%

Chunks:

ChunkSize
assets/booking-mui-CYQUKf4s.js581.98 KB
assets/booking-mui-BnsU-ma9.css134.08 KB
Total716.06 KB / 199.16KB
Variant: login

Bundle Breakdown:

CategorySizePercentage
Code388.14 KB / 130.75KB83.4%
CSS77.42 KB / 10.03KB16.6%

Chunks:

ChunkSize
assets/login-DRWdQb0V.js388.14 KB
assets/login-x6SVVLFq.css77.42 KB
Total465.56 KB / 140.78KB
Variant: login-mui

Bundle Breakdown:

CategorySizePercentage
Code389.68 KB / 130.92KB83.4%
CSS77.82 KB / 10.23KB16.6%

Chunks:

ChunkSize
assets/login-mui-DB0MzmEj.js389.68 KB
assets/login-mui-CWmCCSP1.css77.82 KB
Total467.50 KB / 141.16KB