Blog

SoloDevBoard v1.0: One Place for a Fleet of GitHub Repos
SoloDevBoard v1.0: One …

Shipping the Blazor app I built to stop living in a dozen GitHub tabs, audit, labels, triage, and board rules in one UI.

Dropping Laravel from the Lottery Generator
Dropping Laravel from the …

The lottery app did not need a framework any more, so I took it out.

Turpinverse: Dick Turpin as CRM Demo Data
Turpinverse: Dick Turpin …

A tongue-in-cheek open-source universe, personas, organisations, and a CSV export app, for when sample data is too beige.

Keeping Monolog WP-CLI Alive for Monolog 3
Keeping Monolog WP-CLI …

The old Packagist package got a Monolog 3 line, a PHP 8.1 floor, and documentation that is actually deployed.

MeatyTimes: A Roast Calculator with Far Too Much Engineering
MeatyTimes: A Roast …

A cooking site that turns meat, weight, and doneness into oven times, and a serve-at schedule, treated like a real product.

Import To Planner: CSV In, Plan Out
Import To Planner: CSV …

A Blazor app for importing a spreadsheet into Microsoft Planner through Graph, validate, preview, then confirm.

Building an Azure Virtual Desktop Setup with Bicep
Building an Azure Virtual …

A weekend project that solves a real-world problem: an easy way to spin up a complete Azure Virtual Desktop environment with one command.

Breathing New Life into my Lottery Generator with AI
Breathing New Life into …

Revamping my old Lottery Generator app with AI, modernising the code, automating tests, and handling the boring bits while I focus on what matters.