How I work

I build almost everything for my book project with Claude Code. I write the prose myself. Here's how the pieces fit.

I’ve written code since the 1990s, when I rebuilt the online magazine FEED and wrote its message board in Perl. Today most of the code I ship is written by AI agents, mostly Claude Code, working under my direction. I decide what gets built, I review what comes back, and I test it. I don’t let them write my prose.

That split is deliberate. You can test code by running it. Prose can only be tested by a reader, and readers assume a mind chose each word. I wrote about this in “Vibe-coding vs. vibe-writing” and “How I’m using AI”.

The setup

A research vault. The book lives in an Obsidian vault of sources, concept notes, and chapter drafts. A Claude Code instance works inside it, guided by a project file that sets the rules. The most important rule is a source transparency protocol. Any claim about a book or paper has to say whether it came from reading the primary source in full, in part, or only from a secondary account. A librarian agent takes in new sources and files them.

A publishing pipeline. postliterate.org is an Astro site maintained by a separate Claude Code instance. I draft notes in the vault. A script publishes them to the site and syndicates them to Mastodon and Bluesky.

Virgil, a reading app. The book is planned as a reading app for iOS, written in Swift. I’m building it with Claude Code. Navigation is deliberate: you swipe to move on, and buttons spring back. It’s built for reading, not scrolling.

The Writing Machine. A desktop tool I’m building to help me turn hundreds of scattered vault notes into chapters. It finds paragraphs I’ve already written that could come next, and lets me chain them into a draft. Its first rule is that the model never writes a paragraph. It only helps me find and order my own.

Agents in parallel. Several agents watch the project folders and update a dashboard that shows where everything stands. I’m also building an open multi-agent framework, and running a research pipeline that uses Chinese-language open models to work through Chinese scholarship on orality.

Local models. I run open-source models locally with Ollama, and reach others through OpenRouter. They’re useful for private material and for testing. For serious work they’re still slower and weaker than the frontier models.

This site. It’s a folder of Markdown files in a Git repository. When something changes I edit a file and ask Claude Code to build, check, and publish it. The colophon has the details.

What it changes

Thirty years ago I could design a tool or build one, rarely both, and never quickly. Now I can do both alone, at the speed of an idea. Projects I’d once have pitched to a team, I can prototype in a weekend.

It also changes what a designer has to be good at. Taste, judgment, knowing what’s worth building, and being able to tell when the output is wrong. Those matter more now, not less.

For clients and students

I bring this way of working to consulting. Custom investigative tools that would once have taken a developer weeks can now be built and revised while the case is still live. I’m also interested in teaching it: to designers, journalists, and investigators who want to build their own tools without handing over their judgment.