Critical Path & Delivery

The waterfall from HTML to first content: blocking resources, resource hints, HTTP caching, CDNs and content-hashed assets — the network half of how fast a page feels.

The Critical Rendering Path

The set of resources that must arrive and be processed before the browser can paint meaningful content — a dependency graph, not a byte count.

Q · Which resources must arrive before the browser can paint anything meaningful, and what put them on that list?
Reading a Network Waterfall

Bars are not the point. The staircase is: a resource that could not start until another finished is a dependency your page structure created, and often one you can delete.

Q · When I open the Network panel, what am I actually looking for?
Render-Blocking Resources

Three different mechanisms produce one symptom. CSS blocks painting, synchronous scripts block parsing, and scripts wait on pending stylesheets — and each has a different fix.

Q · What exactly is the browser refusing to do while it waits for this resource, and why?
Resource Hints

`preconnect`, `dns-prefetch`, `preload`, `modulepreload` and `prefetch` are five different jobs — and a hint that guesses wrong costs more than no hint at all.

Q · How do I tell the browser about a resource before it would have discovered it, and when is doing so a net loss?
Browser HTTP Caching

What the browser does before it makes a request at all: freshness, `no-cache` versus `no-store`, validators, revalidation, and `immutable`.

Q · When does the browser skip the network entirely, when does it ask "has this changed?", and what decides which?
CDN Delivery

Build output to an edge near the user: what the cache key is made of, why invalidation is a worse tool than versioning, and why edge caching is mostly about latency rather than bandwidth.

Q · What actually happens between my build output and a byte arriving at a user's device, and which part of it can I control?
Content-Hashed Assets

`app.a3f19c.js` is a caching strategy, not a naming convention: you never invalidate a URL, you stop referencing it — with consequences for code splitting and for tabs that have been open all week.

Q · How do I cache an asset for a year and still be able to change it tomorrow?