~colophon
What this site is made of, in case you were going to ask, or in case you are a crawler and would rather be told than guess.
the numbers
- 8.3 KB
- of CSS, gzipped
- 5
- runtime dependencies
- 57
- lines of router
- 29
- pages, prerendered
Those numbers are measured during the build, not typed here, because a number typed by hand is a number that is wrong by next Tuesday. The dependencies are React, React DOM, a markdown renderer, that renderer's tables plugin, and analytics. There is no routing library — the router is a hook that reads location.pathname and listens for two events. It fits on one screen, which is the only reason I trust it.
type
Monospace, whichever one your machine already has. The stack asks for iA Writer Mono, then JetBrains Mono, then Berkeley Mono, then gives up gracefully into ui-monospace. Nothing is downloaded. A webfont would cost more bytes than every stylesheet here combined, to make a text site look slightly more like a different text site.
colour
There are three palettes, and you got one of them at random when this page loaded. Refresh and you will probably get a different one. I could not decide, the decision was not important, and a site that quietly rearranges itself is more interesting than a site that does not.
Light and dark are one token set, defined once with light-dark(), following your system unless you say otherwise in the corner. Every colour on the page comes from that set — including the chessboard, which used to be beige because I forgot it existed.
how it is built
Vite builds the app twice: once for your browser, once for Node. A script then renders every route to its own HTML file, so a crawler, a link preview, or a language model gets a real page instead of an empty <div> and a promise. Your browser hydrates that same HTML and takes over.
The same script writes sitemap.xml, rss.xml, llms.txt and llms-full.txt from the route table it just rendered. None of those are maintained by hand, because files maintained by hand are files that are wrong.
what it does not do
- No cookies. Nothing to consent to, so nothing asks.
- No newsletter modal. If you want to know when I write something, there is a feed.
- No webfonts and no third-party scripts. Two exceptions, stated plainly: Vercel's analytics, which is cookieless and records no personal data but is still a beacon; and the model weights, which come from Hugging Face, and only if you press the button.
- No AI wrote the prose. It did help move the furniture.
source
It is short and it is on GitHub. View source on this page too — that is the whole document, not a loading screen.