Building a Pokemon API in Rust
August 31, 2026A fourteen-part series building a production-shaped RESTful API in Rust with Axum, Docker, and PostgreSQL, using a Pokemon API as the running example.
Writing on Rust, Go, Python, and JavaScript, plus the occasional detour. Browse by tag or series.
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.