Production Frontend

Shipping to browsers you do not control: deployment, feature flags, analytics, uploads, the API contract you consume — and the fact that a web client never updates atomically.

Deploying a Frontend
▶ lab

Source to build to artifact to CDN to a browser you do not control — and the deploy that breaks the tabs already open.

Q · What actually happens between merging a change and a browser running it, and which step is the one that breaks people?
Long-Lived Clients and Version Skew
▶ lab

Production is running client v1, client v2 and backend v3 at the same time. There is no moment at which the frontend updates.

Q · If deploying does not update the tabs that are already open, what is actually running in production right now?
Feature Flags in the Client
▶ lab

Evaluating a flag in a browser: the three states every flag has, the flicker while it loads, the flagged-off code still sitting in the bundle, and the rule that a flag is never an authorization boundary.

Q · What changes when a feature flag is evaluated in a browser instead of on a server?
Analytics Events That Answer a Question
▶ lab

A named event with a stable schema answers a question. A firehose of clicks answers none — and carries personal data you did not mean to send.

Q · What should the frontend actually record about what people do, and what makes one event useful and another one noise?
File Upload UX
▶ lab

Progress, cancellation, retry, validation and preview — per file, not per form — plus the pre-signed URL that keeps a two-gigabyte video out of your application server.

Q · What does a browser actually have to do to move a file from someone's disk into your storage, and what must the interface show while it happens?
How API Shape Drives UI Complexity
▶ lab

Pagination style decides whether infinite scroll is even possible. Granularity decides whether a screen is one request or nine. The error model decides whether you can say anything useful when it fails.

Q · How much of my frontend complexity is actually a consequence of the shape of the API I was handed?
Backend for Frontend
▶ lab

A server the frontend team owns, sitting between the browser and several backend services. Why a client asks for one — and what the team signs up for by running it.

Q · When is a server owned by the frontend team the right answer, and what does that team take on by owning it?