Projects

A collection of things I've built over the years. Most are open source.

Highlights

  • chanson.live : An ultra low-latency radio built on WebRTC. Imperceptible de-sync for two devices next to each other on different networks. Built using Remix + Websockets + Python. Previous iterations used Liquidsoap with HLS chunks (latency too high 15s+) and Icecast. I love the idea of listening to music together as a social experience.
  • agentwall : A macOS sandbox for AI coding agents with file and network approval controls.
  • SuperSeriousBot : A Telegram bot serving 5,000+ users with APIs and chat management features. Built using Python + Docker.
  • Pilane Spotting : A DIY plane-spotting system using YOLO and an old Android phone to identify aircraft flying overhead. Built with Astro for the web frontend.
  • playtime-panorama : Generate a dense, responsive collage of your Steam library where each game's header image is sized proportionally to your playtime. Built with Bun + HTML/CSS.
  • pong : A TUI app to continuously ping all AWS regions and display latencies in a table. Written in Rust.
  • Homelab : 2 x Raspberry Pi's, a VPS, and my old workstation connected via Tailscale. Orchestrated with Nomad + Consul. Eventually I plan to open-source the configurations.

Tools

  • uvlift : Interactive Python dependency updater for uv projects. Written in TypeScript.
  • anki-mcp : A CLI MCP server for Anki using AnkiConnect.
  • ynab-mcp : A CLI MCP server for YNAB budgeting.

Bots

  • HamVerBot : #f1's favourite F1 bot on Libera. Counts down to the next Formula 1 race/event. Written in TypeScript.
  • SDTB : A Telegram bot running a fine-tuned SDXL 1.0 model (DreamShaper) on serverless A10G/A100 GPUs via Modal. Built with Python.

Community

  • trilbys-archive : A searchable archive of every Zero Punctuation and Fully Ramblomatic video transcript. Search for any quote, game, or phrase and jump directly to that moment on YouTube. Built with Astro + Pagefind.
  • gotm-remix : Game of the Month voting site for the Patient Gamers Discord server. Built with Remix + TypeScript.

Creative

  • shelleport : A web UI for coding agents anywhere: real-time SSE sessions, tool-call visualization, inline approvals, directory browser, and historical Claude Code import. Native binaries via bun build --compile; systemd/launchd service install.
  • Piquarium : A tiny project with my Dad to monitor the temperature of his fish tank(s). Python on Raspberry Pi with some light soldering.

For Fun

  • Pooductivity : A browser extension that replaces all mentions of "productivity" with the poo emoji. Born from frustration with productivity preaching gurus.