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.