Subscribe to my blog in your favourite feed reader via RSS, or follow it on the Fediverse (Mastodon, GoToSocial and friends).
A list of blogs I enjoy reading lives on my blogroll.

We Hate The Big Light: Adventures In Making a Dumb Lamp Smart

A Gardener for my Obsidian vault and a Morning Paper for my reMarkable
Navigating git diffs in VSCode with VSCodeVim

Self-hosting Matrix Synapse with Docker Compose and Caddy

The Framework 12 is the Thinkpad X220 we deserve in 2025

Using Eleventy and S3 to build a personal photo blog

Building a Tell-Tale Heart with an Adafruit Prop-Maker FeatherWing

OpenOrb - a curated RSS and Atom feed search engine
WS2812 fairy lights with ESPHome and the Pimoroni Plasma Stick

Best-fit D&D damage to dice calculator
Deploying an Astro site through SourceHut
Finding out when the bins need to go out using Python, Docker, and Pushover
Suspending on idle on Void Linux using Sway WM
Wiring up Wireguard, Caddy, and Docker on a home server
uvcdynctrl-udev.log - a 20GB logfile

Using a HD44780 LCD display with MicroPython on the Raspberry Pi Pico
A simple gocryptfs mounting/unmounting script

Announcing two new online utopian games
You should write a static site generator

HelloEdit: The demon child of a Markdown editor, Microsoft Word 5.1, and Macintosh System 7
A script to create print-ready tiny zine layouts on macOS

Introducing DocDown, the easy way to turn academic Markdown into Word documents
Wordpress in a subdirectory with Caddy
Simple image captions in Jekyll
A command line die roller for D&D
A simple Jekyll rsync script
My workflow for transforming academic Markdown into beautiful Word documents