Projects

What I've built

Small, sharp tools. Usually for a problem I already have. None of it is a product. Just what I reach for.

The system

How it fits together

The projects aren't separate builds. Each one feeds another, and this map moves when the system does.

watch

An ambient monitor sees the whole desk

LittleBird runs over everything on screen and remembers it. It holds all the projects in one view, so it catches ties between them that I miss. I want to build my own version eventually and keep the telemetry at home.

what it surfaces becomes the next session

build

One factory runs the builds

Claude Code sessions, often several at once in parallel worktrees. Every session auto-loads the same principles file, so every project is held to the same tenets.

sessions become tools

make

The tools themselves

the Voice Card gates every word published

tell

This site tells the story

Essays and write-ups, drafted against Murmur's card. Publishing refuses copy that doesn't match it. What you're reading passed that gate.

and the monitor sees what ships, which is where the next idea comes from

The wiring

Every handoff, with the receipt

The map above tells the loop. This one shows the wires. Every line is a real handoff sitting in code. Hover a project to light up its wiring. Click anything for the receipt: what travels, how it moves and the file that does it.

22 live wires between 16 builds. 3 of them can refuse to publish.

sources and engines

the voice core

synthesis and the stage

client work

Nothing selected yet. Hover to trace, click to pin a project or a wire.

no wires here

Price Check Deny Cookies Sequential Timer

Nothing flows between these and the rest. They ship on their own and get used daily. The story is the handoff. Sequential Timer is first in line for the spoken clone's cued audio, if I build it.

under everything

Principles auto-load · Usage Queue · Mobile Routing

These don't point at one project, they hold up all of them. Every build session loads the same tenets file. Usage Queue keeps overnight sessions alive through usage resets. Mobile Routing keeps them steerable from my phone.

Distribution Engine

in progress

One brain dump, an essay here, then a version of it on every platform.

Everything I wrote used to land on this site and stop. The engine composes the essay in my measured voice, publishes it here, then rewrites it for every platform and scores each variant before I see it.

Murmur

in progress

A push-to-talk dictation app for the Mac. It learns how I write.

Dictation gets the words right and the voice wrong. Murmur measures how I actually write, on device, and hands any assistant a Voice Card so it stops sounding like an assistant.

Wellington Crawler

in progress

A desktop SEO crawler. No licence gate, no URL cap, no telemetry.

The crawl is the easy part. The gating is the product. So I built the crawler and stopped there, and the data stays on my machine.

I built a local log analyzer to see which bots were visiting my site. Familiar AI crawlers showed up. There were far more visitors I couldn't identify.

Paste a URL and get that page every six months, oldest on the left. I built it to watch a brand change its mind about itself, and the hard part is showing the gaps instead of hiding them.

A Chrome extension that moves the current tab one spot with one keyboard shortcut. Two files, zero permissions, and one link the tests can't press.

AI Influencers

in progress

A content engine for one persona. Research through to a finished draft.

It researches the topic, writes the script, then builds the slides, the voice and the video. What lands is a scheduled draft. I still press publish myself.

Multi-layer competitive analysis of SaaS products, run locally.

A bench that works through a product and its rivals in layers, then exports what it found. Built because doing this by hand kept eating whole days.

Deny Cookies

in progress

A Chrome extension that actually rejects cookie pop-ups.

Most blockers just hide the banner, which leaves the consent unanswered or quietly accepted. This one clicks reject, and shows its work on each site. Pre-launch.

Keyword Clustering

in progress

A self-hosted Keyword Insights. SERP overlap, plus the economics per cluster.

Clusters keywords by how much their SERPs actually overlap, then works out what each cluster is worth. Runs in Docker on my own machine instead of on a subscription.

A self-hosted screen and camera recorder. Hit record, get a link, and no pricing gate.

Hit record, get a link. Transcript and chapters come with it. Same loop as Loom, running on my own server.

Price Check

in progress

What something actually costs to land in Hong Kong.

Compares shops across the world on true landed cost, not the sticker price. It keeps its own history per item, so it only speaks up when a low is genuine.

Sequential Timer

in progress

A ritual timekeeper for the iPhone and Watch.

Set the sequence once, then follow it from the wrist. Built for the gym, where I would rather not reach for a phone between sets.

Swarm

experiment

A bench for research swarms.

Runs CrewAI agents at a research question and saves every run. The growing pile of saved output is the point, not any single answer.