Projects
Things I've made. Most of them are still alive; some are fossils I'm fond of.
alpaca.blue
A unified Bluesky + Mastodon client. It merges your timelines into a single chronological feed, matches cross-platform identities so the same person on both networks shows up once, and lets you post, reply, repost, and like from either platform.
TypeScript · alpaca.blue · GitHub →
Zeitgeist
A social feed summarizer powered by Claude. Sign in with Bluesky, Twitter, or Mastodon, and Zeitgeist fetches the last 24 hours of your timeline, groups posts by theme, and recommends posts worth interacting with. Bring your own Anthropic API key.
TypeScript · zeitgeist.blue · GitHub →
Stuff Everybody Knows
A guide to the rest of your web development career — the foundational knowledge experienced developers assume you already have. It started as a talk I gave more than 30 times to bootcamp graduates between 2014 and 2021, now expanded and updated into a 15-chapter website/ebook.
HTML · stuffeverybodyknows.com · GitHub →
SF Street History
A quick history of San Francisco told as a tour of its street and place names — each fact paired with the map location it's about; tap, swipe, or arrow-key through them.
JavaScript · sfstreethistory.com · GitHub →
The Angle Bracket
A tournament of every HTML tag, run as 57 Twitter polls across 7 rounds in a single week. This was a lot of fun to do and the winner was well-deserved.
EJS · GitHub →
Domain Name Generator
A web app that generates short, pronounceable English-like words and checks their availability as domain names via the Namecheap API. You can filter by word length, count, and TLD.
TypeScript · GitHub →