logbook
What changed, and why it was hard
Newest first. Entries are written after the work, not instead of it.
The embedder gets a say
A filter before every fetch, user stylesheets and scripts swapped per page, sessions that leave nothing behind, and passkeys answered by the shell.
2026-10-10
What the browser keeps
A cache with a disk tier, cookies that survive a kill, devtools that stopped hoarding, and an import that outlived a write.
2026-10-07
Making YouTube play
Media Source Extensions, a demux pipeline per source buffer, and five unrelated bugs one site found for us.
2026-09-29
Icons, text, and the tree
Three ways a tab icon was lost, an SVG whose text was invisible, and a GPUI window that can finally be read aloud.
2026-06-29
v0.2.0 — tabs, and then groups
One WebView per tab, groups with colours, and a strip that goes on any edge.
2026-06-28
The page answers back
Keyboard into the page, native cursors, fullscreen.
2026-05-18
Stage 2: the frame never leaves the GPU
Replacing the CPU readback with a dma-buf handle and a fence.
2026-05-11
Stage 1: pixels on screen
A GPUI window with Servo painting into it, by the least clever route available.