Things I did over the Thanksgiving Break
An exploration of Gemini CLI, coding conventions, and building 4 apps in a week including Banana Weather and Perfect Nature.
Things I did over the Thanksgiving Break 🦃
November 2025
Over the Thanksgiving break, I decided to dive deep into the new Gemini CLI and explore its capabilities for rapid prototyping. My goal was to see how much I could build in a single week by leveraging AI-assisted coding.
I set out to build four distinct applications, each testing a different aspect of the generative AI stack. All of the hosted apps are running in my personal Google Cloud project.
The Apps
1. Banana Weather
- Stack: Flutter (Web), Go, Vertex AI, Cloud Run
- Link: banana-weather.ghc.wtf
- Repo: github.com/ghchinoy/banana-weather
From the Nano Banana Pro weather craze, I created Banana Weather. Using the Google Maps API, your location is determined, and Nano Banana Pro creates a representation of the location + the current weather (via Search), and then Veo animates that image. There are also multiple real and not-real locations pregenerated.

On Dec 2, 2025, Shubham Saboo promoted this on X and I got a lot of new followers. Hi!
2. Echo Storyteller
- Stack: Flutter, Go, Gemini TTS, Vertex AI
- Link: echo-storyteller.ghc.wtf
- Repo: github.com/ghchinoy/echo-storyteller
An infinite storyteller using Gemini TTS streaming. It creates stories with Gemini 3, voices them in real-time, and generates a Nano Banana Pro image to accompany the narrative. This was primarily created to isolate the streaming Gemini TTS + Flutter PCM widget for reuse elsewhere, but it evolved into a full app.

3. Banana Pro Gallery
- Stack: Flutter (Web), Go, SQLite, Firestore, Vertex AI
- Link: banana-pro-gallery.ghc.wtf
- Repo: github.com/ghchinoy/banana-pro-gallery
Created Banana Pro Gallery, which takes popular "awesome" libraries and Twitter prompt posts and makes them actionable. It turns prompt dependencies into form fields, handles image uploads, and provides attribution to the source.

4. Perfect Nature
- Stack: Flutter (Web), Go, Python, Vertex AI, Cloud Run
- Link: perfect-nature.ghc.wtf
- Repo: github.com/ghchinoy/al-mubtazz
A bit of a wild hair, I saw a tweet from Prof. Ali Olomi on Twitter and did a semi-deep dive into medieval Islamic astrology ("The Perfect Nature") to see if I could visualize it. I’m not into astrology, but I found this an interesting combination of Gemini models, Gemini TTS, and an existing Python astrology library.

Bonus: GenMedia Creative Studio Retro Games
Updated the GenMedia Creative Studio’s Retro Games workflow (PR 931). Added support for two players, theme/scene direction, and multi-scene flows using Mesop and Vertex AI.
What I Learned (Random Thoughts)
AI Pair Programming
There’s a reasonable playbook of instructions for tasking, local testing, and deployment architecture that’s fairly repeatable. It generally takes about 1-2 hours to get an idea working (the scaffold is a good starter) and about 8-12 hours to get to a point where it is shareable.
The Tech Stack
- Go: I prefer Go as a server for web apps due to its concurrency and speed (startup and interaction).
- Flutter: Language models know quite a bit about Flutter, making reasoning about best practices easy. It also offers a straightforward path to iOS or Android apps if needed.
- Cloud Run: Chosen for hosting to allow for a secure backend (API keys on server) while maintaining the flexibility of containerized deployments.
Why no Agents?
These are "agents", but without an "agent framework." I’m not overly concerned with trying to conform to arbitrary decisions of a software framework to get things done. Go, Flutter, and the Gen AI SDK are flexible enough on their own.
The "How"
Primarily used the Gemini CLI. I also used Jules briefly (while eating turkey) to add famous peoples' birthdays to the Perfect Nature app via mobile. The integration with GitHub and PR notifications is a significant friction remover.
Missed Opportunities
- Domain and DNS: Could have used Firebase Hosting for easier URL management.
- Auth: Meant to add auth for personal API key storage to offload generation costs to the end user.
- Observability: Could be achieved with Genkit or direct instrumentation.
Conclusion
It was a productive week. The combination of Flutter for the frontend, Go for the backend, and Vertex AI for intelligence is a powerful, reusable stack for modern AI applications.