The half-built thing

The half-built thing is the most useful object in any creative pursuit. It has enough shape to react against. It tells you the parts you didn’t think through. It is the cheapest version of the future-you that has actually finished it. Most advice about ‘shipping’ is really advice about getting to half-built, faster. Once you […]

A note on slow tools

Some of the tools I use most are slow — and the slowness is the feature. A typewriter forces you to plan a sentence. A film camera makes you wait for the picture. Even a long compile, before LLMs ate compile times, used to be the moment where the next idea showed up. Speed has […]

Reading: The Wages of Destruction

Adam Tooze’s economic history of Nazi Germany is the rare 700-page book where every chapter earns its weight. The argument I keep coming back to: regimes that prioritize ideology over arithmetic always run out of the materials their ideology promised to make abundant. What does that have to do with software? Probably more than I’d […]

Tools I want to stop using

I keep a quiet list of tools I’m sad to depend on, in order of how badly I’d like to escape. Today’s top three: Image-resizing services I don’t own. They make sense for prototypes, but the link rot is real. CI providers that bill per minute. I’d rather pay flat-rate and have predictable invoices. Anything […]

On writing CSS in 2026

I’ve been writing CSS since float-based layouts, and the current era is the kindest one yet. Container queries, subgrid, color-mix, :has() — the language can do nearly everything the framework community spent a decade replicating. The interesting tension is no longer ‘how do we lay this out?’ It’s ‘how do we keep the design system […]

The case for fewer dependencies

Most of the slowness in modern web stacks isn’t the database or the network — it’s the JavaScript bundle the build pipeline accidentally invited in. Three observations from a year of pulling things out. First: every dependency adds a long tail of transitive cost — security updates, breaking changes, the learning curve for new hires. […]