Writing / The yearly archive

2025

A year of decisions, experiments, and notes.

53articles publishedAll years

One Claude Code Install Is Enough

My machine has one Claude Code executable and one updater. Here is how I check the path, remove conflicts, and keep it that way.

3 min

Claude Code Comes to the Web and iOS

Claude Code on the web changes coding from an editor interaction into delegated work. That matters more than adding another interface.

2 min

Claude Haiku 4.5: Cheap and Fast

I use Claude Haiku for small refactors, review, and debugging. Its lower cost and faster responses matter more there than deeper reasoning.

1 min

What SwiftUI's Tab APIs Actually Do

I rebuilt SwiftUI's TabView examples to separate the iOS 18 navigation APIs from the iOS 26 Liquid Glass redesign—and to see where the system takes control.

6 min

Fix Cloudflare 525 Errors with Fly.io

Stale DNS stopped Fly.io issuing my origin certificate. Fixing that cleared the Cloudflare 525 error in this deployment.

4 min

We Rebuilt the UI Instead of Refactoring It

A new data-model entity touched several old pages. Rebuilding those UI components was faster than carrying their Flow types and old assumptions forward.

1 min

How I Moved This Blog from Node.js to Bun

The package manager was the easy part. File APIs, CI, compatibility checks, and Claude Code produced most of the migration's useful work.

3 min

How Claude Code Built This Blog - Part 2

Claude Code helped build the parser, generator, templates, and Cloudflare deployment. Syntax highlighting and timezones took more work.

3 min

How Claude Code Built This Blog - Part 1

I paid about $10 to see whether Claude Code could scaffold the TypeScript static-site generator behind this blog. Most of its choices held up.

2 min

Bitcoin ATMs Are Not Financial Inclusion

Bitcoin ATMs charge steep fees and are frequently used in scams. Their placement in vulnerable neighborhoods makes the business model hard to defend.

1 min

Why I Built a Static Blog

A personal blog should be fast on a phone and boring to host — Markdown to static HTML on Cloudflare, no app server.

2 min