Work

Everything I've released, from a full Windows application to small add-ons that do one job well. Every project here is free to use, and most have their source on GitHub.

Desktop software

Windows applications written in C# on .NET. Each one ships as a self-contained download with nothing else to install, and talks only to the user's own machine and the services it is built for.

Kaydence

Platform
Windows 10 and 11
Version
1.2.0
Licence
Free for personal use

A private diary for Windows that opens straight onto today. Write anywhere on the page like a notebook, add photos, drawings and voice notes, and keep a daily check-in for mood, sleep and tasks.

  • Everything lives in one folder on the user's PC. No accounts, no cloud and no analytics.
  • Optional AES-256 encryption for every file, with a recovery file instead of a back door.
  • Insights, a year in pixels, week and month views, and search across everything written.
  • Daily backups, one-click restore, PDF printing and export to ordinary files.
  • Dyslexia-friendly fonts, light and dark themes, and a built-in guide.
  • C# 84.6%
  • HTML 14.7%
  • Inno Setup 0.4%
  • PowerShell 0.3%
  • C#
  • .NET 10
  • XAML
  • AES-256
  • Inno Setup
Kaydence showing a month of diary entries, each day coloured by mood, with a summary of the month beside it

Ad Break Timer

Platform
Windows
Version
1.0.2
Licence
Free to use, modify and share

A Windows app that puts a Twitch ad break countdown on an OBS stream and then runs itself. It connects to the streamer's Twitch account, listens for real ad breaks as they happen, and switches the overlay between “ad running” and “ad free” with no manual triggers and no Streamer.bot.

  • Signs in with the OAuth device flow, so no password is ever typed into the app.
  • Stores tokens encrypted with Windows DPAPI and asks Twitch for only two ad-related permissions.
  • Re-reads the live ad schedule every 30 seconds, so snoozed and manually run ads correct themselves.
  • Bar and radial overlays, plus a local HTTP API for manual control.
  • C#
  • C#
  • .NET 10
  • Twitch EventSub
  • OAuth device flow
  • DPAPI
  • Local HTTP API
The Ad Break Timer window connected to a Twitch account, with automatic ad detection switched on

Ad Break Timer, server edition

Platform
Windows
Version
1.0.0
Licence
Free to use, modify and share

The earlier build, and still the better fit for streamers who already run everything from Streamer.bot. A small local web server hosts two responsive OBS overlays, a bar and a ring, controlled entirely through URL commands.

  • A single go command sets colour, direction and duration and starts the countdown.
  • Picks a free port by itself and remembers the last one that worked.
  • Ships as one executable with no install, no database and no telemetry.
  • C# 86.2%
  • HTML 13.8%
  • C#
  • .NET
  • HTTP command API
  • Streamer.bot
  • OBS browser sources

Web tools

Browser tools for Final Fantasy XIV players, written in plain HTML, CSS and JavaScript with no frameworks. Every one saves to the visitor's own browser, shares lists through a link or a code, and sends nothing to a server.

FFXIV Tools

Platform
Web
Version
1.4.0

The front door for the whole suite, plus a hand-picked directory of the community tools I use myself, sorted by category: trackers, crafting and the market board, glamour, Eureka and Bozja, deep dungeons and housing.

  • HTML 67.1%
  • CSS 27.6%
  • JavaScript 5.3%
  • HTML
  • CSS
  • JavaScript
The FFXIV Tools hub, with a card for each of my six FFXIV tools

MGP Completionism Tracker

Platform
Web
Version
1.6.0

Every item sold for MGP at the Manderville Gold Saucer, in one sortable, searchable checklist of 385 items. It keeps a running total of MGP spent and still to go, and turns a collection into a shareable stats card.

  • JavaScript 64.9%
  • CSS 18.2%
  • HTML 16.9%
  • HTML
  • CSS
  • JavaScript
  • Canvas
A generated MGP stats card showing items owned, percentage complete, MGP spent and MGP still to go

Challenge Run Tracker

Platform
Web
Version
5.7.0

A log for challenge runs: duos, four-DPS parties, no-healer and solo clears. Nothing appears until the visitor searches for a duty they have already cleared, so story content can never be spoiled, and shared lists ask before showing anything.

  • Covers 396 duties, from the first dungeon to the newest Ultimate.
  • Separate named saves, for example one per duo partner.
  • Share links and save codes packed into a compact compressed binary format.
  • JavaScript 65.4%
  • CSS 19.9%
  • HTML 14.7%
  • HTML
  • CSS
  • JavaScript
  • Compression Streams
The Challenge Run Tracker with a search box above a progress card counting solo, duo and no-healer clears

Hunt Mark Tracker

Platform
Web
Version
1.3.0

All 204 B, A, S and SS rank elite marks from A Realm Reborn to Dawntrail, grouped by expansion and zone with a wiki link on every mark. Filter by rank, hide what is already done, and pass a list on with a link, a code or a file.

  • JavaScript 57.0%
  • HTML 22.8%
  • CSS 20.2%
  • HTML
  • CSS
  • JavaScript
  • SVG
The Hunt Mark Tracker showing overall progress by rank and a collapsible list for each expansion

FFXIV Timetable

Platform
Web
Version
1.1.0

One chart, midnight to midnight, showing every repeating FFXIV timer in the visitor's own time zone: daily and weekly resets, Ocean Fishing, Triple Triad tournaments, GATEs, the Frontline swap and the housing lottery.

  • Day and week views, with rows that can be hidden and reordered.
  • Reminders are scheduled on the browser's audio clock, so they still land on time in a background tab.
  • Optional desktop notifications, and a plain GMT table for anyone who prefers the raw numbers.
  • JavaScript 54.8%
  • CSS 24.0%
  • HTML 21.2%
  • HTML
  • CSS
  • JavaScript
  • Web Audio
  • Notifications API
The FFXIV Timetable chart with a row for each repeating event and a line marking the current time

Eorzea Time Converter

Platform
Web
Version
1.0.0

Every Eorzea hour set against the visitor's own clock, with a chime that can be armed for any in-game hour. An Eorzea hour comes round every 70 real minutes, so the table keeps itself up to date.

  • JavaScript 40.6%
  • CSS 30.3%
  • HTML 29.1%
  • HTML
  • CSS
  • JavaScript
  • Web Audio

Bestiary Tracker

Platform
Web
Version
1.0.0

All 50 beasts in the Beastmaster bestiary in one sortable, filterable table, with the level needed, where each beast is found, and which ones can also be bought as a gourd. Tick them off and share a list with a link.

  • JavaScript 54.8%
  • CSS 27.1%
  • HTML 18.1%
  • HTML
  • CSS
  • JavaScript
The Bestiary Tracker with progress by source, filters, and a table of beasts with their levels and locations

WoW add-ons

Add-ons for World of Warcraft, written in Lua and published on CurseForge. Each one does a single job well, stays out of the way, and comes with settings, slash commands and key bindings.

Kaydee's Pockets

Platform
WoW: Forever and TBC Classic
Version
1.0.2

A rogue add-on for pickpocketing. It badges mobs that can still be robbed, remembers what each one carried, marks the best spots on the world map, and shares records with party, raid and guild members who use it too.

  • Loot tooltips with money ranges and colour-coded item chances.
  • Map spots come from real play, coloured gold, silver or copper by payout.
  • Sync is throttled and pauses in combat, and sharing can be anonymous.
  • Lua
  • Lua
  • WoW add-on API
  • Addon messaging

Kaydee's Auto Decline

Platform
WoW: Forever
Version
1.0.0

Declines party invites and group join requests automatically, with an allowlist so friends always get through, a log of who was blocked and when, and a minimap button to switch it on and off.

  • Allow by name, target or BattleTag, or let all friends and guild members through.
  • Handles two-word realms and accented or Cyrillic names.
  • Lua
  • Lua
  • WoW add-on API

Kaydee's Retrack

Platform
WoW: Forever
Version
1.0.1

Dying clears your tracking. Retrack remembers what was switched on for each character and turns it back on once you are alive again, out of combat, not casting and not on a flight. If you switched tracking off yourself, it stays off.

  • Lua
  • Lua
  • WoW add-on API

Kaydee's Miss Counter

Platform
WoW: Forever
Version
1.0.1

Counts misses, dodges, parries and blocks for you and your enemies, with a colour-coded hit rate, a fight timer and a one-command chat report. Built mainly for rogues, and just as useful for warriors and tanks.

  • Lua
  • Lua
  • WoW add-on API
  • Combat log

Games

Three small games built while learning Godot from scratch, each one teaching what the next one needed. They run in a desktop browser and need a keyboard. Next up: classic games rebuilt from the ground up with original assets modelled in Blender, made live on stream.

Martin Mike

Platform
PC browser

A platformer built around tilemaps and level design.

  • Godot
  • Godot

Alien Attack

Platform
PC browser

Enemy AI, rockets, lives, particles, audio and a full UI, all having to work together for the first time.

  • Godot
  • Godot

Speedy Saucer

Platform
PC browser

My first Godot project, and where movement and physics tuning finally clicked.

  • Godot
  • Godot

Have a project in mind?

Tell me what you need and when you need it. I'll reply with questions, a rough plan and a quote.

[email protected]

For anything else, email [email protected] or find me on GitHub and Bluesky.

Best played on a computer

This game was made for a keyboard and a screen at least 1024 by 600 pixels. It won't play properly on this device.

Copy the link to play later on a computer, or try it anyway.

Try it anyway

Appreciate the work? Consider tipping ☕

Support me on Ko-fi Donate via PayPal