<?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: BV Nagi Reddy</title>
    <description>The latest articles on DEV Community by BV Nagi Reddy (@bv_niteesh_be2c0eccc9a5fd).</description>
    <link>https://dev.to/bv_niteesh_be2c0eccc9a5fd</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1468796%2F5d4626bb-2a69-4362-b996-05a128ef1ee7.jpeg</url>
      <title>DEV Community: BV Nagi Reddy</title>
      <link>https://dev.to/bv_niteesh_be2c0eccc9a5fd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bv_niteesh_be2c0eccc9a5fd"/>
    <language>en</language>
    <item>
      <title>Kindy: A friendly voice companion that helps you find ways to give back</title>
      <dc:creator>BV Nagi Reddy</dc:creator>
      <pubDate>Mon, 07 Sep 2026 01:50:37 +0000</pubDate>
      <link>https://dev.to/bv_niteesh_be2c0eccc9a5fd/kindy-a-friendly-voice-companion-that-helps-you-find-ways-to-give-back-294j</link>
      <guid>https://dev.to/bv_niteesh_be2c0eccc9a5fd/kindy-a-friendly-voice-companion-that-helps-you-find-ways-to-give-back-294j</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-09-03"&gt;Weekend Challenge: Generosity Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Whenever I look at charity websites, almost all of them immediately ask for money. But what if you're a student or just tight on cash right now? &lt;/p&gt;

&lt;p&gt;It often makes people feel guilty or like they have nothing to offer.&lt;br&gt;
The truth is, generosity isn't just about writing a check. You can give your time, your skills, your advice, or just a listening ear.&lt;/p&gt;

&lt;p&gt;For this challenge, I built &lt;strong&gt;Kindy&lt;/strong&gt; — an interactive 2D animated avatar you can actually talk to. &lt;/p&gt;

&lt;p&gt;Instead of filling out a boring form, you have a quick voice chat with Kindy. You tell it what you like doing, what skills you have, or how much free time you have this weekend. Kindy then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reacts with funny, exaggerated emotions (crying when you say you're tired, hyping you up when you doubt yourself, and celebrating your ideas).&lt;/li&gt;
&lt;li&gt;Gives you 6 simple, realistic ways you can make an impact.&lt;/li&gt;
&lt;li&gt;Uses Google Maps to look up real community centers, food banks, and volunteer spots near your city.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Demo
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiira8emha1gqah3cb5qz.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiira8emha1gqah3cb5qz.png" alt="Kindy Avatar Studio interface showing an animated human-like avatar and voice interaction controls" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Demo&lt;/strong&gt;: &lt;a href="https://kindy-avatar-studio-619077244859.us-central1.run.app/" rel="noopener noreferrer"&gt;Kindy Avatar Studio&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The application is deployed on Google Cloud Run. Since Cloud Run may scale down when there is no activity, the first request can take a few seconds to start the application. Please wait a few seconds if the page takes time to load.&lt;/p&gt;

&lt;p&gt;Once the application opens, you can enter any random/demo data you like. &lt;strong&gt;This entered information is stored only in your browser.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The avatar supports direct speech interaction. Simply open the URL and start speaking—you don't need to configure or think about anything else.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;You can find the full code on GitHub:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Niteesh57" rel="noopener noreferrer"&gt;
        Niteesh57
      &lt;/a&gt; / &lt;a href="https://github.com/Niteesh57/Kindy" rel="noopener noreferrer"&gt;
        Kindy
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Understand how you're feeling and what you have to offer, then help you find a meaningful way to help someone else.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/Niteesh57/Kindy/main/assets/cover.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FNiteesh57%2FKindy%2Fmain%2Fassets%2Fcover.png" alt="Kindy - The Generosity Companion" width="100%"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Kindy — The Generosity Companion 🎨✨&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="https://kindy-avatar-studio-619077244859.us-central1.run.app" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/3a7cdd61a9af117f9408f517d67f7db7263954092240a8eae3ea4ee8b9befeee/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c69766525323044656d6f2d436c6f756425323052756e2d3432383546343f6c6f676f3d676f6f676c652d636c6f7564266c6f676f436f6c6f723d7768697465" alt="Live Demo"&gt;&lt;/a&gt;
&lt;a href="https://youtu.be/jI_YRfRIlqo" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a041cd9151923e13718e93a17a960170504b14d4b92eb7b118b2d1e39f8b8e1b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f596f75547562652d566964656f25323044656d6f2d7265643f6c6f676f3d796f7574756265266c6f676f436f6c6f723d7768697465" alt="YouTube Demo"&gt;&lt;/a&gt;
&lt;a href="https://vitejs.dev/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/27653f82fb5f70c6b7d07ccf44cffe7030b6cd5d2b09d4568878ed55733ba72c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46726f6e74656e642d56697465253230253242253230526561637425323031382d3634364346463f6c6f676f3d76697465266c6f676f436f6c6f723d7768697465" alt="Vite"&gt;&lt;/a&gt;
&lt;a href="https://nodejs.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c3a7a02868fe4c3fa08b117edafbef9cde09144b10e326ece33d7b7756063b4f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4261636b656e642d4e6f64652e6a73253230253242253230457870726573732d3333393933333f6c6f676f3d6e6f64652e6a73266c6f676f436f6c6f723d7768697465" alt="Node.js"&gt;&lt;/a&gt;
&lt;a href="https://cloud.google.com/vertex-ai" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/3f4413560f7099b824e1958b9ecfecb131d6fd65a5cf25bab695b002267a39ce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41492532304d6f64656c2d47656d696e69253230332e38253230466c6173682d4646364630303f6c6f676f3d676f6f676c65266c6f676f436f6c6f723d7768697465" alt="Gemini Flash"&gt;&lt;/a&gt;
&lt;a href="https://cloud.google.com/vertex-ai" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/f178659040294cb8e1688b4ebe09737cd54408d3f892b896fbbcd0d6a480f156/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f566f6963652d47656d696e69253230332e31253230466c6173682532305454532d3030414343313f6c6f676f3d676f6f676c65266c6f676f436f6c6f723d7768697465" alt="Gemini TTS"&gt;&lt;/a&gt;
&lt;a href="https://cloud.google.com/run" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c5ddfcb59f9ff494e8275ccc617c8c53cd1ac56c47c5ff56695326cb5772998d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4465706c6f796d656e742d446f636b6572253230253242253230436c6f756425323052756e2d3234393645443f6c6f676f3d646f636b6572266c6f676f436f6c6f723d7768697465" alt="Docker"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kindy&lt;/strong&gt; is a real-time, voice-driven AI companion and avatar studio. Powered by &lt;strong&gt;Google Gemini 3.8 Flash&lt;/strong&gt; and &lt;strong&gt;Gemini 3.1 Flash TTS&lt;/strong&gt;, it brings a stylized 2D cartoon avatar to life through audio-driven lip sync, multi-emotion acting, spatial hand gestures, Google Search &amp;amp; Maps grounding, and a 6-card interactive action HUD.&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌟 Live Deployment &amp;amp; Demo Video&lt;/h2&gt;
&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;Live Web Application&lt;/strong&gt;: &lt;strong&gt;&lt;a href="https://kindy-avatar-studio-619077244859.us-central1.run.app" rel="nofollow noopener noreferrer"&gt;https://kindy-avatar-studio-619077244859.us-central1.run.app&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🎬 &lt;strong&gt;Video Walkthrough (YouTube)&lt;/strong&gt;: &lt;strong&gt;&lt;a href="https://youtu.be/jI_YRfRIlqo" rel="nofollow noopener noreferrer"&gt;Watch the Demo Video&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://youtu.be/jI_YRfRIlqo" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c503476a0b8855c02e5c73b8617106255605a988feb15e615f033e9407c61e65/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f6a495f59526652496c716f2f6d617872657364656661756c742e6a7067" alt="Watch Kindy in Action"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;💡 Core Purpose &amp;amp; Persona&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;The Generosity Companion &amp;amp; Comic Well-Wisher&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Kindy operates on a simple philosophy:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Everyone has something meaningful to give."&lt;/strong&gt;
Whether it is 20 minutes of spare time, professional skills, tutoring, attention, physical presence, surplus items, or mentorship.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;The High-Drama Comic Well-Wisher&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Kindy is not a monotone chatbot. It embodies a &lt;strong&gt;passionate comic well-wisher and benchmark mentor&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Benchmark Face (&lt;code&gt;[serious, hands_up]&lt;/code&gt;)&lt;/strong&gt;: When users doubt themselves…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Niteesh57/Kindy" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;strong&gt;Tech stack:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: React, Vite, and custom SVG animations for avatar expressions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice &amp;amp; Audio&lt;/strong&gt;: Web Audio API and browser's &lt;code&gt;SpeechRecognition&lt;/code&gt; for automatic voice detection (so you can just talk naturally).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Node.js + Express with WebSockets for real-time streaming.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI&lt;/strong&gt;: Google GenAI SDK with Gemini 3.8 Flash and Gemini 3.1 TTS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Multi-stage Dockerfile ready for Cloud Run.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;I wanted Kindy to feel like a real conversation with an encouraging friend, not a dry chatbot:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Avatar &amp;amp; Expressions&lt;/strong&gt;:
I built a custom face overlay in React with different SVG states (crying eyes, sweat drops, anime-style anger veins, star eyes, and waving hands). The backend sends emotion tags like &lt;code&gt;[crying]&lt;/code&gt; or &lt;code&gt;[excited]&lt;/code&gt; alongside the text, and the frontend switches expressions as words are spoken.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-Time Voice &amp;amp; WebSockets&lt;/strong&gt;:
Instead of clicking buttons for every turn, I used browser's built-in SpeechRecognition to detect when you start and stop talking. Your voice goes through a WebSocket to the Node server, which streams both text and audio back simultaneously so there is very little lag.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grounding in the Real World&lt;/strong&gt;:
General advice like "go volunteer" isn't very helpful. By connecting Google Search and Google Maps tools to Gemini, Kindy can check where you live and suggest actual local libraries, youth mentoring groups, or neighborhood kitchens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple Docker Setup&lt;/strong&gt;:
I wrapped the React build and the Node server together in one Docker container so anyone can run it locally with &lt;code&gt;docker compose up&lt;/code&gt; or deploy it to Google Cloud Run in one command.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Best Use of Google AI
&lt;/h3&gt;

&lt;p&gt;Kindy relies on Google AI for its brain and voice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemini 3.8 Flash&lt;/strong&gt;: Handles the conversation, keeps track of the user's profile, and outputs real-time emotion cues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini 3.1 Flash TTS&lt;/strong&gt;: Generates the expressive voice output so Kindy can speak out loud.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Search &amp;amp; Google Maps Tools&lt;/strong&gt;: Powers the local search so Kindy recommends verified places and groups in your city.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google GenAI SDK (&lt;code&gt;@google/genai&lt;/code&gt;)&lt;/strong&gt;: Connects everything cleanly in Node.js.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Lessons Learned
&lt;/h3&gt;

&lt;p&gt;Building this over the weekend showed me that giving back feels much more approachable when someone helps you break it down into small, doable steps. Even spending 20 minutes sharing advice with someone starting out in your field counts as generosity.&lt;/p&gt;

&lt;p&gt;Thanks for checking out Kindy!&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>gemini</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
