Creativity at the Speed of Voice
How I built a mermaid game for my daughter...from my phone...one stolen moment at a time.
There’s a game I play on my phone when I need to switch my brain off. You connect dots - that’s pretty much it. The levels are bite-sized, nothing is urgent, and twenty minutes later I feel like a person again.
My four-year-old has watched me play it more than once, and naturally she eventually asked me for a turn. Of course she loved it. She also, almost immediately, ran into everything wrong with it.
The levels were far too hard - I’ve been playing long enough to be at an almost embarrassingly high level, which was far too advanced for her. The game itself has also gotten bloated over the years. Pop-ups, upsells, click targets that move - literally every dark UI pattern you can think of. Starting a round these days can mean closing somewhere between seven and 10 pop-up-windows, which is a lot to ask of someone who can’t yet read the word “exit.” I also didn’t love the odds of her triggering an accidental purchase. But most importantly, the thing she wanted most, it couldn’t offer at all: mermaids. She is deeply in her mermaid era.
Strip all that away and what she wanted was simple. The basic gameplay, none of the junk, all of the mermaids.
That felt buildable. So in the car on the way home from our long-weekend road trip, I pulled up my phone, opened my coding agent, and described the game I wanted. It got to work. By the time we pulled into the driveway, the MVP of Mermaid Dots existed.
The Human API Layer
When it came to building the actual game - I’ll admit my first workflow was rather silly in retrospect.
Why? Well, once the core game worked, I realized I wanted images in it. So I had the agent write image prompts. Then I copied each prompt into a separate app, generated the image, saved it to my phone, and pasted it back to the agent. Over and over - literally dozens of times.
I had become the human equivalent of an API layer.
It was not a good use of my time, and it got frustrating fast, but I was also stuck in the passenger seat of a car and didn’t have much else to do. More importantly, the images made the game SO much better, and watching my daughter’s face light up every time a new one appeared made it worth it in the moment. By the end of the car ride, the game was decently playable.
Iterating With My User in the Back Seat
Building with your user two feet away turns out to be a very tight feedback loop. I could ship a change, hand her the phone, and watch what happened. A few of the things we landed on together:
The upsells became trivia. Somewhere in the drive it hit me that if I’m the one building the game, I don’t have to interrupt her with offers for gem packs - I can interrupt her with learning. So between rounds, the game now surfaces fun facts about the ocean.
Then I remembered she can’t read yet. So the game reads each fact out loud. Then I thought, if it’s reading out loud anyway, it should highlight each word karaoke-style as it goes - a tiny reading lesson smuggled into a mermaid game. One catch: I was using the phone’s default text-to-speech (TTS), and the highlighting never quite lined up with the voice. The fix is to use a proper TTS model and generate the audio ahead of time, so the timing is known - that’s the upgrade I’m in the middle of right now.
And the game grew a rescue mechanic. A few levels in, bubbles start appearing over some of the sea creatures. Connect dots near a bubble and you free the creature, and it swims off to join a growing collection in your fish tank.
That one wasn’t my idea. I asked the agent what would make the game better, and the fish tank was its suggestion.
This almost sounds too obvious to be a tip - but one piece of advice I have…if you’re looking for ways to improve what you’re building, ask your agent. Especially on a fun little side prototype, where the cost of a bad suggestion is zero. You might be surprised by the fun, or useful, ideas it suggests.
Next, we also added a character select: two mermaids, one named after my daughter and one named after me.
One Prompt, a Whole New Skin
Back at work, I was telling a coworker about the game, and he pointed out - rightfully - that I didn’t need to be the human API layer at all. Hook the agent up to OpenRouter and let it call whatever model the job requires.
I went home that night, and that was the first thing I did.
Here’s where it paid off. When I’m vibe coding something like this, my usual move for the visual direction is to go hunting for inspiration. This often happens on Pinterest, or in the collection of saved images I keep for random side projects like this. I then simply hand the agent a few illustrations I like with the instruction: make it look like a combination of these. I’d done that for the first skin, back when every image passed through my thumbs. Then I found a set of illustrations I liked better, dropped them into the chat, and this time the agent just called Nano Banana and regenerated everything itself. One prompt. The whole game reskinned.
One trick worth stealing: don’t generate the little assets one at a time. Instead of separate generations for the seashell, the fish, the seahorse, and so on, have the model produce a full sticker sheet in a single image and let the agent slice it up. One image generation instead of ten - cheaper, faster, and the assets come out style-consistent because they were born together.
Built in the Cracks of the Day
That evening at the playground, my kids found some friends and forgot I existed, so I pulled out my phone and added a map - you can now see the levels winding ahead of you as you progress. On Tuesday, waiting in line with my husband, I decided the static win screen was boring, and by the time we reached the register the game had a win animation and an animated splash screen my daughter absolutely loves. Background music came the same way - the agent called Lyria and scored the game.
Notice what none of this required: a laptop, a desk, a block of time on the calendar. Every feature shipped from my phone, by talking, in minutes that used to be dead time. The bottleneck wasn’t typing speed or tooling. It was how fast I could describe what I wanted.
It’s a shift I’ve been feeling more and more, and this project is the clearest version of it yet. Creativity at the speed of voice.
The Part I Keep Saying
The cost of building keeps going down. I know I say that a lot - as do a LOT of others. But claims like that are easy to nod at and forget, so here is the tangible version: an ad-free, mermaid-themed, custom-built game with read-aloud trivia, a fun fishtank feature, animations, and an original soundtrack - built by someone with three kids and a full-time job, from a phone, in the leftover minutes of a holiday weekend and evenings at the playground. A year ago, that sentence would have read as crazy talk - today it’s just another car ride home.
Next on the list for this fun little side project: proper voices for the fun facts so the karaoke timing finally lines up, and packaging the whole thing up as a real iPad app so she can play it on her own. If you want to poke at the current version, you can play it here - mermaids, trivia, rescued sea creatures and all.
You probably have your own version of Mermaid Dots - something small, for an audience of one, that no app store is ever going to build. It has never been easier to make it yourself - so what’s stopping you?







