Every day carries an odd little holiday, and Ferrio tells you which. Android since 2014, iOS in SwiftUI, and the web - all fed by one API. The holidays live on a server rather than inside the app, so a correction or a new entry reaches everybody without waiting for a store review.
Plugins for Paper servers, rebuilt in 2026 from a line of Spigot plugins I started in 2014. The rewrite kept the ideas and dropped the rest: the prefix, the in-house command library and the plugins nobody needed anymore.
Select text, type a bracket, and the text ends up inside it instead of being replaced. What every code editor does, in every input on any page. Editors have had the habit for twenty years and no browser does it anywhere else; this teaches it to Chrome, Edge and Firefox.
A browser extension that turns raw JSON into a collapsible, searchable tree. One permission, no network code, and a test that fails on any request. Written after the most popular formatter went closed source and began injecting scripts - the guarantees are the point, not the tree. Chrome, Edge and Firefox.
A Claude Code plugin for code review on GitHub and GitLab. It reviews other people's pull requests in your voice, works through the comments left on yours and checks your own branch before anyone else does. Nothing is posted until you have read every word and typed send.
A Discord bot that turns a channel into a Java quiz. Pick a difficulty and a category, answer with a button, and every option - right or wrong - explains itself. A broken question is one click away from being reported.
An IntelliJ plugin that hands out achievements for habits every developer has and nobody counts: opening a file untouched for two years, keeping a hundred tabs open, closing them all in one click. Two more stay secret until somebody finds them.
A Binding of Isaac mod for Tainted Lost, the character that dies to a single hit. Every random card gets twice vanilla's chance to become a Holy Card, the one thing that buys a second life - 20% instead of 10%, measured in game.
A daily guessing game with one rule: a single pixel is hidden on a board of ten thousand squares, and every player in the world gets one guess at it per day. No hints. The answer is revealed the next day, and a new area takes its place.
A treasure hunt played on foot. Follow a trail of clues through a real city, reach each spot on real GPS to unlock the next one, and solve the puzzles hidden along the way. Anyone can build a trail of their own and publish it or share it privately.
A word puzzle for Android that never shows you the words, only their lengths. Each one snakes through the grid of letters, and together they cover every square exactly once. A solver checks every board before it ships, so there is always exactly one answer.
AndroidKotlinJetpack Compose
Collaborations
Work I do for other people: building things, keeping them running, or helping decide what they should do next. Their business, not mine.
A studio for aerial and movement classes, open since 2022 and teaching everyone from children to seniors. The site carries the class list, the timetable, pricing, the gallery, the instructor profiles and the sign-up flow. Written in PHP and still being extended.