Practice · 2014–2023 · Cloud Scale
SPA for Every Page
Client-side apps as the only architecture. Great for apps; absurd for brochures.
SPA-overkill failed because most URLs are documents pretending to be apps for resume reasons. Hydration, SEO, and TTI invoices arrived before the feature shipped. The correction — React Server Components, islands, partial prerender, htmx — is admitting HTML was fine.
Cost of the fad
Marketing sites and docs portals shipped multi-megabyte JS bundles for content that wanted HTML. SEO and performance teams spent years unwinding "modern" defaults.
Case studies
- Digg v4 rewrites the product and the audience — Traffic collapse and sale; rewrite consumed a year of product oxygen
- Silverlight and Flash enterprise lock-in cliff — Multi-year rewrites of line-of-business UIs; mobile miss cost market share
- The three-year frontend migration that shipped parity — Multi-year rewrite; feature freeze periods; hiring for frameworks users never asked about
Patterns

Context
Split everything, then pay for the glue
Hyperscale patterns escaped the companies that needed them. Containers unified packaging; Kubernetes became the cloud OS; microservices and NoSQL were sold as defaults. Mobile-first stuck because screens changed. Cargo-cult distributed systems stuck around as invoices. The durable move was packaging and ops maturity — not rewriting every app into a mesh.
Compare with
Related
Framework · 2013–now
React
Components and unidirectional data. Won the front-end by being good enough and having a gravitational ecosystem.
Architecture · 2016–2024
Jamstack
Pre-render + CDN + APIs. The brand cooled; the pattern (static where possible) stuck.
Framework · 2020–now
Hypermedia / htmx
HTML as the engine of application state — a deliberate counter to SPA maximalism. Peak backlash; now a plateau, not a climb.
Framework · 2016–now
Next.js
React with routing, SSR, and deployment opinions — App Router gravity and vendor lock-in as the default web stack.