Performance Tool · Network Inspector · Command/Inspect Surface · 2026 · Solo — HAR 1.2 parser, timing engine, waterfall renderer, speed classifier, domain grouper, summary stats (p50/p95), Command/Inspect surface design, TDD (25 tests), Vercel production deployment
HAR Inspect
Pure-TypeScript HAR 1.2 parser that reconstructs the full request waterfall: startOffset relative to page load, per-phase timing breakdown (DNS/TCP/TLS/send/wait/receive), TTFB-based speed classification, domain grouping via URL.hostname, p50/p95 TTFB summary, and slowest-N detection — all computed in the browser from a local .har file.
The problem
Chrome DevTools ships a waterfall, but it disappears on page refresh and requires reopening DevTools on the exact session. Engineers sharing HAR files with teammates have no fast browser-local tool to inspect timing phases without uploading to a third-party service or navigating DevTools themselves.
Architecture
Key decisions
HAR -1 phase normalization
The HAR 1.2 spec uses -1 for phases that were not measured or reused a prior connection (e.g. dns=-1 on a keep-alive reuse). Treating -1 as 0 in the timing sum lets the waterfall render correctly without overstating total phase widths beyond entry.time.
TTFB = wait phase
The HAR spec defines timings.wait as the time from the last byte sent to the first byte received — semantically equivalent to TTFB. Using wait directly avoids re-deriving TTFB from headers, which is unavailable in most exported HARs.
Page-relative startOffset
Waterfall timing sense requires all bars to share the same time origin. Using the page's startedDateTime as the epoch and computing each entry's offset gives correct horizontal placement even when entries arrive from different domains mid-page-load.
Command/Inspect over Monitor surface
The user is drilling into one specific file with intent — inspecting a saved network trace to diagnose a slow request. This is a Command/Inspect action (keyboard-searchable, row-selectable, detail-panel-expandable), not a Monitor surface (live-updating status).