Inspiration

Watching our own grandparents and aging family members navigate loneliness, medication management challenges, and the slow fading of precious memories inspired us to build Everly. . Yet they're comfortable with the phone, a technology they've used their entire lives.

The problem is clear: families are spread across cities and countries, making daily check-ins impossible. Caregivers worry about medication adherence, mood changes, and safety concerns. Meanwhile, the stories and wisdom of our elders are being lost before we can capture them.

We asked: What if AI could bridge this gap? What if we could create a companion that calls seniors on their regular phone, speaks naturally, remembers their stories, and keeps families informed—all while preserving dignity and independence?

What it does

Everly is an AI companion that makes phone calls to aging loved ones, providing three core services:

  1. Companionship & Conversation — Natural, empathetic AI conversations that adapt to each elder's personality, interests, and life story. The AI remembers previous conversations and builds rapport over time.
  2. Medication Reminders — Gentle, non-intrusive reminders about medications, taken at the right time and in the right context of a friendly conversation. The system tracks adherence and alerts caregivers if medications are missed.
  3. Memory Capture — During conversations, the AI naturally elicits and captures life stories, family history, and personal memories. These are stored in a searchable archive that families can access, creating a living memoir that grows with each call. After each call, caregivers receive a comprehensive summary via the dashboard:
  4. Mood insights — Sentiment analysis to detect loneliness, sadness, or concerns
  5. Medication status — Confirmation of whether medications were taken
  6. Health flags — Automatic detection of mentions of pain, falls, dizziness, or other concerns
  7. New memories — Extracted stories and anecdotes from the conversation
  8. Full transcript — Complete conversation record for transparency The system supports both in-browser demo calls (for testing and demos) and real phone calls to landlines or cell phones, making it accessible to seniors regardless of their tech comfort level. --- ## How we built it

Everly is built as a modern full-stack web application with a focus on real-time AI voice interactions:

Frontend:

  • Next.js 16 with React 19 and TypeScript for a type-safe, performant UI
  • Tailwind CSS and Radix UI components for a beautiful, accessible interface
  • VAPI Web SDK (@vapi-ai/web) for in-browser voice calls with real-time audio streaming
  • React Context API for managing call state across the application

Backend & Infrastructure:

  • Next.js API Routes for server-side logic (call initiation, webhook handling, data management)
  • Supabase as our PostgreSQL database and backend-as-a-service, storing:
    • Elder profiles (name, age, biography, medications, family members, personality notes)
    • Call logs (transcripts, summaries, mood scores, duration)
    • Extracted memories (categorized and sentiment-analyzed)
  • VAPI for AI voice infrastructure:
    • Assistant configuration with dynamic variables ({{elder_name}}, {{medications}}, etc.)
    • Anthropic Claude as the LLM for natural conversation
    • ElevenLabs for realistic, empathetic voice synthesis
    • Webhook integration for real-time call event processing AI & Voice Pipeline:
  • Caregiver creates an elder profile with personal details, medications, and life story
  • When a call is initiated, VAPI receives the elder's profile data as variables
  • The AI assistant (Claude) uses these variables to personalize the conversation
  • ElevenLabs generates natural speech in real-time
  • The conversation is transcribed and analyzed
  • Webhooks send call events (start, end, transcript) to our Next.js API
  • Our webhook handler extracts insights: mood scores, medication confirmations, concerns, and memories
  • Data is stored in Supabase and displayed in the caregiver dashboard

Key Technical Decisions:

  • Dual call modes: In-browser calls for demos/testing, outbound phone calls for production
  • Variable-based personalization: Each elder's profile dynamically shapes the AI's conversation style
  • Webhook-driven architecture: Asynchronous processing of call data ensures real-time updates without blocking
  • Type-safe data layer: TypeScript interfaces ensure data consistency across the stack

Challenges we ran into

  1. Audio connectivity in browser calls — Initially, calls would start in VAPI but no audio would play in the browser. We discovered this was due to browser autoplay policies, microphone permissions, and muted tabs. We added comprehensive error handling and user guidance to help debug these issues.

  2. Webhook reliability — Ensuring webhook events were processed correctly, especially when calls ended, required careful handling of async operations and error cases. We implemented retry logic and proper error boundaries.

  3. Memory extraction from unstructured conversations — Getting the AI to naturally extract meaningful memories from free-flowing conversations was challenging. We refined the system prompts and post-processing logic to identify and categorize memories effectively.

  4. Medication reminder timing — Balancing the need to remind about medications without making the conversation feel clinical or robotic. We designed the prompts to weave reminders naturally into friendly conversation.

  5. Variable substitution in VAPI — Ensuring all elder profile data (medications as JSON, family members, etc.) was properly formatted and passed to VAPI's variable system required careful data transformation.

  6. Real-time state management — Managing call state (connecting, active, ended) across React components while handling VAPI SDK events required careful state synchronization and cleanup.


Accomplishments that we're proud of

  1. Natural conversation flow — The AI feels genuinely empathetic and conversational, not robotic. It adapts to each elder's personality and remembers context from previous calls.

  2. Dual deployment modes — Successfully implementing both in-browser calls (for demos) and real phone calls (for production) gives us flexibility for different use cases.

  3. Comprehensive caregiver insights — We're proud of the depth of information we extract: mood analysis, medication tracking, concern detection, and memory preservation—all from a single conversation.

  4. Accessibility-first design — The system works on regular phones, making it accessible to seniors who may not have smartphones or be comfortable with apps.

  5. Type-safe architecture — Building the entire stack with TypeScript ensures reliability and makes future development easier.

  6. Real-time webhook processing — Our webhook system reliably processes call events and extracts insights, creating a seamless experience for caregivers.


What we learned

  1. Voice AI is complex — Integrating real-time voice AI involves many moving parts: audio streaming, transcription, LLM inference, voice synthesis, and webhook processing. Each component can fail in subtle ways.

  2. Browser audio permissions are strict — Modern browsers have strict autoplay and microphone policies. We learned to handle these gracefully and provide clear user guidance.

  3. Context matters in AI conversations — Simply passing data to an LLM isn't enough. We learned to structure prompts and variables carefully so the AI can use elder profiles meaningfully in conversation.

  4. Webhooks require robust error handling — Webhook endpoints need to be idempotent, handle failures gracefully, and process events asynchronously to avoid timeouts.

  5. Privacy and dignity are paramount — When building for seniors, every design decision must prioritize dignity, privacy, and independence. The AI should feel like a friend, not a monitor.

  6. Real-time state management is tricky — Managing call state across React components while handling external SDK events requires careful architecture to avoid race conditions and memory leaks.

  7. Testing voice AI is challenging — Unlike traditional web apps, voice interactions are harder to test automatically. We learned the importance of manual testing and user feedback.


What's next for Everly

  1. Scheduled calls — Implement automatic scheduling so calls happen at optimal times (e.g., after breakfast for medication reminders, evening for companionship).

  2. Family notifications — Send SMS or email alerts to caregivers when concerns are detected (pain, falls, missed medications) or when new memories are captured.

  3. Memory book generation — Automatically compile captured memories into beautiful, shareable memory books that families can print or share digitally.

  4. Multi-language support — Expand to support conversations in multiple languages, making Everly accessible to immigrant families and diverse communities.

  5. Integration with health systems — Connect with electronic health records (EHRs) to automatically sync medication lists and health data.

  6. Voice customization — Allow families to choose or even clone voices that feel familiar and comforting to each elder.

  7. Advanced analytics — Build trend analysis over time: mood patterns, medication adherence trends, and memory themes that emerge across conversations.

  8. Mobile app for caregivers — Create native mobile apps for iOS and Android so caregivers can check in and receive notifications on the go.

  9. HIPAA compliance — Pursue HIPAA compliance to make Everly suitable for healthcare partnerships and insurance coverage.


Built With

Share this project:

Updates