Inspiration

When my head is loud, typing into a chatbot feels mundane, but saying it out loud works. Most wellbeing apps are content libraries wrapped in streaks, badges and reminders. I wanted the opposite: a calm presence you can talk to, that shifts with the conversation and is easy to close. I built it to overcome my own depression and mental struggles - and to give others in similar situations something to turn to.

What it does

Entrain Grounded is a voice-first companion for everyday stress, racing thoughts and winding down. You talk (or type) and it answers in a warm, natural voice, in real time.

  • A living space: a live ink-in-water visual shifts with the emotional register of the conversation, steadier when you're steady, denser when things get heavy, softening as you settle. A responsive meditative soundscape runs beneath it.
  • Practical tools: grounding exercises, paced breathing, guided meditations, and reflection summaries you can look back on.
  • Sleep: original sleep stories with a 20/45/60/90-minute picker. The story trails off and an ambient bed carries the rest of the timer.
  • Quiet by design: no streaks, no gamification, no engagement tricks. Conversations aren't sold or used to train models, and voice isn't kept after transcription.

It's a wellness companion, not therapy or a crisis service. It routes crisis signals to human support lines.

How we built it

I built it solo with Claude Code as my main implementation tool.

  • App: Expo / React Native with TypeScript. Zustand handles state. The ink visual runs on react-native-skia and Reanimated.
  • Brain: Claude (Sonnet 4.6) as the companion. An orchestrator classifies the conversational state and drives the companion's behavior, the visual and the audio.
  • Voice: OpenAI speech-to-text and text-to-speech.
  • Monetization: RevenueCat handles subscriptions and entitlements.

Challenges we ran into

  • Ambient pad death: CPU not being able to handle custom skia visuals and continuous ambient pad - killing the audio.
  • AI voice consistency: OpenAI TTS not being consistent in prose and other voice characteristics.
  • Device overheating: the skia ink visual, audio and streaming speech all run at once.

Accomplishments that we're proud of

  • A shipped, working closed loop: speech, a live generative visual and responsive sound moving together in real time.
  • An ink animation I iterated through several rejected directions (glowing orb, particle fog, flat translucent) until it read like real ink.
  • Ten original, safety-checked sleep stories.
  • Doing all of it, including the legal docs, entity setup and store metadata, as one person.

What we learned

Trust comes from honesty about limits: it's an AI, it's not therapy.

What's next for Entrain Grounded - Talk, Reflect, Unwind, Sleep

Finding the user base and bringing emotional well-being to as many people as possible.

Built With

  • anthropic
  • apple
  • claude
  • ios
  • openai
Share this project:

Updates

Submission history