Portfolio

Fun projects I've built.

In Development

TV Diary

TV Diary helps users log the shows they’ve watched, track progress on current series, and stay up to date with ratings, news, and status changes. A standout feature is customizable in-app tier lists, complete with snapshots that let users revisit past rankings over time. With social features to follow friends’ activity and shared viewing habits, the app also delivers personalized recommendations based on what you and your friends watch.

Live

Planka Gamification

A fork of the open-source Planka Kanban board that turns finishing tasks into a game. Cards earn XP, levels and badges, deadlines nag you through a Discord bot, cards can open GitHub branches and show live PR and CI status, and an MCP server lets AI assistants like Claude plan and manage boards.

Live

Now Playing Visualizer

A Spicetify extension that turns Spotify's Now Playing cover art into a beat-synced audio visualizer, replacing the artwork, Canvas and fullscreen views. Listed on the Spicetify Marketplace, with one-click installers for Windows and Mac.

Under Maintenance

Fightdles

Fightdles is a collection of daily web-based games inspired by Wordle, reimagined around MMA trivia instead of words. Players test their knowledge of fighters, bouts, and events, with data updated weekly and new games released daily.

Live

Piss Tracker

Piss Tracker is a tongue-in-cheek social tracking app that transforms bathroom breaks into insights. Users log events throughout the day, explore habits through heatmaps and statistical visualizations, and compete with friends via leaderboards and activity feeds.

Completed

AI Music Detector

My master's dissertation: can AI-generated instrumental music be told apart from music made by people? I built a 1,876-track dataset from the Free Music Archive, MusicGen, Stable Audio and ElevenLabs, trained a CNN that reaches 96.6% accuracy, and used SHAP to explain why detectors trained on one generator struggle on the others.