Colophon
A colophon is the little note at the back of a book that tells you how the thing was made: the typeface, the press, the paper. This is that, for a website.

Built with Hugo
The whole site is static, generated by Hugo . That means every page is plain HTML, poured out ahead of time. Hugo does the heavy work once, before the page reaches you. The theme is hand-written: plain CSS and a little vanilla JavaScript, about seventeen kilobytes of it all together. Three small files filter the glossary, run the search, and walk the art down the page on the one post that descends into a cosmetics aisle at night. Two more scripts live inline on the only pages that need them, and both are playgrounds that only pretend to compute: one swaps between 81 pre-rendered PULSE reconstructions as you move its sliders, the other swaps pre-generated answers from a model that thinks it’s 1930 as you turn its temperature knob. Nothing runs a model in your browser. Local development starts and ends with Hugo and those hand-written files. If you View Source, you’ll mostly understand what you’re looking at. That’s on purpose.
Set in two typefaces
Newsreader does the talking - a warm, bookish serif designed for reading on a screen. Atkinson Hyperlegible Mono handles anything that is code, or that wants to look like it: the model ids, the file paths, the occasional command you’re meant to type.
Both come from this server, not Google’s. Google publishes every font in its library as plain files on GitHub, so I took the two I use, trimmed them down to the letters and weights this site actually needs, and set them on the shelf next to the pages. The italics are real italics now, too. For a long time your browser was quietly taking the upright Newsreader and tipping it over, like leaning a bookcase and calling it a staircase.
Served off a Debian box
The built files live on a small Debian server I rent, handed out by nginx , which does exactly one job: give you a file when you ask for one. That is the whole backend. Every request ends there.
Search with no search engine
Type a word into search and the entire query stays in your browser. The server never receives or logs what you asked.
Every page carries a 32-character string that describes it rather than names it: 192 yes-or-no answers a model gives about what the page is about, closer to a chord than a title. Two pages about the same thing disagree on far fewer of them than two random pages do, so what else is like this is just counting, and your browser grabs thirty-four kilobytes of the strings once, only if you visit search, and counts. Nobody wrote the 192 questions, either; a fixed random seed picks them. The first version asked 172 of them straight off the model’s own dimensions, and how that went is a post of its own: 172 Witnesses, Each One Half-Blind .
Your words never become bits, though: a plain match seeds the nearest page and the arithmetic takes over. The word is the seed. The bits are the search. It’s why “conscience” hands you an essay about a chatbot that never once uses it.
How little it actually takes
Here’s a way to feel how light a static site is. Everything you actually read here: every page of HTML, all the CSS, all the scripts, comes to about 1.5 MB. It used to fit on one 1.44 MB floppy disk, but it doesn’t anymore. Sometime in the last month the words outgrew it, and I took it about as well as you’d expect. So the site has moved up a format, to the 2.88 MB extended-density floppy, the kind NeXT put in its workstations, which feels right, since the web itself was invented on a NeXT. It fills just over half of one. Add every image on the whole site, plus a few seconds of machine-made music, and it’s about 110 MB: the entire thing, every word, picture, and sound, uses about one-sixth of a CD-ROM.
A caveat, because honesty is the whole point of this page: almost all of that 110 MB is pictures, and most of those bytes are me being stubborn. More than three-quarters of the image weight is lossless PNG, kept crisp on purpose, out of a library that’s mostly webp by count and barely registers by size. Run the whole thing through 75% JPEG, the setting nobody would ever actually notice, and every image on the site collapses to about 35 MB, the whole thing to about 37 MB, roughly a third of where it stands now. It could go on a diet tomorrow. I just like the pixels too much to make it.
So the simplest plausible computer that could serve this to the entire internet is a Raspberry Pi Zero 2 W , fifteen dollars, about the size of a stick of gum, sipping somewhere near a single watt. It would run Linux and nginx, hand these files to everyone who asked, and spend virtually every second of the day idle until you go viral (please let me know how to). If you wanted to be a lunatic about it, a five-dollar microcontroller with no operating system at all could do the job too. The modern web feels heavy. This corner of it refuses to be.
No cookies, no tracking
This is the part I actually care about. The site sets zero cookies and runs zero analytics. Every byte comes from this box, typefaces included; your browser never has to ask anyone else for anything. There is no analytics script, ad pixel, or behavior log. The web server keeps the same plain access logs servers have kept since about 1995, and that is where it ends. Nothing here is built to follow you around the internet, build a little dossier, or work out who you are.
Here’s the trade I’d make, and I mean it: I’d rather have one person email me to say they finally understood something here - or to ask a question sharp enough that they’d clearly thought about it before asking - than watch a real-time map fill up with a thousand strangers worldwide I’ll never hear a single word from.
One thoughtful reader beats a global heat-map of anonymous dots.
You came to read. You can just read.
