Browser MOC
Date: 2026-08-16
The runtime everything client-side executes in. Absorbs HTML semantics, because the document model is a browser concern before it’s a markup one.
The document
- Semantic HTML — elements as meaning rather than appearance, and everything that derives from it
- The DOM — the parsed tree, and the crucial fact that it is not the HTML you wrote
- The CSSOM — the style tree, and why a stylesheet blocks rendering
- Document Parsing — how a byte stream becomes a tree, and where
defer,asyncand blocking scripts intervene - Forms — native behaviour, validation, submission, and what you lose by intercepting it
- Web Components — custom elements, shadow DOM and slots; encapsulation the platform provides
- The Accessibility Tree — the parallel tree assistive technology reads, derived from the DOM and ARIA
- ARIA — the override mechanism for custom widgets, and its first rule: don’t, if a native element will do
Rendering
- The Rendering Pipeline — parse, style, layout, paint, composite; the sequence that explains all rendering cost
- Reflow and Repaint — which property changes trigger which stage, and why
transformis cheap - The Critical Rendering Path — everything between the first byte and the first meaningful paint
- Compositing and Layers — what gets promoted to the GPU, and the memory cost of promoting too much
- Viewport and Responsive Behaviour — the viewport meta, device pixel ratio, and what CSS pixels really are
- View Transitions — the platform API for animating between states and pages
Execution
- The Event Loop — one thread, a task queue, and a microtask queue that starves it if you’re careless
- Tasks and Microtasks — the ordering rule that explains why promise callbacks jump the queue
- Long Tasks and Blocking — the main thread as a single shared resource
- Web Workers — real parallelism, its message-passing constraint, and what it can’t touch
- Event Handling — capture, target, bubble, delegation, and passive listeners
- requestAnimationFrame and Scheduling — running work in step with the frame rather than against it
Storage
- Cookies — the attributes that matter:
Secure,HttpOnly,SameSite,Domain,Path, expiry - Client Storage — localStorage, sessionStorage, IndexedDB: capacity, synchronicity, persistence
- Cache API and Service Workers — programmable caching, offline behaviour, and the update lifecycle that traps people
- Storage Partitioning — per-site isolation of storage, and what it breaks for embedded content
Security model
- The Same-Origin Policy — the boundary everything else is an exception to
- CORS — how a server opts into being read cross-origin, preflights, and why the error is always misread
- Content Security Policy — restricting what may execute and load, and the nonce/hash mechanics
- Subresource Integrity — pinning a third-party file’s contents
- Permissions and User Gestures — why some APIs only work in response to a real interaction
- Iframes and Sandboxing — isolation,
sandboxattributes, and cross-frame communication
Privacy
- Browser Privacy Restrictions — cookie lifetime caps, third-party cookie state, and tracking prevention
- Fingerprinting — identification without storage, and the surface browsers are reducing
- Referrer Policy — what gets sent to the next site, and the default that changed
Networking from the client
- Fetch and XHR — the request APIs, and the differences that still matter
- Streaming Responses — consuming a response before it finishes
- The History API — client-side navigation, and why nothing observes it without a shim
The other runtime
- Email Client Rendering — table layouts, inline CSS, no JavaScript, dark-mode inversion, and clients a decade behind browsers. Where Klaviyo templates actually run
Tools
- DevTools — the panels worth real fluency: network, performance, coverage, rendering
- Browser Compatibility — feature detection, and reading support data properly
- Progressive Enhancement — a working baseline first, capability layered on where it exists
Borders
Filed in other domains, needed constantly here.
- Performance — Resource Hints · Priority Hints · Render-Blocking Resources · Animation Performance · Memory and Long Sessions
- Analytics — Client-Side vs Server-Side Tracking · Ad Blockers and Tracking Loss
- User Experience — Screen Readers · Keyboard Navigation
- Experimentation — Flicker and Flash of Original Content