Vercel microfrontends just went generally available on October 31, 2025, and it’s a bigger deal than a simple label change. GA locks in how teams compose multiple apps under one domain with routing handled in Vercel’s network—plus it finally clarifies pricing. If you’ve been waiting for a production-safe way to split a monolith UI across teams, this is your moment. In this guide, I’ll unpack what’s new, what it actually costs, how the routing model works, and a practical rollout plan for adopting Vercel microfrontends without tanking SEO or velocity.
What GA adds—and why it matters now
Three things landed in the same week that turn microfrontends from “interesting” to “enterprise-ready.” First, microfrontends are GA with domain and path routing stabilized and documented. Second, Observability gained visibility into redirects and external rewrites (November 3, 2025), so you can finally inspect the glue code that stitches experiences together across apps and origins. Third, as of November 4, 2025, you can route build traffic through Static IPs—critical if your CMS, commerce platform, or internal APIs require IP allowlisting during builds.
That last point removes a stubborn blocker I’ve seen on regulated projects: you can now pull content at build time from sources that demand fixed egress IPs, not just at runtime. Combine this with Vercel’s Secure Compute (dedicated VPCs on Enterprise) when you need stricter isolation, and you’ve got a clearer compliance story for CTOs and security teams.
Vercel microfrontends pricing: the fine print
GA also formalized the pricing model: two microfrontend projects are included, then it’s $250 per additional microfrontend per month on Pro and Enterprise plans. Routing is metered at $2 per million routing requests. For teams who adopted the beta, pricing for existing projects kicks in on November 30, 2025. Everyone else starts paying now.
What does that translate to? Say you split a single domain into five microfrontends: default web, dashboard, docs, marketing, and account. You’ll pay for three additional projects beyond the two included—$750/month—plus routing. If you serve 300 million routed requests in a month (a serious consumer app), routing adds roughly $600. For a B2B SaaS with 20–40 million requests, routing might land in the $40–$80 range. The bottom line: the real cost isn’t scary for mid-market SaaS, but at scale you’ll want to watch routing in the same way you watch bandwidth and edge function execution minutes.
How Vercel’s routing model actually works
Here’s the thing: performance and operability hinge on understanding the routing contract. You configure a microfrontends.json file in your “default app” that declares which path prefixes map to which projects. Vercel evaluates this at the edge, so the page composes as a single experience under one domain. This isn’t iframe sorcery; assets and navigation behave like one site when you do it right.
A few practical details teams overlook on day one:
- Default route: The dashboard often assumes
/exists. If your default app doesn’t serve root, set the default path in project settings to avoid broken screenshots and links. - Path routing plus middleware: You can route by prefix in
microfrontends.jsonand layer middleware for dynamic decisions. That lets you roll out a new microfrontend behind a feature flag and then flip traffic gradually. - Domain routing: Production custom domains always map to each project’s current production deployment. Staging and preview domains can be mixed-and-matched versions across microfrontends, which is powerful for QA but easy to misconfigure if you don’t standardize naming and promotion rules.
- External origins: If one microfrontend lives off-Vercel, you can add a tiny Vercel proxy project and rewrite traffic to the external host while keeping everything under one domain for cookies and SEO.
Will Vercel microfrontends hurt SEO or analytics?
Handled correctly, no. Because everything lives under one domain, crawl budget and cookie scopes typically behave as expected. The common failure modes are self-inflicted: duplicated meta tags across apps, inconsistent canonical URLs, or mismatched robots rules. The fix is straightforward—establish a shared SEO contract and a lint rule that fails builds if a microfrontend leaks a second <title> or conflicts with global meta tags. For analytics, standardize an event spec and ship a tiny shared client for user/session IDs, so attribution doesn’t shatter across apps.
People also ask: is this just Module Federation?
Not quite. Module Federation is a runtime bundler-level composition technique. Vercel microfrontends are network-level composition with per-path routing and domain orchestration. You can absolutely combine them: use Module Federation inside a microfrontend for team-level code sharing, while Vercel handles cross-app boundaries between major surfaces like /app, /docs, /dashboard, or /account. If your team is deep into Webpack or Rspack federation, treat Vercel as the outer envelope and federation as an inner optimization.
People also ask: does it only work with Next.js?
No. While Next.js is a first-class citizen, GA explicitly documents support for other frameworks: SvelteKit, Vite, and more. That means your marketing site can stay on SvelteKit while your product UI ships with Next.js /app or /pages, and docs can be a VitePress or Astro build. The net effect: teams can pick the best tool for their surface area, not just what the monolith picked years ago.
People also ask: what about latency and the dreaded “seams”?
Because routing happens at the edge, the hop cost is minimal compared to stitching apps together client-side. The seams you’ll feel are cultural: design tokens, auth, and caching policies. Don’t ship five different spinners and color palettes. Establish a shared design system package (even if it’s just tokens and base components) with semantic versioning and an emergency patch procedure that can land across microfrontends within hours, not weeks.
A 30–60–90 day rollout plan that won’t wreck your roadmap
You don’t replace your UI in a quarter. You carve off the parts with the most payoff and least risk. Here’s a pragmatic plan we’ve used with clients.
Days 1–30: make the split visible
- Pick the first two paths. Choose one low-risk, high-visibility surface (e.g., /docs) and one product area with clear boundaries (e.g., /account). Keep the rest in the default app.
- Stand up the group. Create the default app and at least two microfrontend projects. Add
microfrontends.jsonwith path routing and a default route in settings. - Unify auth. If you use cookies, centralize session issuance and implement a lightweight auth proxy in the default app to forward tokens as needed to sub-apps.
- Normalize SEO. Add a preflight check in CI that fails on duplicated titles, robots, or canonicals. Snapshot crawl key routes.
- Observability baseline. Enable Observability dashboards for redirects and external rewrites, then capture pre-change latency for top paths so you can quantify impact post-cutover.
Days 31–60: move a revenue path
- Choose a KPI-bearing surface. Common picks: /pricing, /checkout, or /dashboard. Define events and funnels in analytics before you move it.
- Routing behind a flag. Use a feature flag to send 1%, 10%, 50%, and then 100% of traffic to the new microfrontend. Watch latency, errors, and conversion at each step.
- Build-time content with Static IPs. If your build pulls from a headless CMS or commerce engine with IP allowlists, toggle “Use Static IPs for builds.” Validate that content sources see the new egress IPs and that build drifts disappear.
- Hardening. Set budgets: TTFB, CLS, and LCP must meet or beat the monolith. If a microfrontend regresses, you should be able to roll back that path independently.
Days 61–90: scale the pattern
- Formalize a microfrontends charter. Ownership by path, on-call rotation, shared component rules, versioning, and a hotfix policy.
- Automate previews. Ensure each PR spins a preview domain where the default app composes preview versions of the target microfrontend alongside production versions of the rest. This is one of microfrontends’ superpowers—use it.
- Pricing review. Track routing volume and project count. If a surface can merge back into a larger microfrontend without hurting velocity, do it and reduce the per-project fee.
- Run a game day. Simulate a failure in one microfrontend. Confirm that the default app serves a fallback and that alerting and rollbacks work in minutes, not hours. If you’re running critical workloads, learn from our incident preparedness notes in our Next.js edge resiliency deep dive.
Common traps and how to avoid them
Trap #1: rebuilding a monolith, just slower. If every microfrontend depends on the same private UI package that triggers full rebuilds across all apps, you’ve recreated your old bottleneck. Split shared packages into tokens, primitives, and page-level components; version and release them independently. Borrow the release hygiene we covered in our take on Next.js 16’s caching and build pipeline.
Trap #2: conflicting headers break sessions. Set consistent cookie attributes across apps (domain, path, SameSite). Put auth decisions at the edge or in the default app to avoid desync.
Trap #3: analytics fragmentation. If different apps send slightly different event names, your funnels will lie. Publish a source-of-truth schema and lint for it. Bonus points: ship a shared analytics client as a versioned package everyone consumes.
Trap #4: accidental SEO cloaking. Rewrites to external origins can expose mismatched meta and content. Keep a list of paths that rewrite externally, and schedule a crawler that verifies parity of canonical and schema tags weekly.
Trap #5: pricing surprises. Big traffic spikes manifest as routing surges. Add routing request counts to your cost dashboards next to bandwidth and function invocations. It’s cheap per million—but at scale everything adds up.
Security and compliance corner
With build traffic now routable through Static IPs, you can allowlist Vercel egress at vendors that previously broke builds. Remember: Static IPs provide fixed outbound addresses; they’re not for inbound traffic to your app. If you need deep isolation or private connectivity back to databases and services, use Secure Compute (Enterprise) to place your functions and builds in a dedicated VPC with static egress and optional peering. This is the combo that satisfies most SOC 2 and HIPAA reviewers I talk to: fixed egress, clear network boundaries, and auditable access controls.
Design and UX governance for multi-app teams
Microfrontends fail when the product feels stitched together. Appoint a design engineering owner who curates tokens (color, spacing, typography), motion primitives, and interactive states. Give each microfrontend the freedom to ship, but test end-to-end flows—sign-in to dashboard to docs—on a single composed preview, not in isolation. If you’re building AI overlays (assistants, inline chat), centralize them in the default app so they can appear consistently across surfaces. Our recent note on shipping sales-ready AI chat in Next.js shows how a shared assistant can anchor the experience even as you split the codebase.
Performance playbook: the metrics that matter
Because Vercel composes at the edge, the routing overhead is minimal, but your app still lives or dies by core web vitals and caching. Treat each microfrontend like a product:
- TTFB and LCP budgets per path: Don’t accept regressions when you split. Monitor per-path budgets and alert on variance, not just averages.
- Cache keys with intent: If you render the same header or nav in multiple microfrontends, ensure it ships from a shared CDN key or shared package so you don’t blow caches.
- Redirects and rewrites visibility: Use the new Observability lenses to spot slow external origins and incorrect chains that tank TTFB.
- Runtime efficiency: If your APIs are hot, the improved JSON performance in modern Node versions helps. Our breakdown of Node.js 25’s JSON serialization speedups shows why your /api surfaces should upgrade as you carve out services.
When microfrontends are the wrong choice
You might not need this. If your product has one small team, your domain is simple, and your release cadence is calm, microfrontends add process you don’t need. Stick to a monorepo with a single app and a clean module boundary. Revisit when team count or build times go sideways.
What to do next (developers)
- Create a microfrontends group with a default app and one additional project; wire up
microfrontends.jsonfor /docs or /account. - Set a default route in settings so previews and screenshots don’t 404.
- Turn on the Observability views for redirects/rewrites; snapshot pre-cutover latency.
- If your builds hit allowlisted vendors, toggle “Use Static IPs for builds” and validate egress addresses with your partners.
- Ship a shared SEO and analytics package; add CI checks to block duplicate meta tags and off-spec events.
What to do next (business and product leaders)
- Budget for three to five microfrontends in year one; add routing as a variable line item alongside bandwidth.
- Set a KPI for the first migration (conversion, LCP, or build time) and hold the team to equal-or-better performance.
- Invest in an owner for design systems and cross-app UX consistency. It pays dividends in NPS and funnel conversion.
- Run a resilience drill: fail one microfrontend, measure time-to-rollback, and confirm your SLA.
- If this initiative competes with feature delivery, scope to one high-impact path and re-evaluate after 60 days.
Zooming out
Microfrontends aren’t new, but turning them on with a single domain, edge-level routing, clear pricing, and first-party Observability is. GA means you can make an executive decision this week and ship a scoped migration by Q1 without reinventing infrastructure. If your team has been strangled by a front-end monolith or a migration that never ends, this gives you a paved path.
If you want help architecting the split or you need a second set of eyes on SEO and observability, our team has shipped plenty of complex Next.js and polyglot frontends. Start with a quick intro on what we do for product teams, explore our portfolio of shipped work, and reach out via our contact page. We’ll help you pick the first two paths, wire up routing safely, and measure results without guesswork.
FAQ highlights
Can I adopt microfrontends without breaking my monorepo?
Yes. Keep the monorepo, but output multiple deployable apps. Each microfrontend remains an independent Vercel project with its own build and release cadence. You still get shared packages and unified tooling, only with cleaner blast radius.
What if one microfrontend needs server-side rendering and another is static?
No problem. SSR and static builds can live side-by-side under the same domain. Be explicit about caching headers per path so your CDN behavior matches the app’s intent.
How does preview work for end-to-end flows?
Previews can compose a preview deployment of the target microfrontend with production deployments of the others. That lets QA test the true, stitched experience for multi-step flows like sign-up → onboarding → dashboard without standing up a full environment.
Do I need to refactor my design system first?
It helps, but don’t let it stall you. Start by agreeing on tokens and a shared analytics/SEO package. You can harden the component library as you go. Momentum matters.
