PHP developer · Exeter, UK

I write PHP for a living.
Now I ship native apps with Claude.

Twenty years of web development, a day job running IT for an e-commerce group, and a growing shelf of Mac and iPhone apps I'd never have had time to build alone.

Things I've built

Free, open-source Mac tools I use every day at work, and a puzzle game just for fun.

macOS app

MysqlDesk

Your databases. One fast window.

A native MySQL client for macOS. Every server in one sidebar, queries in tabs that can each point at any server, and result edits previewed as real UPDATE statements before anything is saved.

  • Passwords kept in the macOS Keychain
  • Edit results, then review the exact SQL in one transaction
  • ⌘B column search for tables with hundreds of columns
  • Export to CSV, JSON or SQL INSERTs
  • Swift
  • SwiftUI
  • MySQL 5.7–8.4
  • MariaDB
MysqlDesk: Query tabs

macOS app

GitDesk

Git, at a glance. Every repo, one click.

A 2 MB native Git client for macOS. A colour-coded commit graph, Pull All across every repository in parallel (fast-forward only, so no surprise merge commits) and squash-before-you-push.

  • Pull every repo at once, in parallel
  • Amend and push safely with --force-with-lease
  • ⌘P command palette for actions, repos and branches
  • Stage, diff, stash and .gitignore from a right-click
  • Swift
  • SwiftUI
  • git
GitDesk: Commit graph

iPhone & iPad game

PopDoku

Pop-star logic puzzles.

A relaxing logic puzzle with a sparkly pop twist. Find one outfit in every row, column and colour zone, with no two touching. Every level has a new look, and every puzzle has exactly one solution.

  • Endless levels, from 5×5 up to 9×9
  • Every puzzle generated and checked for a single solution
  • Ten colour themes and a music fact for every win
  • Sounds synthesised in Python, so no licensing
  • Swift
  • SwiftUI
  • CoreGraphics
  • StoreKit 2
PopDoku: Home

PHP × Claude

I'm a PHP developer at heart: MySQL, REST APIs and e-commerce back ends. Claude is how that experience turned into Swift apps.

01

Start from a real itch

MysqlDesk and GitDesk exist because I wanted faster tools for my own day job. Knowing the problem inside out matters more than knowing the language.

02

Pair, don't paste

I describe the behaviour, Claude Code writes the Swift, and I review every change the way I'd review a colleague's pull request.

03

Test like it's production

A preview before every database write, fast-forward-only pulls, a solver that proves each puzzle has one answer. The safety nets come first.

04

Ship it, then share it

Everything ends up on GitHub or the App Store. Small, native and free where I can make it so.