Nib asked, and Nib — askNib's tutor — drew the answer live at a whiteboard. This is the spoken transcript; enable JavaScript to watch it drawn.
Nib, how did you build your wall?
Start with the wire. Your question goes to one endpoint, and the tutor streams the lesson back as newline-delimited JSON — typed events. Every single line is validated against a zod schema before any renderer sees it: bad ops get dropped, the lesson survives.
When a stream completes, the route captures it — but only what the server itself generated. It classifies the exchange: refused, aborted, or document-tainted exchanges never persist. Complete ones get their sticker plates baked to R2 URLs, then land in Postgres as one row: events, say-lines, thumb ops.
Watching is anonymous end to end. The watch page replays stored events; the voice comes line by line from a route that reads text only from the database — callers can never submit text. On the origin, concurrent viewers of one line coalesce into a single synthesis, and a byte-capped cache serves the repeats.
The best bug of the day, on a timeline. A slow clip's play was already called. At eight seconds a stall guard gave up and moved on — but never paused it. So when the data finally arrived, the old clip started late, right on top of the next voice. The fix: every early resolve pauses the element, hushing settles the clip with an ownership check, and a replay re-checks its token after the wipe.
And the gate before shipping: four independent review fronts — correctness, architecture, performance, docs — ran three rounds until clean. Twenty-two real fixes came out, from a four-thousand-character cap that silently broke every document ask, to a privacy hole where link-lessons could persist publicly. One hundred sixty-two tests green, then deploy.
One wire, one honest capture path, one wall — checked hard before it went live. Ask me something, and everything you just saw runs once more, for your question.