One weekend in August I was teaching my kid addition and subtraction. We did it the way I learnt it, with a pencil and a notebook full of sums.
Somewhere in the middle I thought an app could teach the same thing in a more fun, hands-on way. I downloaded a few. Each one wanted a yearly subscription, somewhere between ₹500 and ₹1,500. Even the free trials asked for a card first. To be fair, these were full apps with lots of features. I only wanted one of them.
So I decided to build it myself. I had a second reason too. Earlier this year I put Planetia, a solar system app for kids, on the Apple App Store. I had never published anything on Google Play, and I wanted to learn how that works.
Those of you who’ve followed my posts know I’m what you’d call an enthusiast. I like to dabble with new tech, especially agentic AI, and learn new things along the way. Planetia started exactly like this. So did this one.
The app is called Drops. It took 21 days to build. Getting it onto the Play Store took another 45.
Enjoying this?
Get the next essay in your inbox, most Sundays.
A game where ten is special
Drops is a maths game for kids aged six and seven. Water drops carry the numbers 1 to 9. Push two drops together and they add up. If they make exactly 10, they turn into a cloud and float up to a shelf at the top of the screen. Tap a drop and it splits in two. Tap a cloud and it bursts back into ten little drops.
A hungry creature called Momo sits in the corner and asks for exact amounts. Early on he wants 7. In the last level he wants 45, and you pay him with four clouds and a 5. I took the idea from DragonBox, the algebra game for kids, where the maths is the physics of the world.
There are 60 levels. Every instruction is spoken in English or Hindi, so a child who can’t read yet can play alone. It’s free. No ads, no sign-up, and it works offline. It also collects no data at all. Progress stays on the phone. That one was a deliberate choice. India’s new data protection rules make anything that tracks children a compliance headache, and the simplest way out is to keep nothing.
I built the levels in stages. Every time I got home, he wanted to know when I’d finish the game. Once all 60 were ready, he got through them in three or four days on his grandparents’ phones.
The spec came before the code
I’d tried enough apps to have a vague idea of what I wanted. I didn’t have the mechanic. That came out of a long brainstorm with my favourite brainstorming partner, Claude.
My first message asked for a maths app for kids aged 6 to 10, inspired by DragonBox. Claude pushed back straight away. DragonBox took years of design work and has serious money behind it, so what would I do differently? My answer was India: Hindi, English, and a price Indian parents would pay. That price later became zero.
We narrowed it to six- and seven-year-olds and two topics, number bonds and place value. The water drops came out of that chat, and so did the one idea the whole game rests on. Ten is special. Number bonds are pairs that make ten. Place value is ten ones becoming one ten. If the game makes ten feel special, it teaches both.
I won’t bore you with the whole process. By the end I had a spec and a set of handoff files for Claude Code: the rules of the game, the level design, a design system, a rough playable prototype for how a drop should feel under a finger, and 13 build prompts, one Claude Code session each. It’s the same plan-first workflow I wrote about in How I Actually Use Claude.
One of those prompts built a level checker. It plays every level by brute force and proves two things: the level can be solved, and it can’t be solved in fewer moves than I claim. Checking 60 levels by hand was never going to work.
The tools
- Claude AI for brainstorming, the spec, and every “how do I do this in Play Console” question along the way.
- Claude Code for all the code, end to end.
- Claude Design for the look and feel.
- ElevenLabs for every voice clip in the game, in Hindi and English. There are more than 200 of them.
Three decisions
Claude Design over other design tools
I picked Claude Design because I know it. I used it to redesign this website in April, and so far it has stuck to what I ask for.
The brief was a flat paper-cutout world with glossy, squishy objects on top. That contrast does a job: if it’s shiny, a child can play with it. Each number has its own colour too, from the Cuisenaire rods many school books use, so a 5 is always yellow and a 9 is always blue. Orange shows up in exactly one place in the whole game, the 10 on a cloud.
Before any design went to Claude Code as a reference, I asked Claude AI to check it against the brief. The additional check made sure that all design assets and colour schemes as per spec.
ElevenLabs over the phone’s own voice
Kids who can’t read need to hear what to do, so the game speaks every instruction, every number and every bit of praise. The easy option was the phone’s built-in text-to-speech, and my first test build used it. But that voice changes from phone to phone, and not every Android phone has a Hindi voice installed. I wanted one warm voice that sounds the same everywhere.
So I generated the whole set in ElevenLabs, English and Hindi, in one voice. If a clip ever goes missing, the game quietly falls back to the phone’s voice.
A TWA instead of a native app
Planetia was a native iPad app, written in Swift. Drops went the other way. It’s a website that works offline. A thin Android shell called a Trusted Web Activity, or TWA, puts it on the Play Store.
Drops is a very simple app. It didn’t need to be native. And a TWA meant I could push fixes without submitting a fresh build, because the app loads the website. When Google rejected my privacy policy, I fixed the page, added a link to it inside the app, and resubmitted without touching the build.
It did cost me delay at two places, though.
The first was Bubblewrap, Google’s tool for building the Android shell. It kept breaking on my Mac. The project it generates pulls code from JCenter, a server that shut down years ago, and every time I updated the project it put JCenter back. It took more than one debugging session to spot.
The second was that on a tester’s phone, the game opened with a browser address bar on top. That bar appears when Android can’t confirm that the app and the website belong to the same person. The proof is a small file on your website called assetlinks.json, which lists the key the app is signed with. When you upload, Google re-signs your app with its own key, so the file has to list Google’s fingerprint as well as yours.
Twelve testers, fourteen days, twice
Publishing on Play started with a surprise. If you open a personal developer account today, Google won’t let you publish until you’ve run a closed test with at least 12 testers, all opted in for 14 days straight. Organisation accounts skip this. Apple has nothing like it, and I never faced anything similar with Planetia.
So I found 12 testers: friends, family, and a few parents who let their kids play. After 14 days I applied for production access and answered Google’s questions about the test. How did I find testers? How did they use the app? What feedback came in? What did I change?
Google said no. The app needed more testing, and the 14-day clock restarted from the date of the review. I think the Play team wasn’t satisfied with my answers. After the second 14 days I sent much the same answers with a few tweaks, and this time they went through.
Production access only means you’re allowed to submit the app for review. My first review was rejected because the privacy policy wasn’t set out the way Google wanted. I rewrote it in English and Hindi and resubmitted. The second submission went through.
All in all, Drops went live more than 45 days after the closed test started. One more thing I didn’t know going in: publishing on Play isn’t free. There’s a registration fee of US$25, a little over ₹2,000. The good part is that you pay it once. Apple charges ₹8,700, every year.
Easier to do, slower to get through
I’ve now published on both stores. Play is easier to do. The UX for submitting an app is simpler than Apple’s, and I never hit anything like the tax-form rejection that held up Planetia.
Play is also much slower to get through. Planetia took four weekends end to end, and two of those went into waiting for Apple’s developer licence. Drops took 21 days to build and more than 45 to publish. For a first-time submitter, the wait after you hit submit is a drag.
Drops is free on the Play Store. On an iPhone, open drops.rohitgarrg.com in Safari and add it to your home screen. No ads, no sign-up, and nothing leaves the phone.