Micro-Frontends – Scaling Your Front-End Architecture
January 10, 2020
Micro-frontends are a way to split a large front-end application into smaller, more manageable pieces. Each piece (or "micro-frontend") is owned by a different team and can be developed, deployed, and updated independently.
This idea comes from microservices, but applied to the front-end.
What Are Micro-Frontends?
- Independent front-end apps that can be developed and deployed separately.
- Often loaded at runtime into a main "shell" or container application.
- Useful in large teams or enterprise apps where different parts of the UI evolve separately.
Benefits
- Independent deployments: Teams can release their features without coordinating with others.
- Technology flexibility: Teams can use different stacks (React, Vue, etc.) if needed.
- Team autonomy: Smaller teams can take full ownership of their parts of the UI.
- Code isolation: Reduced risk of regressions across unrelated parts of the app.
Challenges
- Initial setup complexity
- Cross-team coordination
- Shared dependencies (e.g., design systems, global state)
- Performance and loading times (more assets to download)
Example Use Case
Imagine an e-commerce site:
- Homepage: Core team
- Product Search: Search team
- Product Details: Catalog team
- Shopping Cart: Checkout team
- User Profile: Account team
Each of these could be a micro-frontend, deployed on its own and integrated into a shared layout.
Approaches
Server-Side Composition
- Each micro-frontend is rendered on the server and merged before being sent to the browser.
- Works well with traditional server-rendered apps.
Client-Side Composition
- The shell app loads each micro-frontend at runtime via JavaScript.
- Allows more flexibility but needs careful handling of dependencies.
Webpack Module Federation (introduced in Webpack 5)
// Example config snippet
new ModuleFederationPlugin({
name: 'checkout',
filename: 'remoteEntry.js',
exposes: {
'./Cart': './src/components/Cart',
},
shared: ['react', 'react-dom'],
});
When to Use Micro-Frontends
- You have many teams working on the same front-end codebase.
- You want independent deployments.
- You maintain separate domains of business logic.
- Your app is too large for a single team to own or understand.
If you're in a small team or project, micro-frontends may add more complexity than value.
Final Thoughts
Micro-frontends aren’t for every project. But for large apps with many teams, they can help scale your architecture in a clean and maintainable way.
Recent posts
- At-Least-Once vs. Exactly-Once - Understanding Message Delivery Guarantees
June 12, 2025
Learn about message delivery guarantees in distributed systems. Understand why most production systems implement at-least-once delivery with idempotency rather than attempting exactly-once delivery.
- How Idempotency Saves Your API from Chaos
June 11, 2025
Learn how to implement idempotency in your APIs to prevent duplicate actions and ensure data consistency. Includes practical examples with Supabase and Node.js.
- Vibe Coding ‑ Notes from the First Try
June 6, 2025
Quick lessons from spinning up a new blog with an AI pair‑programmer and Cursor.