Back

What I Learned Building a Coloring Book App with Gemini 3 Pro

In 45 minutes and for just over a dollar, I built an app that lets you generate custom coloring pages on demand.

My wife used ChatGPT to generate some coloring pages for our daughter a couple days ago and it seemed like a fun project to build and ship a custom app to use next time. I used Gemini 3 Pro in Cursor to build the app with Next.js, Clerk, and Gemini 2.5 Flash for image generation through Vercel’s AI Gateway.

I had a pretty good idea of what I wanted the app to do, and what tools I wanted to use, but I made the mistake of keeping my initial planning prompt too vague. After a couple rounds of refinement, I realized I should have been explicit from the start about using Gemini Flash for image generation through Vercel’s AI Gateway. Another unexpected issue during planning was the model not understanding how to use the AI Gateway correctly. I expected a better result here, or at least have the model do a search to find what it needed, but I had to feed the model the docs manually (thanks for the copy button Vercel).

Once I had the plan created, Gemini executed it brilliantly and one-shot a working version of the app. I opened the app, and within seconds was able to generate the cutest baby dragon coloring page ready to print. Then I fell into the perfectionism trap. The initial coloring pages printed fine, but I spent 15 minutes chasing pure white backgrounds, removing stray text elements, and tweaking image dimensions. Classic case of “good enough” losing to “perfect.”

Gemini 3 Pro did an excellent job with the execution, however I felt that the overall competence wasn’t as high as Claude Opus 4.5. The plan was harder to nail down - partially my fault for not including all the relevant info up front, but also it fell short with the AI Gateway implementation and I had to correct it. Another key difference: Opus 4.5 actually opened a browser to test its work - Gemini did not. These differences were subtle - Gemini shipped a working app - but Opus felt more like pairing with a human developer.

Takeaways:

  • Front-load specificity - Better initial prompts save refinement time. Include model names, APIs, and architecture decisions in your first prompt.
  • Ship over perfection - Don’t let minor fixes steal your time and delay shipping.
  • Use AI gateways - Easy setup plus model flexibility. Being able to swap between different models like OpenAI GPT-5, Gemini 2.5 Flash Image, and Gemini 3 Pro Image by changing one line is magic.

It’s been a blast testing models by shipping real apps quickly. The coloring book creator took 45 minutes and cost $1.11 - and now my daughter has unlimited coloring pages. OpenAI’s new model is up next, and I’m curious how it’ll compare.