-
SSR Deep Dive — Hydration, State Replay, and the Cookbook
Hero image credit: Photo by James Cheney on Pexels Twelfth in a series about migrating from legacy architectures to a modern Nuxt 4 stack. The Hydration Contract In a server-rendered Vue application, SSR establishes a strict contract: the HTML generated on the server must match exactly what the client-side Vue runtime would render. During hydration,…
-
The Full Picture — What the New Concept Delivers
Twentieth and final article in a series about migrating from legacy architectures to a modern Nuxt 4 stack. From Parts to Whole The previous fifteen articles describe individual pieces — the GraphQL gateway, code generators, performance, infrastructure, security. This article brings them together and answers the question that matters to decision-makers: what does the complete…
-
Load Testing Results — 15× Faster, 5× More Capacity
Nineteenth in a series about migrating from legacy architectures to a modern Nuxt 4 stack. Architecture Decisions Have Consequences — Measure Them Architecture decisions accumulate, and their combined effect only becomes visible under real load. Before production, a large enterprise application was load-tested with production-equivalent patterns, not synthetic traffic. k6 replayed a model derived from…
-
The Nuxt Observability Stack: Tracing, Logging, and PM2 Metrics
Migrating from a legacy application to a modern Nuxt 4 stack is not just about new frameworks and better performance numbers. The real shift is moving from reactive firefighting to proactive observability — knowing what is slow, why it is slow, and how the platform behaves under real load. This observability stack has three pillars:…
-
Memory, Stability, and PM2 — Running a Long-Lived Node.js Server
Seventeenth in a series about migrating from legacy architectures to a modern Nuxt 4 stack. The Inconvenient Truth About Node.js Servers Node.js is optimized for event-driven I/O, not for long-lived servers that render thousands of pages per hour. Over time, the V8 heap grows and objects such as GraphQL responses, Vue server renderer allocations, cached…
-
Multi-Environment Infrastructure — Azure Container Apps and the Configuration System
Sixteenth in a series about migrating from legacy architectures to a modern Nuxt 4 stack. The Environment Problem Any non-trivial application needs multiple environments: development, test, production. In a large enterprise application, feature branches ideally each get an isolated environment so developers can share a live preview without blocking one another. Configuration is where the…
-
Security in a Nuxt SSR App — CSRF, OAuth, CSP, and More
Fifteenth in a series about migrating from legacy architectures to a modern Nuxt 4 stack. Security in SSR Is Different An SSR application has a very different attack surface from a client-side SPA. The server is responsible for rendering HTML with embedded state, generating tokens, setting cookies, and proxying API calls — all before the…
-
Deferred Hydration Done Right — The `requestIdleCallback` Trick and the `modulepreload` Pitfall
Fourteenth in a series about migrating from legacy architectures to a modern Nuxt 4 stack. The Hydration Dilemma SSR gives you a fast first paint: complete HTML that the browser can render immediately. Then the framework’s JavaScript arrives, gets parsed, compiled, and executed to hydrate the page—wiring up event listeners and making everything interactive. During…
-
Ultimate Performance Optimization — Chasing That 100% Lighthouse Score
Masterclass in building a modern Nuxt 4 stack that hits Lighthouse 97–100 on mobile without going “zero‑JS”. Performance Is an Architecture Decision In large enterprise applications, performance rot rarely starts with “slow code.” It starts when the architecture cannot absorb new features without stacking more JavaScript, more requests, and more complexity on the critical path.…
-
A/B Testing at the SSR Level — Cookie-Based Variant Selection
Hero image credit: Photo by Pixabay on Pexels Hero image credit: Photo by Clem Onojeghuo on Pexels Hero image credit: Photo by A Vasan on Pexels Eleventh in a series about migrating from legacy architectures to a modern Nuxt 4 stack. Why A/B Testing in SSR Is Different In a client-side SPA, A/B testing is…
