Blog

Notes from the workshop.

Long-form writing on what I'm learning, building, and breaking while making the apps.

Latest3 min read

From four repos to a monorepo

Consolidating four byte-identical app repos into one shared core plus thin app shells, the expo-router and Metro problems it surfaced, and validating the migration with real bundles.

Read the post
  • 3 min read

    Shipping, then listening

    The first round of real tester feedback and the small, high-leverage fixes it produced: grid spacing, free typing, jump buttons, easing early ads, and a well-timed review prompt.

    Read the post
  • 3 min read

    The Play Store gauntlet

    Everything between a finished app and a live listing: store assets, data safety, content rating, the target-audience trap, app-ads.txt, and the testing tracks, from real experience.

    Read the post
  • 3 min read

    A cross-app discount with no backend

    Giving players 50% off in a sibling app when they already paid in one, using a deep-link handshake instead of sign-in, accounts, or a server.

    Read the post
  • 3 min read

    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.

    Read the post
  • 3 min read

    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 the post
  • 3 min read

    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 the post
  • 3 min read

    One idea, four apps

    The product and architecture bet behind shipping a family of four themed crossword games from a single shared codebase.

    Read the post
  • 3 min read

    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 the post
  • 6 min read

    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 the post
  • 5 min read

    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 the post
  • 4 min read

    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 the post