All patterns

    Frontend

    Micro-Frontends

    Compose the UI from independently deployable frontend modules

    Splits the browser app into team-owned slices (by route or widget), integrated via module federation, iframes, or web components. Mirrors microservices on the frontend.

    Enterprise scalehigh complexity

    Architecture diagram

    High-level component relationships

    App Shell / Router

    Checkout MFE

    Catalog MFE

    Account MFE

    Backend APIs

    Key components

    App shell

    Routing, auth shell, shared layout

    Micro-frontends

    Team-owned bundles loaded at runtime

    Design system

    Shared tokens and components for consistency

    Integration layer

    Module federation, single-spa, or iframes

    Data flow

    1. Shell loads route-specific micro-frontend bundle
    2. Each MFE calls APIs (shared or dedicated BFFs)
    3. Cross-MFE communication via events or shared state bus

    Pros

    • Team autonomy for UI releases
    • Incremental migration from legacy UI
    • Technology diversity per slice (React + Vue)

    Cons

    • Bundle size and performance coordination
    • Inconsistent UX without strong design system
    • Complex CI/CD and versioning across MFEs

    When to use

    • Large frontend org with multiple product areas
    • Migrating legacy UI piece by piece

    When to avoid

    • Small team with one React app
    • Performance-critical single-page experience

    Real-world examples

    • Spotify web
    • IKEA composable storefront
    • Large bank portals

    Related technologies

    Module Federationsingle-spaWeb ComponentsNx