Featured
- Archive Archaeology
- Why can't I read this picture book?
- Building a Balatro-lite game with vanilla web tech
- It's 2026, why are vendor prefixes still in your CSS?
Recent postsView all
Running a Tailscale exit node in a local VM
I run Tailscale on my laptops, phone and NAS, and wanted to add an exit node so I could route traffic through my own connection when I’m out and about....
Sending webmentions on deploy
I’ve spent a fair bit of time on the receiving end of webmentions, from adding support for them in the first place through to fetching them at build time and...
How I take my coffee
My default for making coffee for two is a cafetière. French press if you insist. It requires almost no thought, produces a consistent result, and has no moving parts to...
Inside the BBC's 3D World Cup viewer
While updating scores for AIWC26 this week I came across BBC Sport’s 3D World Cup viewer, which launched on 12 June for matches broadcast on the BBC. Every match played...
Five AIs predict the World Cup
The World Cup rolls around every four years, and with it the office sweepstake, the ritual where everyone gets handed a team at random and pretends to care how it...
Handhelds & Retro Gaming
- Installing Android on the Nintendo Switch
- I turned my DevTerm into a Game Boy Camera and Printer
- GameShell Stuff
- DevTerm Stuff
Jekyll & IndieWeb
- Plugins instead of patches
- Adding support for Webmentions
- Moving to GitHub Actions (and adding .txt posts)
- Reducing commit log noise caused by a GitHub Action
Tinkering
- Building a Home NAS from Mostly Spare Parts
- Using emoji to bypass FRP on a decade-old tablet
- Adding an internal speaker to the Pocket CHIP
- The Raspberry Pi Pico and the Pimoroni Pico RGB Keypad