The October Micro SaaS Challenge
September 30, 2026Four weeks, four small paid software products, and the constraints I'm setting so the month produces something other than another folder of unfinished repos.
Writing on Rust, Go, Python, and JavaScript, plus the occasional detour. Browse by tag or series.
Four weeks, four small paid software products, and the constraints I'm setting so the month produces something other than another folder of unfinished repos.
How working as the architect to an AI coder removed the syntax tax on unfamiliar languages, and what still has to come from me.
A fourteen-part series building a production-shaped RESTful API in Rust with Axum, Docker, and PostgreSQL, using a Pokemon API as the running example.
Revisiting the JSON-LD I added to this site two years ago, finding two real bugs hiding in it, and moving to a slot-based pattern inspired by Stephen Lunt's Astro structured data post.
After years of tmux and a recent stretch running Zellij, I replaced both with Herdr, a background runtime built around keeping AI coding agents alive across reboots. Here is why I switched and how I configured it.
A few months ago I hand-rolled a copy-to-clipboard button for my code blocks. This summer I threw it away and let astro-expressive-code do that job and the ones I never got around to. Here is what the swap looked like.
A while back I added ESLint and Prettier to this blog. This year I pulled both out and replaced them with Biome, a single Rust-based tool that formats and lints in one pass. Here is why, and what the switch actually looked like.
How I wired this Astro blog up to standard.site, the AT Protocol lexicon for long-form publishing, with a well-known file, a single head tag, and a sync script that does the boring work.
The XTEINK X4 is a $69 credit-card-sized e-reader whose factory software does not deserve the hardware. Here is the ten-minute fix and what we learned living with it for a few weeks.