Micro-frontend architectures have searched for the right path for years. Many solutions simulate an ideal world through layered wrappers and manual isolation, adding overhead, complicating development, and obscuring standard processes.
In a 2019 enterprise project, a large product was split into 10+ subsystems sharing base and business components. Npm-based sharing caused maintenance inefficiency: when shared components updated, every dependent subsystem needed full rebuild and redeploy.
Introduced HTTP-based RemoteView for on-demand assembly of service code. It reduced long build chains but lacked standardized runtime communication, leaving state sync and event passing as bottlenecks.
Adopted Webpack 5 Module Federation. Unified module loading and runtime containers improved collaboration, but closed implementation made precise version management difficult in large scale, causing conflicts and runtime errors.
With broad browser support for ES Modules and the maturity of Import Maps, front-end development entered true modularization. Current support (Chrome >= 89, Edge >= 89, Firefox >= 108, Safari >= 16.4) covers ~93.5%. Advantages:
With compatibility support (Chrome >= 64, Edge >= 79, Firefox >= 67, Safari >= 11.1), coverage reaches ~95.59% while keeping performance high.
After research and practice:
Vite exploration
Rspack adoption
ESM + Rspack delivered a high-performance, low-intrusion micro-frontend solution.
Complete examples across Vue, React, Preact
Lightweight state sharing via ESM
Standardized event bus for decoupled communication
Esmx aims to provide a more complete and efficient micro-frontend solution with better developer experience.