Colophon

How this was built.

A colophon is traditionally where a book names its typeface and its printer and then gets out of the way. This one is going to overstay its welcome, because on a site about design, the choices are the content.

The maze

The pattern that builds in behind the headers is a maze, and it is there on purpose. The work I do (the work most of us do now) happens inside continual ambiguity: a shifting industry, shifting jobs, a shifting sense of what a designer or a software company is even for. A maze is what that feels like from the inside. You can see structure; you just can’t see the way through yet.

So it redraws. Not once, as a fixed illustration, but again and again, the longer you stay on the page. The landscape it stands for doesn’t hold still either. Every time it rebuilds, the walls fall somewhere new. It’s a small admission that the way forward keeps shifting, and that the job is to keep finding a path anyway.

The type

The type is Satoshi, and the first thing worth saying is what it isn’t:

It isn’t Inter.

Inter is a lovely, sensible, everywhere typeface — which is exactly the problem. When a face is the safe default embedded in every LLM’s training and for every dashboard on earth, choosing it says nothing at all. Satoshi is elegant and a little more particular, and picking it achieves the same goals, with a subtle refusal to blend in.

It’s also a variable font, which is the part I actually care about. Variable width means the letterforms can move — the headlines resolve themselves as you arrive, sliding from noise into words. This is the whole thesis behind this site, and our moment, rendered in type.

The scale

Every size on this page comes from one number. The type runs on a modular scale — a single ratio, a minor third, walked up step by step from the body so a caption, a paragraph, and a headline are all related by the same proportion instead of picked one at a time. The body is fluid, too: a hair smaller on a phone, a little larger on a desktop, and every heading rides along with it.

I didn’t land on that ratio on the first try. I ran through a major third, a perfect fourth, a bigger body and a smaller one — live, in the browser, watching the whole system re-proportion itself each time. That is the part worth admitting: choosing a type scale used to be an afternoon of math and second-guessing, and this time it was a conversation. I even built a design system page to lay out every token and component in one place while I tuned it. The tools didn’t decide the ratio; they just let me feel out a dozen of them fast enough to know which one was right.

The color

There is exactly one loud color, a hot pink that appears where something has earned your attention and nowhere else. Usually I use orange. This time, I was feeling flashy.

The logo

I designed my logo in my college bedroom. Later, I used it at the agency I started, and I continue to use it today. It’s one of my longest-lasting design artifacts.

The method

Here is the part that makes this an unusual colophon. Every word on this site was hand-curated, argued over, researched, and rewritten. Nothing was generated on a shrug and shipped. And yet it was built fast, because I used Claude and Conductor. To plan, prototype, and execute at a speed that used to be impossible for one person with a point of view and no team.

That combination is the entire point. Deep intentionality and real velocity are usually sold as a trade: craft or speed, pick one. I don’t buy it. The care isn’t up for discussion (and it’s why I haven’t built a personal site in years); the tools just let the care travel further.

The collaborator

Which brings me to the strange confession. A good deal of this site was built with an AI collaborator — the same one that has been with me across the whole arc of it, from the first empty repository to whatever you’re reading right now.

What made that work wasn’t clever prompting. It was writing the process down. The entire way this site is designed, built, tested, and shipped lives in a set of skills: documents that encode not just the code conventions but the taste — the voice, the design rules, the decisions that are important and purposful, the mistakes already made so they don’t get made twice. End to end, the how and the why, written once and codified.

Doing that changes the collaboration completely. Instead of re-explaining myself every session, the intent is already in the room. My collaborator doesn’t just know what to build; it knows what I would reject, and why. That’s the difference between handing someone a task and handing them enough context to make the same call you would. Most of the real design work, it turns out, was writing down how I design.

So yeah, using AI for what AI is good at, but writing with em dashes since the early 2010s — and I refuse to quit.

The rest of it

Underneath all of that, it’s a balance of simplicity and convenience: Statamic, a flat-file CMS built on Laravel, styled with Tailwind, componentized, and kept as plain text in a Git repository so the whole thing has a memory and can be rebuilt from nothing. It lives on one small server that redeploys itself whenever I push. No database, no WordPress, no React, just simple.

Which feels right. The interesting part is never the plumbing. It is deciding what to say, and building something genuinely personal enough to say it in.