Fifteen years building and scaling distributed systems, across the industry's move from bare-metal servers and monoliths to cloud-native, Kubernetes and GitOps. I take on the work teams postpone: paying down technical debt, building deployment from nothing, and keeping systems running.
Six shifts the industry has since packaged and sells ready-made. I worked through them before anything was ready-made.
SPA with Server-Side Rendering
Web / Frontend — React, TypeScript, Vite, Node.js, NGINX
Reference architecture. Client code is under NDA, so this page describes the design and the reasoning behind it rather than a specific deployment.
A single-page application rendered on the server for the first response and hydrated on the client afterwards. It exists because a client-rendered page is a blank document to a crawler and a slow one to anybody on a poor connection, and both of those cost real traffic.
Types run end to end from the API contract into components, so a backend field rename fails the frontend build rather than producing an undefined in production. Bundles are split by route, because most users never visit most routes.