Menu
7 posts · RSS

Things that
annoyed me.

Write-ups on self-hosting and homelab software: what broke, why it broke, and what I built instead, so the next person hitting the same wall skips the weekend I lost.

Homerun now puts your idle apps to sleep, catches their crashes, and finally works on a phone

Twenty-four Homerun releases since the release channels post. The ones that matter: services that sleep when nobody's using them, Sentry-compatible error tracking built in, browser IDEs on your own server, incremental backups, your whole setup in a file, and a dashboard that feels like an app on your phone.

Homerun has release channels now, because I was tired of shipping broken builds

Every merge to main used to be a Homerun release, including the broken ones, and every fix cost fifteen minutes of CI. Now Releaser cuts nightly, canary and stable, and the updater refuses to install a build that can't boot.

Penombre versioning: stop naming your files like a hostage note

Penombre now keeps versions of your files. For musicians and designers that means no more final-final-v3 exports, and switching between mixes mid-playback to hear what actually changed.

Why I rewrote semantic-release in Go

semantic-release does one job and buries it under a plugin registry, a .releaserc, and a node_modules folder heavier than the project it's releasing. I looked at GoReleaser too, wrong tool for a different job. Releaser is the same four steps and a single Go binary.

Why Penombre dropped S3 support

S3 support sounded like the "enterprise-ready" checkbox to tick. It was actually a bet against the entire premise of the project. It's gone now, here's why.

Homerun and Penombre are both getting a Go worker

Deploys dragged on Homerun, uploads dragged on Penombre, and Homerun's releases were pushing 800MB. Here's why the fix for both is the same worker, written in Go.

This is where I rant

Why there is a blog on a site that exists to give software away, and what is going to end up on it.