A Living Colophon
This site's colophon is a stream of build decisions, not a static tech stack page.

What’s a Colophon?
In book printing, the colophon was a brief note at the end. The printer’s mark, the typeface, the paper stock. A signature on the craft behind the artifact.
Personal sites picked up the pattern. The colophon became the “built with” list. Tech stack, design tools, hosting provider. A snapshot frozen at the moment you remembered to write it.
The Twist
This site’s colophon isn’t a page. It’s a stream.
When I make a build decision worth writing up, it goes in the colophon. Not the final state, the thought process. Why I picked Cloudflare Pages over Vercel. Why the tweet embeds are static instead of using the official widget. Why I went with LQIP over CSS blur placeholders. The decisions that shape the site, not the content that lives on it.
A static colophon rots. You list your stack once and never touch it again. Two years later you’ve migrated frameworks and the page still says “built with Next.js.” Worse, the static version misses the interesting part. I don’t care that someone uses Astro. I care why they picked it, what they gave up, what it solved. The stream captures that. Every entry is a snapshot of what I was optimizing for at a specific moment.
The Whole Thing is Visible
Personal sites are a strange setup. You’re the designer, the developer, the content creator, the only stakeholder. No product manager requesting a carousel. No client asking for the logo bigger. Every decision is yours and there’s nobody to blame when it’s wrong.
I like documenting how that plays out. Not as instruction, just as the record. Here’s what I changed. Here’s what I was thinking. Here’s what I’m still figuring out. The colophon stream is that record, pointed at the site itself instead of the ideas on it.
It’s also incomplete. I’m not capturing every decision. Some things I build and forget to write up. Some I write up wrong because I’m going from memory. The colophon is my best attempt at documenting the process, not a comprehensive log of it. Stuff will be missing, stuff will be approximate, and that’s fine. The alternative is waiting until I have the energy to document everything perfectly, which means documenting nothing.
When I chose static tweet embeds over the official widget, that was a tradeoff. The official version tracks visitors, loads third-party scripts, phones home to X’s servers. The static version renders at build time. No JavaScript, no tracking, no performance hit. You see the post but X doesn’t see you. You lose live engagement metrics. For a personal site where I’m quoting posts for context, that’s the right call. That reasoning lives in the colophon because it’s a window into what I actually care about when I’m building.
Building the Container
Building a site is already meta. You’re making the container for your thoughts. The colophon sits a layer above that, documenting the container itself.
For client work, nobody cares how you built it as long as it works. The process is scaffolding that gets removed once the structure stands. For a personal site, the scaffolding is the structure. How you build it reflects how you think. The stream format captures that in a way a static page never does.
The colophon is live. That’s where this plays out in practice.