Built with Claude Code
I run Claude Code the way a technical lead runs a development team: I write the requirements, make the design decisions, review every change, insist on tests, and decide what ships. These are three things built that way.
Blackbox: a command-line chief of staff
Blackbox, or bb, is my own assistant. It runs on a Debian server I administer and manages the operational side of my business from the terminal.
What it does
- Manages tasks in Todoist, which is the single authority for everything I need to do.
- Reads and writes Google Calendar through my own Google Cloud OAuth project.
- Triages work opportunities through Upwork's official MCP server, ranking dozens of searches and drafting pitches for my approval.
- Assembles briefings and drafts writing using whichever model does the job best.
How it was built
Over four days, Claude Code took it from a 1,500-line script to about 9,600 lines: 17 Python modules, an installer, a backup tool, and 106 end-to-end tests across 25 commits on main. Claude Code wrote the implementation. I specified the behavior, wrote structured feedback documents with scoped priorities and open architecture questions, tested each stage, compared model backends from OpenAI, Anthropic, and open-weight providers against each other on real tasks, and accepted or rejected the work.
Safety rules
- Every external action needs one unambiguous target and my explicit confirmation. Nothing sends, submits, spends, or deletes on its own.
- Untrusted content, such as email and web pages, is treated as data and never as instructions.
- Deterministic routing handles every command it can without a model call; models are reserved for writing and judgment. Total model spend at launch was under three dollars.
- Secrets live outside Git.
- Nightly AES-256 encrypted backups go to a private repository, and restores have been tested.
The deploy loop
Work happens on a branch in a development worktree. Tests run, the database is backed up, the branch is fast-forwarded to main and pushed, and a live smoke test confirms the result. It's the same discipline I bring to client automation pilots.
Hill Mole: a legacy blog off dead software
Hill Mole is my serialized novel, 309 entries written from 2005 to 2022 on Movable Type, which had stopped working. With Claude Code, I moved it to static pages on GitHub Pages, preserving the content, the feel of the original, and every original URL, including old archive and feed addresses. Every entry now has a hand-written title and description checked by a script on each build, schema.org data, llms.txt coverage, and IndexNow submission. The same approach rescues any client site stranded on old software. See project rescue.
This site
Gerris is plain HTML generated by a short Python script, also built with Claude Code. Every page has structured data and a Markdown twin for AI tools, the site publishes llms.txt and a full-text llms-full.txt, and each build checks title and description lengths, word counts, broken internal links, and the copy rules. It's static, fast, readable without JavaScript, and an example of the advice in the guides.
What this means for clients
Building software with AI coding assistants is a real skill, and the skill is mostly the part that isn't typing: knowing what the job is, specifying behavior precisely, catching what the model got wrong, testing, and owning the decision to ship. That's what I bring to a client's tool, a client's repository, or a client's developers.
Updated October 5, 2026
