🌐Pure Vanilla JS — no framework, no runtime. Any browser reads it natively.
Just compiled
Like compiled CSS — no Sass on the server. Files deploy. Tools stay behind.
Deploy Gate
📁Files
›
✓ Deploys
vs
⚙Tools
⚡
📦
✕
✗ Blocked
LIVE
③ Production Server
Cloud · CDN · No bundlers installed
⬡
Node.js Runtime
JavaScript engine on your server
Makes JavaScript run on the server — same language as the browser, but in the cloud. Handles every visitor's HTTP request.
Receives browser HTTP requests
Runs SSR from .next/
Serves remoteEntry.js as static file
Does NOT run Webpack or Turbopack
No bundlers installed here
✓
.next/
Node.js serves SSR pages & static assets
✓
remoteEntry.js
Static HTTP · browser loads & executes directly
Not installed on server
⚡Turbopack — build tool only
📦Webpack — build tool only
1 / 2
Pandora E-Commerce · Architecture
Risk Assessment
🛡
Every Concern Has a Proven Answer
Architecture decisions were made to eliminate risk before it exists — not react to it later
⚡
Turbopack has no native Module Federation support
A standalone Webpack process runs separately — Turbopack never touches it. Zero conflict. Two processes, zero shared state.
✓ Resolved by design
⏱
Webpack is slower than Turbopack
Webpack only builds the federation manifest — designed to handle chunks and scale with performance. Runs in parallel, never blocks Next.js, never slows the developer. Turbopack stays fast.
✓ No dev impact
🖥
No SSR for remote components across apps
Each app SSRs its own routes natively in Next.js. Remote components load CSR. Team tests SSR first, then confirms runtime sharing works.
✓ Tested & confirmed
🔮
Future: Turbopack adds native MF support
One config file already shared. When Vercel ships native MF, just delete the Webpack runner. No rewrite. Migration takes low effort.
✓ Future-proof
🧪
Proven in POC
feature/web-runtime-api · live & working
🛒 Shared cart state across apps📦 Shared component library🔗 Cross-app navigation — no reload🧩 Runtime module sharing (remoteEntry.js)
Live & Verified
Trade-offs — Accepted & Understood
🟡
Two parallel processes per app — each optimised for its role
⚡ Turbopack handles fast dev & HMR · 📦 Federation Publisher handles MF exposure. Separate concerns, zero interference.
✅
CSR loading for federated components is intentional
Each app owns its SSR via React Server Components. Cross-app components hydrate on the client — a deliberate boundary, not a limitation.
🟡
Singleton versioning requires care
Inherent to Module Federation in general — not specific to this pattern. Managed through shared dependency versioning in federation.config.js.
🛡
Worst-case mitigation — Feature flag on remoteEntry.js
If anything goes wrong with the federation manifest, a feature flag can instantly disable remote loading and fall back to a full page reload. Zero downtime, customers unaffected — flip the flag, fix, re-enable.
LOW ✓
Production Risk
Webpack & Turbopack are build-time tools — same category as TypeScript. They compile and step away.