// blog

Senior frontend deep-dives.

Primary sources only — ECMA-262, WHATWG HTML, Blink & V8 source. Every post ships an interactive demo you can break.

/primary sources
method → proof → demo
ECMA-262WHATWGCSSOMW3C Event TimingReact sourceBlinkV8Anthropic docsECMA-262WHATWGCSSOMW3C Event TimingReact sourceBlinkV8Anthropic docs
fetch
spec
grep
anchor
quote
verbatim
ship
demo
23
posts
43
canvases
58
primary sources

React Deep-Dives

3 posts

The Runtime

7 posts
The RuntimenewMay 14, 2026·7 min read

AbortController doesn't cancel — it signals

Every senior FE dev thinks `controller.abort()` kills a fetch. The spec is more nuanced. Abort is a signal broadcast to whoever's listening. Promise rejection is mandated; network-layer termination is implementation-defined. The distinction matters when you're combining signals or debugging leaks.

#abortcontroller#fetch#promises#spec#cancellation
The RuntimeApr 23, 2026·19 min read

Six ways a webpage keeps a connection — polling to WebTransport

Every real-time feature you ship picks one of six transports — short polling, long polling, SSE, WebSocket, fetch streaming, or WebTransport. They differ on direction, latency, binary support, reconnection, and server cost. Here's each one at the protocol level, with the exact bytes on the wire and a decision tree for picking.

#websocket#sse#polling#webtransport#http#networking
The RuntimeApr 19, 2026·10 min read

Closures don't capture variables — they capture environments

Every senior FE dev can explain closures. Almost nobody points to the ECMA-262 Environment Record and the [[Environment]] slot on function objects. Here's the spec-level story, with a step-through of the heap and a primary-source walk of why `let` fixes the for-loop trick.

#closures#environment-records#spec#v8#scope
The RuntimeApr 19, 2026·7 min read

for await…of is serial — not streaming, not parallel

Every senior JS dev reaches for `for await of` when iterating async sources. Almost nobody realises the ECMA-262 algorithm awaits each next() before the body runs, and the body before the next next(). Here's the spec, two timeline animations, and the three iteration patterns you actually want in your toolbox.

#async#iterators#for-await-of#spec#concurrency
The RuntimeApr 18, 2026·17 min read

The microtask checkpoint nobody explains

Every senior FE dev knows Promise.then runs before setTimeout. Almost nobody can point to the exact step in the HTML spec that makes it true — or explain why queueMicrotask inside a microtask doesn't yield. Here's the walk-through, straight from ECMA-262 and WHATWG.

#event-loop#microtasks#promises#spec#v8
The RuntimeApr 18, 2026·10 min read

setTimeout(fn, 0) is never 0ms

Every FE dev knows setTimeout isn't instant. Almost nobody can quote the HTML Timers clamping rules, V8's timer backend, or explain why nested timeouts floor to 4ms. Here's the tour, primary sources only.

#settimeout#timers#spec#v8#throttling
The RuntimeApr 18, 2026·13 min read

What await actually desugars to

Every senior FE dev has written async/await. Almost nobody can show you the generator and Promise chain underneath. Here's the desugaring straight from ECMA-262, ending with a 40-line implementation you can step through in a REPL.

#async-await#promises#generators#spec#v8

Rendering Pipeline

6 posts
Rendering PipelinenewMay 15, 2026·7 min read

content-visibility — the native virtualization you're not using

Off-screen sections still pay layout + paint cost on every frame. `content-visibility: auto` tells the browser to skip them. One line of CSS, no JS virtualization library, and it's been Baseline since September 2024. Here's what it does, when it wins, and where the catches are.

#css#performance#content-visibility#rendering#virtualization
Rendering PipelinenewMay 15, 2026·8 min read

z-index: 10 000 does nothing — stacking contexts, explained properly

Every senior FE dev has bumped a z-index until it 'worked'. Nobody should need to. The rule is simple: z-index only orders siblings within the same stacking context, and 16+ CSS properties create one silently. Here's the spec, four scenarios, and the complete trigger list.

#css#z-index#stacking-context#spec
Rendering PipelineApr 19, 2026·6 min read

Container queries — the layout primitive CSS spent 15 years missing

Media queries ask 'how big is the viewport?'. That's the wrong question for a component. Container queries ask 'how big is the slot this component was dropped into?' — which is the question any reusable component has always needed to answer. Here's the spec, the four `container-type` values, and the migration that replaces every sidebar-vs-main-content branch.

#css#container-queries#responsive#design-systems
Rendering PipelineApr 19, 2026·7 min read

CSS containment is the spec's performance escape hatch

Layout thrashing posts tell you what not to do. `contain: layout` tells the browser a subtree's effects won't escape — so they don't, and perf scales. Most senior FE devs have never shipped it. Here's the four-value contract, a blast-radius visualizer, and the two-line shorthands.

#css#containment#performance#spec#rendering
Rendering PipelineApr 19, 2026·10 min read

From JS to pixel: the browser's rendering pipeline in five stages

Every senior FE dev says 'render' like it's one thing. The browser's pipeline is five distinct stages — JS, style, layout, paint, composite — each with its own cost curve and its own short-circuit rules. Here's the stage-by-stage walk, with a property-to-stage mapper you can tap.

#rendering#paint#composite#layout#performance#spec
Rendering PipelineApr 19, 2026·8 min read

Layout thrashing is a spec-defined hazard, not a perf tip

Every senior FE dev knows 'don't read after write'. Almost nobody can point to the WHATWG rendering algorithm that makes it a hazard or the CSSOM clauses that force layout on read. Here's the spec-level story and a live counter you can watch tick.

#rendering#layout#cssom#spec#performance

Performance

2 posts

System Design

3 posts

Agentic / LLM FE

2 posts
// subscribe

One email per post. No other mail.

Free. No tracking, no affiliate links, no digests. One-click unsubscribe in every email — honoured by Gmail and Apple Mail's native unsubscribe button.

By subscribing, you agree to receive one email per post at this address. Unsubscribe any time — one click, no confirmation.