<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vinay Guda</title>
    <description>The latest articles on DEV Community by Vinay Guda (@vinay_guda).</description>
    <link>https://dev.to/vinay_guda</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3295471%2Fe6722249-d468-444f-aa14-feea005ab8ee.png</url>
      <title>DEV Community: Vinay Guda</title>
      <link>https://dev.to/vinay_guda</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vinay_guda"/>
    <language>en</language>
    <item>
      <title>Building NousyBooks: How I Used 6 Gemini Models to Create Personalized Children's Storybooks</title>
      <dc:creator>Vinay Guda</dc:creator>
      <pubDate>Mon, 16 Mar 2026 21:11:36 +0000</pubDate>
      <link>https://dev.to/vinay_guda/building-nousybooks-how-i-used-6-gemini-models-to-create-personalized-childrens-storybooks-5fn2</link>
      <guid>https://dev.to/vinay_guda/building-nousybooks-how-i-used-6-gemini-models-to-create-personalized-childrens-storybooks-5fn2</guid>
      <description>&lt;p&gt;&lt;em&gt;Their face. Their story. Their book.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Every parent knows the magic of a bedtime story. But what if the hero looked exactly like your child?&lt;/p&gt;

&lt;p&gt;As a parent of a 7-year-old daughter, I've spent years exploring children's books with her — from Usborne's lift-the-flap books to interactive ebook apps. One thing became clear: children light up most when the story feels like &lt;em&gt;theirs&lt;/em&gt;. Not a generic hero — &lt;em&gt;them&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Existing personalized book services cost $50-100+, take weeks to deliver, and use crude template swaps. The result feels manufactured, not magical.&lt;/p&gt;

&lt;p&gt;Then Google released &lt;strong&gt;Nano Banana 2&lt;/strong&gt; (&lt;code&gt;gemini-3.1-flash-image-preview&lt;/code&gt;) with character consistency — the ability to maintain a person's likeness across multiple generated images using reference photos. The idea clicked instantly. I could build a tool where a child's &lt;em&gt;actual face&lt;/em&gt; appears on every page, in any art style, generated in minutes.&lt;/p&gt;

&lt;p&gt;That's how &lt;strong&gt;NousyBooks&lt;/strong&gt; was born.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it live:&lt;/strong&gt; &lt;a href="https://nousybooks-hackathon-218423701961.us-central1.run.app" rel="noopener noreferrer"&gt;https://nousybooks-hackathon-218423701961.us-central1.run.app&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/vinayguda/nousybooks-hackathon" rel="noopener noreferrer"&gt;https://github.com/vinayguda/nousybooks-hackathon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqls0ffd0aw82xlo1h3e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqls0ffd0aw82xlo1h3e.png" alt="NousyBooks Landing Page"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What NousyBooks Does
&lt;/h2&gt;

&lt;p&gt;NousyBooks generates personalized children's storybooks end-to-end:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Upload photos&lt;/strong&gt; of your child as character references&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Talk to Nousy&lt;/strong&gt; — a voice assistant that guides story creation through natural conversation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose a language&lt;/strong&gt; — 14 languages supported, from English to Telugu to Japanese&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate&lt;/strong&gt; — Gemini writes the story, paints character-consistent illustrations, and narrates it as an audiobook&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Export&lt;/strong&gt; — Download a print-ready PDF, video with karaoke subtitles, or share via link&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The entire flow — from photo upload to finished storybook — takes about 3-5 minutes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F948k2zxkk0javhwi66ks.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F948k2zxkk0javhwi66ks.png" alt="Landing Page — Features Overview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizt3w1sp0vycl6mz0rlb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizt3w1sp0vycl6mz0rlb.png" alt="Landing Page — How It Works"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5rti8a4nac1558yeqslj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5rti8a4nac1558yeqslj.png" alt="Landing Page — Art Styles"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Book Creation
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ftw84frref63vp1i5jf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ftw84frref63vp1i5jf.png" alt="Story Creation Dashboard — Characters, Style &amp;amp; Topic Ready"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmsg3h6emajmz5o3tkd5h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmsg3h6emajmz5o3tkd5h.png" alt="Generation in Progress"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Reading Your Story
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9uavmefop7qzbt37gyfk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9uavmefop7qzbt37gyfk.png" alt="Reading View — Page 1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fugoc7gqjkk923yfhw5eq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fugoc7gqjkk923yfhw5eq.png" alt="Audio Narration with Word Highlighting"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Your Library
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrq0d95xajy3fetyy2jk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrq0d95xajy3fetyy2jk.png" alt="Story Library Grid"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Architecture: 6 Gemini Models, One Pipeline
&lt;/h2&gt;

&lt;p&gt;The most interesting part of NousyBooks is how it orchestrates six different Gemini model capabilities into a single seamless experience:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Phase&lt;/th&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Voice Assistant&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gemini-2.5-flash-native-audio&lt;/code&gt; (Live API)&lt;/td&gt;
&lt;td&gt;"Nousy" — guides story creation with 12 function tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Topic Generation&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-2.5-flash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Auto-generates story ideas from character details&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Story Writing&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-2.5-flash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;JSON schema-enforced narrative with per-page visual prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Illustration&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-3.1-flash-image-preview&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Character-consistent image generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image Editing&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-3.1-flash-image-preview&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Natural language illustration edits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audiobook&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-2.5-flash-preview-tts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Narration with real-time word highlighting&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All AI calls happen client-side via the &lt;code&gt;@google/genai&lt;/code&gt; SDK — no backend AI server needed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vinayguda/nousybooks-hackathon?tab=readme-ov-file#ai-generation-pipeline" rel="noopener noreferrer"&gt;https://github.com/vinayguda/nousybooks-hackathon?tab=readme-ov-file#ai-generation-pipeline&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Hard Part: Character Consistency
&lt;/h2&gt;

&lt;p&gt;The biggest technical challenge was making the child look the same on every page. Early attempts produced completely different characters — different clothing, hair color, even skin tone.&lt;/p&gt;

&lt;p&gt;I solved this with what I call the &lt;strong&gt;Anchor Image Pattern&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Page 1&lt;/strong&gt; generates first, using only the child's reference photos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pages 2-4&lt;/strong&gt; generate in parallel, each receiving the original references PLUS page 1's illustration as an "anchor"&lt;/li&gt;
&lt;li&gt;The anchor image carries an explicit consistency instruction: &lt;em&gt;"The character MUST have the same face, hair, skin tone, and clothing as shown in this anchor image"&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This was the breakthrough. No fine-tuning. No LoRA. Just reference photos + an anchor image + explicit instructions. The result: your child looks like &lt;em&gt;themselves&lt;/em&gt; on every page — in watercolor, 3D animation, anime, paper cutout, any style.&lt;/p&gt;

&lt;p&gt;This pattern could be useful beyond storybooks for any sequential AI illustration task.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vinayguda/nousybooks-hackathon?tab=readme-ov-file#character-consistency-pattern" rel="noopener noreferrer"&gt;https://github.com/vinayguda/nousybooks-hackathon?tab=readme-ov-file#character-consistency-pattern&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdmh3whaagk5kg6rf5zy7.png" alt="Character Consistency Across Pages"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Building the Voice Assistant
&lt;/h2&gt;

&lt;p&gt;Nousy is powered by the Gemini Live API with native audio — bidirectional streaming over WebSocket with raw PCM audio (16kHz input, 24kHz output).&lt;/p&gt;

&lt;p&gt;The voice assistant has 12 function calling tools that control the entire app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;addCharacter&lt;/code&gt; / &lt;code&gt;removeCharacter&lt;/code&gt; — manage story characters&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;selectArtStyle&lt;/code&gt; — choose from 8 illustration styles&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;setStoryTopic&lt;/code&gt; — set the narrative theme&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;setStoryLanguage&lt;/code&gt; — switch between 14 languages&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;setPageCount&lt;/code&gt; — customize story length (2-26 pages)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;startGeneration&lt;/code&gt; — trigger the full pipeline&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;editIllustration&lt;/code&gt; / &lt;code&gt;editPageText&lt;/code&gt; — refine the result&lt;/li&gt;
&lt;li&gt;And more...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Say &lt;em&gt;"Add a character named Shreya, she's a 7-year-old who loves butterflies"&lt;/em&gt; and Nousy creates the character. Say &lt;em&gt;"Make it in Hindi"&lt;/em&gt; and it switches the language. When you're ready, just say &lt;em&gt;"Let's generate the story"&lt;/em&gt; and the entire pipeline kicks off.&lt;/p&gt;

&lt;p&gt;The trickiest part was handling race conditions — the WebSocket could disconnect during connection setup, leaving the UI in a stale "listening" state. I solved this with a &lt;code&gt;sessionRef&lt;/code&gt; guard pattern that validates the connection is still active before updating state.&lt;/p&gt;




&lt;h2&gt;
  
  
  Multi-Language: 14 Languages, One Codebase
&lt;/h2&gt;

&lt;p&gt;Stories can be generated and narrated in 14 languages: English, Spanish, French, Hindi, Mandarin, Japanese, Korean, Arabic, Portuguese, German, Italian, Russian, Telugu, and Tamil.&lt;/p&gt;

&lt;p&gt;The TTS narration auto-detects the story's language for native pronunciation. Word-level highlighting works seamlessly across all scripts, including Indic languages like Telugu and Tamil.&lt;/p&gt;

&lt;p&gt;I had incredible fun generating storybooks in my native language, Telugu. Hearing my daughter's story narrated in Telugu with proper pronunciation was a genuinely emotional moment.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React 19 + TypeScript 5.8 + Vite 6 + Tailwind CSS 4&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; Gemini API via &lt;code&gt;@google/genai&lt;/code&gt; SDK (all client-side)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Express server (static files + runtime config injection)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth &amp;amp; Storage:&lt;/strong&gt; Supabase (auth, database, file storage)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Google Cloud Run + GitHub Actions CI/CD&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prototyping:&lt;/strong&gt; Google AI Studio + Antigravity (code export)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Process
&lt;/h3&gt;

&lt;p&gt;I started in &lt;strong&gt;Google AI Studio&lt;/strong&gt; to prototype — testing story generation prompts, image generation with reference photos, and TTS. AI Studio let me validate the concept before writing code.&lt;/p&gt;

&lt;p&gt;Once it worked, I exported with &lt;strong&gt;Antigravity&lt;/strong&gt; and built the full application using &lt;strong&gt;Claude Code&lt;/strong&gt; as a development partner. The entire development was AI-assisted — what people call "vibe coding." The key insight: AI assistance works best when you have a clear vision of WHAT to build and let the AI help with HOW.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Technical Decisions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JSON Schema Enforcement&lt;/strong&gt; — Story generation uses &lt;code&gt;responseMimeType: "application/json"&lt;/code&gt; with a strict schema, guaranteeing valid structured output every time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase Storage&lt;/strong&gt; — Images stored as files, not base64, reducing story load from ~14MB to ~2KB&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime Config Injection&lt;/strong&gt; — API keys injected via &lt;code&gt;window.__CONFIG__&lt;/code&gt; at request time, never baked into the JS bundle&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exponential Backoff&lt;/strong&gt; — All image generation wrapped in retry logic for production resilience&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pipelined TTS&lt;/strong&gt; — Next page's audio pre-generates while current page plays, eliminating delays&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Challenges
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Model Deprecation Mid-Build&lt;/strong&gt; — &lt;code&gt;gemini-2.0-flash&lt;/code&gt; got deprecated and started returning 404 errors. Had to quickly migrate to &lt;code&gt;gemini-2.5-flash&lt;/code&gt;. Lesson: build with model flexibility in mind.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rate Limits&lt;/strong&gt; — Parallel generation of 4 illustrations often hit rate limits. Tuning retry delays to balance speed vs. reliability took iteration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Cloud Deployment&lt;/strong&gt; — This was my first time deploying anything to Google Cloud. Learning Docker multi-stage builds, Cloud Run, and CI/CD was a significant learning curve — but now I have a fully automated pipeline that deploys on every push to &lt;code&gt;main&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Daughter's Reaction
&lt;/h2&gt;

&lt;p&gt;The moment that made this project worth it: when I generated a story starring my daughter, she was thrilled. She immediately wanted more. She asked to try different art styles. She wanted stories in Telugu so she could share them with her grandparents.&lt;/p&gt;

&lt;p&gt;Seeing her flip through a PDF storybook where she was the hero — that's the magic of NousyBooks.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Age-appropriate modes&lt;/strong&gt; — Adjust vocabulary and complexity for toddlers vs. early readers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Story templates&lt;/strong&gt; — Pre-built structures for common themes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Print-on-demand&lt;/strong&gt; — Ship physical hardcover books&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaborative storytelling&lt;/strong&gt; — Parent + child brainstorm together with the voice assistant&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Object references&lt;/strong&gt; — Upload photos of toys, pets, and places to appear in illustrations&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live App:&lt;/strong&gt; &lt;a href="https://nousybooks-hackathon-218423701961.us-central1.run.app" rel="noopener noreferrer"&gt;https://nousybooks-hackathon-218423701961.us-central1.run.app&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/vinayguda/nousybooks-hackathon" rel="noopener noreferrer"&gt;https://github.com/vinayguda/nousybooks-hackathon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built for the Gemini Live Agent Challenge. Built for my daughter. Built for every parent who wants to give their child a story where they're the hero.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with Google AI Studio, Antigravity, Gemini API, Google Cloud Run, and Claude Code.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By Vinay Guda&lt;/em&gt;&lt;/p&gt;

</description>
      <category>geminiliveagentchallenge</category>
      <category>geminiapi</category>
    </item>
  </channel>
</rss>
