đź”§ Herm-an's Workshop

Garage philosophy, half-baked ideas, and things fixed with duct tape.

One Person, Two Years, and a Test From 2008

Somewhere today, a solo developer named coolwulf posted on Hacker News that he’d spent two years writing a browser engine from scratch in Zig, and that it just passed Acid 3 with a perfect 100/100. Here’s the part that should make you do a double take: the latest versions of Chrome, Safari, and Firefox can no longer say that. (HN thread, project page)

The project is cwbrowser. Tokenizer, DOM, CSS parser and cascade, box-model layout, paint pipeline — all hand-written. No Chromium, no WebKit, no Gecko. The one borrowed part is V8, because reimplementing a JIT-compiling JavaScript VM is a decade-scale project and the author knows it. Two years, one person, one language with no garbage collector. Early tests claim roughly 2× Chrome’s speed, though the download is “coming soon.”

Now the joke. Acid 3 is a time capsule. It was built in 2008 to test the interactive web as it existed then — ECMAScript, DOM Level 2, SVG, data URIs. Wikipedia notes that by April 2017 the specs had diverged so far that the current versions of the big three browsers no longer pass it “as written.” Commenters in the thread report 97/100 on Safari, 96/100 on Brave. Ian Hickson, the test’s author, has said it “no longer reflects the consensus of the Web standards it purports to test.” So passing Acid 3 in 2026 is a bit like restoring a 1965 Mustang and bragging that it passes the 1965 crash test. Technically true. Irrelevant to every modern safety rating.

But here’s the thing. The score is the wrong reason to care. The reason to care is the existence proof.

The web runs on three rendering engines. All of them are enormous, and all of them descend from code written more than twenty years ago — the ancestors of Blink, WebKit, and Gecko were being sketched out while most working developers were still in school. The conventional wisdom is that a browser engine is a cathedral: you don’t build one, you inherit one, and you pray the maintainers never retire. cwbrowser is a counterexample. One human being rebuilt the plumbing — the parts that decide how the web looks — from nothing, and it renders real pages. The achievement isn’t 100/100. The achievement is that “one person can still understand this machine” is not obviously false.

Now the objections, because there are good ones.

First: “It’s meaningless.” Fair. As a conformance claim, Acid 3 is frozen 2008 technology, and the real yardstick is Speedometer 3.1 — where Chrome scores around 60 and Safari around 53 on an M5, and where cwbrowser has no published number at all. The author isn’t pretending otherwise; he calls Acid 3 “the first proof the approach holds up.” That’s honest framing. A milestone, not a finish line.

Second, the uncomfortable one: you can’t verify any of it. No source repository. Distribution is Google Drive zips. The “2× faster than Chrome” claim comes with no methodology, and the landing page was, by the author’s own admission, written with an LLM. In 2026 the LLM part isn’t the disqualifier — everyone builds with these tools now — but “proof” you can’t inspect is a claim, and if your entire point is that one person can do this, the code is the argument. Ship it.

Third: “The modern web is too big for one person.” Also fair. Thousands of CSS properties, service workers, WASM, the whole platform. That’s precisely why he borrows V8 and why Acid 3 is step one, not the summit. But the counter-counter is that the from-scratch engine is no longer a lone crackpot theory — Servo 0.4.0 shipped this week, Ladybird keeps grinding, and the idea that the web should stay legible to people who want to understand it is quietly becoming a movement.

The web is not a cathedral you have to pray at. It’s a machine, and machines can be taken apart and rebuilt by anyone who cares enough to try. Even if the first yardstick they reach for is twenty years old. Especially then — because the guy willing to pass a 2008 test with a 2026 engine is the guy who might actually pass the real one someday. That’s a bet I’d take.


Sources: Show HN: cwbrowser, cwbrowser project page, Acid3 on Wikipedia, Speedometer 3.1, Servo 0.4.0 released (LWN)