This course teaches senior frontend engineers how to scale applications beyond a single-team SPA — covering composition patterns (microfrontends, monorepos, server components), operational infrastructure (TypeScript scaling, architectural linting, CI/CD, testing), and migration strategies (strangler fig, codemods). Students build and evolve a real codebase across nine hands-on exercises, experiencing the trade-offs firsthand so they can make informed architectural decisions for their own organizations.
Important Things
Day 1 — Architecture Patterns
Introduction & Framing
Why architecture matters when teams and codebases scale beyond a single SPA.
Runtime Composition
Module Federation, shared dependency negotiation, cross-boundary state management.
Build-Time Composition
Same product consumed as a monorepo package instead of a federated remote.
App Shell & Islands Architecture
Conceptual patterns for progressive loading and partial hydration.
Server Components & Streaming
renderToPipeableStream, Suspense boundaries as architectural decisions.
Monorepos
pnpm workspaces, Turborepo pipelines, caching, affected-package detection.
Backends for Frontends
API layer design, where to draw BFF boundaries across consumers.
Strangler Fig Introduction
Bridges to Day 2’s migration deep-dive.
Day 2 — Operating & Evolving the Architecture
Dependency Management
Preventing version drift, synchronization strategies across packages.
Versioning & Release Management
Changesets, coordinating breaking changes.
Scaling TypeScript
Project references, composite builds, incremental checking.
ESLint as Architectural Guardrails
eslint-plugin-boundaries, encoding dependency rules in tooling.
Design System Governance
Managing a shared component library at scale.
Performance Budgets
Lighthouse CI, making performance constraints enforceable.
CI/CD
GitHub Actions with Turborepo caching and matrix parallelization.
Testing Strategies
Playwright, MSW mocking, HAR replay for deterministic E2E tests.
API Contract Testing
Where consumer-driven contracts catch what E2E tests miss.
Observability
Error boundaries as architectural decisions, instrumenting with Sentry.
Migration Patterns
Strangler fig deep-dive, jscodeshift codemods, incremental adoption.
Course Wrap-Up
Architecture Decision Records, synthesizing the two days.