Published August 5, 2026

How the Flutter Team Built GenLatte: An AI Coffee Shop Powered by Flutter, Firebase, and Gemini

If you start giving away coffee, people will show up. That was the guiding principle behind GenLatte, a Flutter-powered AI coffee shop that the Flutter team built as a live demo, first for Google Cloud Next and then, under the name Antigravity Coffee Co., for Google I/O 2026 in Mountain View. Over the course of both events, attendees ordered more than 3,000 lattes, each one topped with an image of their personal happy place, generated on the spot by Gemini and printed onto the foam with an inkjet printer. The demo combined two of the most talked-about technologies of the year, Nano Banana's rapid custom image generation and GenUI's runtime-generated interfaces, to turn a simple coffee order into something genuinely memorable.

A Flutter and Firebase Architecture Built for Demos

At its core, GenLatte is a Flutter app with a Firebase backend, organized as a monorepo with separate Flutter, Firebase, and shared code projects. The monorepo approach let the team deduplicate dependencies, share business logic, and execute atomic deployments across the stack. Although the app runs on iOS and Android, customers only ever interacted with the web version, deployed through Cloud Build and Firebase Hosting so that no one had to run firebase deploy from a laptop mid-event. On the server, a mix of trigger functions and HTTP callables gave the app flexibility between explicit data flows and reactive data management.

Inside the Flutter app itself, the team built five separate interfaces: a kiosk screen where sleepy conference attendees order coffee, a barista screen showing fresh orders, a moderator screen for verifying the safety of each submission, a large queue screen giving customers a sense of when to expect their drink, and a purely whimsical recent orders screen that floated the last 13 orders as bubbles so everyone could appreciate their digital creation one final time.

  • Five UIs: Kiosk, barista, moderator, queue, and recent-orders screens in one codebase
  • Monorepo: Shared Flutter, Firebase, and common projects with atomic deployments
  • Web-first: Cloud Build and Firebase Hosting kept the demo deployment simple and reliable

From Happy Place to Printed Latte Art

The magic of GenLatte began with a prompt capped at 50 characters, often just a word or two describing the user's happy place. Gemini upscaled that short phrase into four unique and highly specific image requests, so a user who typed at home with my family might receive prompts describing a cozy house in the woods with dinner waiting on the table and loved ones gathered around. The team also optimized Nano Banana for pleasing compositions, prompting for a leading S curve toward the subject that rotated between roads, rivers, hills, coastlines, and other abstractions. That single prompting trick dramatically increased the percentage of appealing, usable images.

The true wow factor came from the Tweak button. Behind it sat four questions, pre-written by Gemini, about how the image might be modified, such as what food was on the table or whether the celebration honored a specific life event. Because GenUI lets the agent choose the right widget for each question, open-ended questions surfaced a text field while multiple-choice questions appeared as radio buttons, all drawn from a small catalog of branded widgets that kept the interface on-brand. Once the user answered, GenLatte sent the original prompt back to Nano Banana multiple times concurrently, incorporating the requested changes to produce fresh art.

  • Prompt upscaling: Gemini turned short happy-place phrases into rich, varied image prompts
  • GenUI widgets: A conservative widget catalog let the agent match UI to question type
  • Concurrent regeneration: Modified prompts were submitted in parallel for fast results

Security was a first-class concern for any demo featuring user-generated content. GenLatte used a three-tiered moderation approach: raw happy place strings were sent to Gemini Flash for quick moderation against a set of blocked topics, then Nano Banana's own training was relied upon to produce safe imagery, and finally a human moderator manually approved every image before it was printed. To prevent admin spoofing on the web, the GoRouter implementation featured centralized declarative routing checks that validated every page visit against Firebase custom claims, and all Firestore reads and writes were tied to strict account credentials with tight security rules.

After serving 1,200 lattes at Google Cloud Next and another 1,800 at Google I/O, GenLatte stands as a remarkable demonstration of what the current Flutter ecosystem makes possible. Flutter handled the whimsical, animation-rich UI with ease, Firebase absorbed the backend scaling and deployment concerns, and Gemini and Nano Banana turned simple phrases into delightful physical keepsakes. The code lives in the flutter/demos repository for anyone curious, with the caveat that it is unmaintained and offered for inspiration only. For developers, GenLatte is a compelling case study in combining Flutter, Firebase, and generative AI to build experiences that people remember.

  • 3,000 lattes: 1,200 at Cloud Next plus 1,800 at Google I/O 2026
  • Open code: The full demo is available in the flutter/demos repository
  • Real-world GenUI: Runtime-generated interfaces driven by Gemini in production-grade demo conditions