<?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: Ranjan Mishra</title>
    <description>The latest articles on DEV Community by Ranjan Mishra (@ranjanmishradev).</description>
    <link>https://dev.to/ranjanmishradev</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%2F4155228%2F4a7f457a-d928-419e-ad33-097992da5bbb.jpg</url>
      <title>DEV Community: Ranjan Mishra</title>
      <link>https://dev.to/ranjanmishradev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ranjanmishradev"/>
    <language>en</language>
    <item>
      <title>Anubhav: I Built a Friend for My Grandmother, One Button, One Voice, One Very Happy Grandparent.</title>
      <dc:creator>Ranjan Mishra</dc:creator>
      <pubDate>Sun, 04 Oct 2026 19:24:23 +0000</pubDate>
      <link>https://dev.to/ranjanmishradev/anubhav-i-built-a-friend-for-my-grandmother-one-button-one-voice-one-very-happy-grandparent-2j9c</link>
      <guid>https://dev.to/ranjanmishradev/anubhav-i-built-a-friend-for-my-grandmother-one-button-one-voice-one-very-happy-grandparent-2j9c</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built Anubhav for my grandmother. Like many older adults, she values conversation and having a patient companion to help her remember daily details—like when her grandson is visiting, or what she needs to do that morning.&lt;/p&gt;

&lt;p&gt;But modern technology actively works against her in three ways:&lt;/p&gt;

&lt;p&gt;Complicated screens: She cannot read small text, navigate drop-down menus, or type on tiny glass keyboards.&lt;/p&gt;

&lt;p&gt;The language barrier: She thinks and speaks most comfortably in her native Hindi, but most digital assistants feel robotic or deeply English-first.&lt;/p&gt;

&lt;p&gt;The privacy problem: No family simply wasn't comfortable putting a commercial smart speaker in her home that uploads her personal health notes, daily habits, and voice recordings to a big tech company's advertising servers.&lt;/p&gt;

&lt;p&gt;Anubhav is a voice-first, entirely private companion that turns any tablet or phone into a patient listener. There is nothing for her to learn. When she opens it, there are no menus or settings—just one massive, high-contrast button that says "Tap to talk."&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Live: &lt;a href="https://anubhav-c18t.onrender.com/%20%F0%9F%99%8F" rel="noopener noreferrer"&gt;anubhav-c18t.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Note: Because this is hosted on Render's free tier, the server may take about 50 seconds to wake up on your first visit.)&lt;/p&gt;

&lt;p&gt;Watch:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/eBSgSMBw4aU" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&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/ranjan-mishra-dev" rel="noopener noreferrer"&gt;
        ranjan-mishra-dev
      &lt;/a&gt; / &lt;a href="https://github.com/ranjan-mishra-dev/Anubhav-Ai-companion-for-elder-people" rel="noopener noreferrer"&gt;
        Anubhav-Ai-companion-for-elder-people
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Anubhav (अनुभव) — Voice-First AI Companion&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Your voice, their memory. Completely private."&lt;/em&gt;&lt;br&gt;
&lt;em&gt;आपकी आवाज़, उनकी यादें। पूरी तरह से निजी।&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=""&gt;&lt;img src="https://camo.githubusercontent.com/582648a43b42648991084cdee6e814fade77f6d3e06072aacb1a3a62fc632163/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4861636b6174686f6e2532305468656d652d4275696c64253230666f7225323061253230467269656e642d707572706c652e737667" alt="Theme"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img src="https://camo.githubusercontent.com/f3135ef7f9f77141f45c7803c1dc9280cbe97f325bc88769050de467eb9ac91f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4163636573736962696c6974792d5743414725323041414125323028313030253246313030292d656d6572616c642e737667" alt="Accessibility"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img src="https://camo.githubusercontent.com/2a3ba8f5dacd6532e4f318d64fb485ceaa657d4e9c893357ae5092749f793970/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f70656e2d2d57656967687425323041492d47656d6d61253230332532302532462532304f6c6c616d612d626c75652e737667" alt="Model"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img src="https://camo.githubusercontent.com/9e04966f6a646b1cd3fc05c6ea88a80211c6f20b186b584c2c515ef9c411ad2c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d616d6265722e737667" alt="License"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://render.com/deploy?repo=https://github.com/ranjan-mishra-dev/Anubhav-Ai-companion-for-elder-people" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c3053e93bc9f0a2cd84050a5ff9f07cc5e639621a72e50dce48781f4a38f10e2/68747470733a2f2f72656e6465722e636f6d2f696d616765732f6465706c6f792d746f2d72656e6465722d627574746f6e2e737667" alt="Deploy to Render"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;👵 The Story: Built for My Grandmother&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;I built &lt;strong&gt;Anubhav&lt;/strong&gt; for my grandmother (&lt;em&gt;Dadi ji&lt;/em&gt;). Over the last decade, technology raced ahead with complex touchscreens, cryptic icons, nested settings, and sudden popups that left her feeling alienated, anxious, and hesitant to touch modern devices. When my grandfather passed away, her house grew quieter, and while she craved conversation and connection, existing "smart assistants" frustrated her with rigid robotic commands, rapid-fire English, and privacy-invading cloud listening.&lt;/p&gt;
&lt;p&gt;Anubhav was created out of deep personal love to bridge this generational divide. It is a single-button, voice-first companion designed for elders who speak &lt;strong&gt;Hindi&lt;/strong&gt; and &lt;strong&gt;English&lt;/strong&gt;. There are no passwords to remember, no menus to navigate, and no tech jargon. Most importantly, it gives families total ownership over their elders' precious…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ranjan-mishra-dev/Anubhav-Ai-companion-for-elder-people" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Anubhav is open-source and MIT-licensed. If you want to deploy a private voice companion for your own grandparents or family members, the repository contains everything you need:&lt;/p&gt;

&lt;p&gt;/client: The high-contrast, accessible React.js interface featuring the giant "Tap to talk" button, language toggle, and speech states.&lt;/p&gt;

&lt;p&gt;/server: The Node.js and Express backend handling the audio streams, ElevenLabs text-to-speech integration, and Backboard memory routing.&lt;/p&gt;

&lt;p&gt;render.yaml: The 1-click single-tenant deployment blueprint so family members can deploy their own isolated instance with zero data sharing.&lt;/p&gt;

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

&lt;p&gt;Anubhav is built around a hybrid open-source architecture that keeps an elderly user's personal conversations entirely private while delivering a sub-second, voice-first experience.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────────┐
│                    Anubhav   ARCHITECTURE                   │
│                                                             │
│  [Grandparent's Browser] ──(Audio Blob)──▶ [Express Backend]│
│                                                   │         │
│          ┌────────────────────────────────────────┘         │
│          ▼                                                  │
│  [Backboard SDK] ──(Retrieves Persistent Memory Context)    │
│          │                                                  │
│          ▼                                                  │
│  [Gemma 3 4B Model] (Ollama Local / Cloud Open-Weight)       │
│          │                                                  │
│          ▼                                                  │
│  [ElevenLabs TTS] ──(Streams Warm Marathi Voice)──▶ [Client]│
└─────────────────────────────────────────────────────────────┘

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is how the core pieces come together:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Open-Weight Core (Gemma 3 4B)
&lt;/h3&gt;

&lt;p&gt;At the heart of Anubhav is Google's &lt;strong&gt;Gemma 3 4B&lt;/strong&gt; open-weight model.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;At home:&lt;/strong&gt; It runs locally through &lt;strong&gt;Ollama&lt;/strong&gt; on a standard machine. The family owns the weights, the model runs completely offline if needed, and there are no per-token API charges or background telemetry logs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In the public demo:&lt;/strong&gt; It points to a cloud-hosted open-weight endpoint so judges can test the application instantly without installing local runtimes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System Prompt Guardrails:&lt;/strong&gt; The model is bound by a strict system prompt designed for senior care: short, patient sentences (maximum 3 per reply), no technical jargon, no emojis, and strict boundaries never to give medical advice.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Sovereign Memory with Backboard
&lt;/h3&gt;

&lt;p&gt;Standard LLMs suffer from amnesia—they forget everything the moment a chat session ends. To solve this, Anubhav uses &lt;strong&gt;Backboard&lt;/strong&gt; as an open agent harness and long-term memory engine.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;How it works:&lt;/strong&gt; When my grandmother mentions that her granddaughter Aarya is visiting on Friday, the backend stores that fact as a secure memory vector via Backboard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-Session Recall:&lt;/strong&gt; When she opens a brand-new browser session days later and asks about Aarya, the backend queries Backboard's semantic search, injects the relevant context into the prompt, and Gemma answers accurately by name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why it matters:&lt;/strong&gt; Unlike closed AI assistants that store user logs on corporate ad servers to train future models, Backboard allows the family to own, inspect, and delete memory records at will.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Voice &amp;amp; Language Pipeline (ElevenLabs)
&lt;/h3&gt;

&lt;p&gt;Building an accessible app for seniors means throwing away keyboards and text boxes. Anubhav relies on an end-to-end voice loop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Speech-to-Text (STT):&lt;/strong&gt; Audio recorded via the browser's &lt;code&gt;MediaRecorder&lt;/code&gt; API is sent to the backend and processed using ElevenLabs, passing language hints (such as &lt;code&gt;mr&lt;/code&gt; for Marathi or &lt;code&gt;en&lt;/code&gt; for English) to ensure accurate transcription.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text-to-Speech (TTS):&lt;/strong&gt; Gemma's text output is streamed into ElevenLabs' multilingual TTS engine, translating text back into a warm, natural human voice that plays automatically on the user's screen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Complex Reasoning Routing (Thinking Machines Tinker API)
&lt;/h3&gt;

&lt;p&gt;While Gemma 3 4B handles 95% of casual, everyday conversation locally with minimal latency, some queries require deeper context or emotional sensitivity.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When the backend detects a complex multi-step request, it routes the prompt through the &lt;strong&gt;Thinking Machines Tinker API&lt;/strong&gt; to leverage heavy-duty open-weight reasoning.&lt;/li&gt;
&lt;li&gt;To ensure zero downtime, the system includes an 8-second timeout safety net: if the Tinker API lags or fails, it silently and instantly falls back to local Gemma. The conversation never breaks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Single-Tenant Deployment (&lt;code&gt;render.yaml&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Privacy requires that I do not host my grandmother's data on &lt;em&gt;my&lt;/em&gt; server. To solve this, I wrote a &lt;code&gt;render.yaml&lt;/code&gt; blueprint.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When a family member sets up Anubhav, they click a &lt;strong&gt;"Deploy to Render"&lt;/strong&gt; button, which provisions an isolated web service and a private PostgreSQL database entirely inside &lt;strong&gt;their own&lt;/strong&gt; Render account.&lt;/li&gt;
&lt;li&gt;Using &lt;code&gt;sync: false&lt;/code&gt;, Render prompts them to input their own API keys. I never see their data, their database logs, or their voice models.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;It was the only way to build something I could safely give to my grandmother. Here is what open weights and open-source tooling made possible that a closed, proprietary API never could:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Grandparents' conversations are not training data
&lt;/h3&gt;

&lt;p&gt;When my grandmother talks to Anubhav, she shares details about her day, her family, and her comfort level. With a closed commercial API, every audio stream and text prompt flows directly into a corporate server to train future models or build ad profiles.&lt;/p&gt;

&lt;p&gt;With open-weight models like &lt;strong&gt;Gemma&lt;/strong&gt;, we break that loop. At home, the model runs locally on Ollama; in the cloud, it runs on an isolated single-tenant Render instance. The data stays inside our family's boundary. You cannot offer true privacy with a black-box corporate API.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. A gift should never come with a subscription bill or expiration date
&lt;/h3&gt;

&lt;p&gt;If you build a tool for an aging family member using a closed API, you are tied to that company's whims. If they double their pricing, deprecate an endpoint, or decide that regional languages aren't profitable enough to support, the app breaks, and your grandparent loses their companion.&lt;/p&gt;

&lt;p&gt;Open weights mean permanence. The model belongs to us, the code is MIT-licensed, and the system will keep working regardless of what happens in Silicon Valley boardrooms.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Safety guardrails require total transparency
&lt;/h3&gt;

&lt;p&gt;When building an AI companion for elderly users, safety is non-negotiable. A closed model might hallucinate dangerous medical advice or speak in complex, overwhelming paragraphs.&lt;/p&gt;

&lt;p&gt;Because we used an open-weight architecture, we could tightly couple Gemma with strict local system prompts—forcing it to speak in short, patient sentences, never give medical dosing, and gracefully suggest calling family instead. We didn't have to guess what the model was doing; we could inspect and control its behavior at every step.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;I built Anubhav with &lt;strong&gt;Google Antigravity&lt;/strong&gt; acting as my AI pair-programmer. I defined the product vision, accessibility constraints, and privacy architecture (prioritizing senior-friendly UI, zero corporate data collection, and open-weight models), while the agent handled the heavy lifting of scaffolding the React/Node stack, wiring up the Backboard memory SDK, and structuring the Express API pipeline.&lt;/p&gt;

&lt;p&gt;You can view the complete, curated development session and prompt history via DevRelay below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/agent_sessions/anubhav-building-a-voice-first-accessible-ai-companion-for-grandparents-ctv9c0"&gt;🔗 View VoiceMate Agent Session on DevRelay&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; Powered by Google's open-weight Gemma 3 4B model, running locally via Ollama for absolute privacy and via cloud-hosted open-weight endpoints for the public demo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render:&lt;/strong&gt; Features a custom &lt;code&gt;render.yaml&lt;/code&gt; blueprint enabling a 1-click, single-tenant deployment where family members host their own isolated web service and private database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backboard:&lt;/strong&gt; Utilized as the sovereign agent harness and long-term memory layer, allowing Anubhav to retain family names, medical routines, and personal preferences securely across browser sessions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thinking Machines (Tinker):&lt;/strong&gt; Integrated to handle complex reasoning tasks and specialized empathetic dialogue routing with robust timeout safety nets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ElevenLabs:&lt;/strong&gt; Powers the core voice pipeline, providing high-fidelity speech-to-text transcription and natural text-to-speech audio streaming for a zero-friction, human-like conversational experience.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
