Skip to content
CH 03Case fileschosen, not collected

Things that have to work

Every file below is either a running thing you can open right now or a written account of one. No mockups, no comps, no logo walls — if it isn’t live or shipped, it isn’t here.

FILE 01

Still On Tour

Design + build — a Dead North project
Screenshot of Still On Tour
Grateful Dead, 16 August 1969 — Woodstock. The bracket is a segue run held together; “no circulating tape” is the archive admitting what it does not have.

A community-kept concert archive: every show, every segue, every tape. 5,441 shows across seven bands, from 1965 to last weekend — and it says out loud when the record is missing.

5,441shows · 1,997 venues · ~100k performances

Setlist sites flatten a segue into a comma. This one treats a run of joined songs as a single musical object and renders it that way, notation intact, because the segue is the point. It also refuses to let absence look like emptiness: a show with no surviving tape, a show nobody documented, and a show whose sources contradict each other are three different facts, and all three are recorded rather than rendered as a blank page. Corrections are proposed by anyone and voted through by committee, which is how the record gets better instead of just bigger.

  • Next.js
  • TypeScript
  • Postgres
  • 2026
Open the live thing → (opens in a new tab)
FILE 02

V.I.N.CENT

Design + build

A fleet-monitoring platform watching 327 production sites — statistical anomaly detection against each site’s own history, an archive of what the host discards, and one rule everywhere: an unchecked site must never look healthy.

327production sites watched

Most monitoring answers "is it up?" This answers "is it behaving like itself?" — each site is measured against its own history rather than a shared threshold, so a site that has always been slow does not cry wolf and a site that just got slow cannot hide. The hard rule underneath is that silence is never treated as health: a check that did not run reports as unknown, loudly, because a dashboard that goes quiet when the collector dies is worse than no dashboard.

  • Drupal 11
  • Next.js
  • Pantheon
  • 2026
Read the case file →
FILE 03

The Migration

Sole technical lead

A monolithic Drupal 7 application with millions of nodes, rebuilt as Drupal 10 while the site kept publishing — custom migration paths, counts reconciled every run, zero records lost.

Millionsof records moved · zero lost

The site could not stop publishing, so the migration ran incrementally against a moving target for months. Every run reconciled its own counts and refused to advance on a mismatch, which is the only reason "zero records lost" is a statement rather than a hope. Cutover was measured in minutes.

  • Drupal 7→10
  • Migrate API
  • Behat
  • 2023
Read the case file →
FILE 04

Enhanced Taxonomy Manager

Open source — creator & maintainer

A replacement for Drupal core’s taxonomy UI, built for vocabularies from a dozen terms to 100,000 — drag-and-drop, undo history, bulk merge and clone. Running on 90+ production sites by drupal.org’s own count.

90+sites running it in production

Core’s taxonomy screen was written for a short list and falls over on a long one. This handles vocabularies three orders of magnitude larger with drag-and-drop reordering, an undo history, and bulk merge and clone — and the install count is drupal.org’s own, not ours.

  • Drupal 10/11
  • Vanilla JS
  • SortableJS
  • 2025–
Open the live thing → (opens in a new tab)
NEXTYour projectthe roster stays small on purpose

Every file above started as a conversation about something that had to keep working. If you have one of those, the station takes requests — or start with a $495 site health check and find out what you actually have.