Things I'm building or have shipped.
MTG Journal
A Magic: The Gathering Commander life counter and game journal. One shared phone runs the whole table β life, commander damage, poison, eliminations β and every finished game feeds a history with player, commander, and color analytics.
React NativeExpoAndroid
MagicScanner
Point your camera at a Magic card and it's in your collection: on-device OCR reads the card, Scryfall fills in the details, and a local database keeps track of what you own.
React NativeOCRTypeScript
Remind Me
A reminders app that goes beyond "tomorrow at 9": flexible recurrence, voice input parsed fully offline, place-based triggers via geofencing, and weather-gated reminders β water the garden only after N dry days.
React NativeExpoOffline-first
Motivate
Plan your week from reusable activity templates, check things off on a calendar, set weekly goals, and earn badges for streaks and consistency. Local-first, with notifications that nudge you before each activity.
React NativeExpoTypeScript
Boardgame Tester
A game-agnostic simulation engine for playtesting board games: scripted AI players run thousands of games, and a dashboard shows who wins, where the points come from, and how rule variants shift the balance.
TypeScriptNode.jsSimulation
Camping Journal
A Dutch-language Android app built around a handwritten journal of 63 campsite visits. Every page was transcribed verbatim β nothing guessed, every doubt logged β and the rating dimensions were counted from the journal itself.
AndroidJavaScriptData
DnD Table
A local web app for running a D&D session where you sit at the table as GM or player and every other seat is an AI with its own personality. Game engine, rules for multiple systems, and speech that reads the table aloud.
TypeScriptReactAI
Score Keeper
Keeps score for the games we play at work β table tennis, fussball, jeu de boules, shuffleboard, and darts β and turns the results into per-sport Elo leaderboards, team standings, and head-to-head rivalries.
React NativeExpoAndroid