Blog
Notes from the workshop.
Long-form writing on what I'm learning, building, and breaking. Daily-ish, depending on how the day goes.
Mobile in-app purchases: what nobody warns you about
AdMob, RevenueCat, and Google Play Billing in practice. Products versus entitlements versus offerings, the 'purchase unavailable' debugging, license testers, and real-time notifications over Pub/Sub.
ReadMore posts
- 3 mingame design / monetization / React Native
A hint economy that's fair but not free
Designing hints that monetize without feeling hostile: a regenerating free tier, never-expiring bonus hints, streak rewards, and an anti-cheat for people who go offline to dodge ads.
Read - 3 minReact Native / Expo / gestures / game dev
Building a crossword engine in React Native
Exact-hit-test tappable cells, pinch-zoom with breathing room, an interlocking offline level generator, and the small details that make a puzzle feel right.
Read - 3 minproduct / architecture / Expo / mobile
One idea, four apps
The product and architecture bet behind shipping a family of four themed crossword games from a single shared codebase.
Read - 3 minAI coding agent / React Native / Expo / indie / mobile
Building four apps with an AI coding agent
How I shipped a family of four crossword games to the Play Store by pairing with an AI coding agent, from the game engine to monetization to a last-minute monorepo refactor.
Read - 6 minclaude-code / ai / productivity
How I cut my Claude token bill by 90%
Two tiny tools and one habit. RTK trims bash output before it reaches the model. Caveman trims the model's replies before they reach me. Setup took ten minutes. The first session after barely registered on the bill.
Read - 5 mindevops / automation
The cron job I avoided for five years
I ran the same script by hand for years because cron looked like a foreign language. It took five minutes to learn. Here is the version of the explanation I wish someone had given me.
Read - 4 mincss / frontend
Components that scale like images
A small CSS pattern that turned out to be the missing piece in our design system: container queries plus an em cascade. Three lines of CSS, one mental shift.
Read