All posts
3 min readBy AnggaAI 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.

I shipped four mobile games at once. Not four versions of one app, four separate Play Store listings: TTS 90an, TTS 60-80an, TTS Gen Z, and TTS Gen Alpha. Each one is a themed Indonesian crossword game, and behind them is a single shared codebase, a full monetization stack, and a few weeks of evenings spent pairing with an AI coding agent.

This post is the map. The rest of the series walks each chapter in detail.

Why four

Crossword puzzles in Indonesian ("teka teki silang", TTS) are a beloved, low-effort genre. The insight was not "make a crossword app", it was "make one crossword engine and dress it four ways". Each app targets a different audience with its own clues, vocabulary, color theme, and tone, but the gameplay, the hint system, the achievements, and the monetization are identical.

That bet shaped everything. It is also what made the AI pairing so productive: most work happened once and propagated to four apps.

What it actually took

The unglamorous truth of shipping a small mobile game is that the game is maybe 40% of the work. The rest:

  • A game engine that feels good: tappable crossword cells with exact hit-testing, pinch-zoom, an offline level generator, 100 bundled levels.
  • A hint economy that monetizes without feeling hostile: a regenerating free tier, a Pro subscription, bonus hints from streaks and achievements, and an anti-cheat so going offline to dodge ads does not also hand out free hints.
  • The full monetization stack: AdMob, RevenueCat, Google Play Billing, entitlements, offerings, real-time developer notifications over Pub/Sub.
  • A cross-app loyalty discount with no backend and no sign-in.
  • The Play Store gauntlet: store listings, data safety, content rating, app-ads.txt, privacy policy, closed and open testing tracks.
  • A monorepo refactor at the end, when four copy-pasted repos stopped being cute and started being a liability.

What the AI agent was good at

Velocity on the mechanical and the broad. Wiring the same change across four apps. Drafting the RevenueCat and Play Console steps from a screenshot. Writing a Python script to generate feature graphics. Untangling why a release build signed itself with the debug keystore. Producing a custom Metro resolver for the monorepo and validating it with a real bundle instead of a hopeful "should work".

It was also good at saying no. When a generic best-practices audit told me to encrypt local game progress and mint server-side discount tokens, the agent pushed back: no secrets are stored, and the whole point was no backend. Good tooling that argues with you is worth more than tooling that just agrees.

What I had to steer

Product decisions, always. Whether a discount applies to one product or the whole family. Whether the streak reward should be three hints or ten. Whether "open testing" or "production" was the right launch door when Google routed me around in circles. And the judgment call to keep the four original repos as a backup before attempting the monorepo migration, so a botched refactor would cost nothing live.

The agent moves fast. You still own the direction.

The series

Over the next eight posts I will go deep on each piece:

  1. One idea, four apps - the architecture of a themed app family.
  2. Building a crossword engine - cells, gestures, and offline levels.
  3. A fair hint economy - regen, bonuses, streaks, and anti-cheat.
  4. Mobile IAP: what nobody warns you about - the part that ate the most time.
  5. A cross-app discount with no backend - a deep-link handshake.
  6. The Play Store gauntlet - the launch checklist I wish I had.
  7. Shipping, then listening - the tester-feedback loop.
  8. From four repos to a monorepo - consolidating without breaking anything.

If you build small things and ship them, I think you will find a few of these useful. Let's start at the beginning.