
Migrating this site to EmDash
This site has changed CMS more times than I can count since 2003. This time I moved to EmDash on Cloudflare, and the reason is that most of my building now happens alongside an AI agent.
Read moreFortnite disappeared from the App Store last month as part of developer Epic Games’ big legal and regulatory showdown with Apple, but the battle royale hit was not gone entirely — at least not for a little while. Apple terminated Epic’s developer account last week, making it impossible to reinstall iOS versions of Epic’s apps, but there was a short period of time during which iPhone and iPad owners were still able to get their hands on Fortnite using a lesser-known feature of iOS.
\[…\]
As part of Apple’s termination of Epic’s developer account, Epic is no longer able to submit new apps to the App Store or issue updates to any existing ones. And with the apps completely delisted, they can’t be reinstalled even if you search for and find them in your purchase history. Trying to do so just results in a message reading, “This item is no longer available.”
There’s no telling how long this Fortnite struggle will persist or whether Epic will ever decide to give in to Apple’s demands and remove its own in-app payment method. As of right now, you can still take Epic up on its price cut offer by paying less for Fortnite V-bucks. But you’re no longer able to buy the new season’s battle pass because Epic can’t update the app properly.
The Apple / Epic Games battle has been interesting to watch.

This site has changed CMS more times than I can count since 2003. This time I moved to EmDash on Cloudflare, and the reason is that most of my building now happens alongside an AI agent.
Read more
I wanted a simple dashboard that showed me events as they happened, so I wrote a quick little Astro app. It grew into Get Butters: a real-time event feed with a REST API, a CLI, insight cards and push alerts.
Read more
Once four agents can edit the same repo, architecture stops being the hard problem and coordination starts. The five roles I run and what each one is forbidden to touch, why every handoff goes through a file, a worktree script so agents stop racing, and the failure modes worth naming.
Read more