A collection of things I've built over the years. Most are open source.
Highlights
- 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.
- 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.
- 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.
- pong
: A TUI app to continuously ping all AWS regions and display latencies in a table. Written in Zig.
- SuperSeriousBot
: A Telegram bot serving 5,000+ users with APIs and chat management features. Built using Python + Docker.
- 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
- uv-up
: 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
- Musee
: A masonry-layout gallery for showcasing photos from my Sony A6400. Built with Astro + React.
- 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.