Building EchoMood was inspired by the realization that self-reflection and emotional expression are still “text-first” for most digital tools—even in the AI era. I’ve always wanted something that actually talks back, in the tone I need at that moment: a hype man on tough days, a gentle friend when I’m low, or just some playful sass when life is too serious. The rise of ElevenLabs’ voice AI and Bolt’s no-code platform made it suddenly possible for an indie builder to prototype this in days, not months. This project was also driven by my own routine: daily journaling, moments of frustration, and wanting a simple, voice-powered “reset button” that would echo my mood—literally.
What I learned I learned how much more engaging (and sometimes confronting!) it is to hear your own feelings echoed back than just reading them. I got a deep dive into:
- Bolt.new as a true rapid prototyping platform for mobile apps (React Native)
- Integrating ElevenLabs Conversational AI to generate expressive, real-time voice
- Using GPT-4o to detect emotions and rewrite replies in different tones/personas
- The importance of micro-interactions—every detail from reply timing to persona names adds to the “companionship” illusion
- I also learned that building a voice-first experience means thinking about tone, pacing, and even silence as “UI elements.”
How I built it
- Frontend: Built entirely on Bolt.new (React Native)—using Bolt’s rapid prompt-driven builder for all core flows: onboarding, journal input, tone selection, and audio playback.
- Voice Layer: Plugged ElevenLabs API for voice synthesis. Each persona is a distinct ElevenLabs voice style, with emotion carried through tone and inflection.
- AI/Emotion Engine: Used GPT-4o API to analyze user input, detect core emotion, and rewrite a persona-matched reply (e.g., “Supportive”, “Motivator”, “Brutally Honest”, “Zen”, “Sarcastic”).
- Backend: Supabase for storing user profiles, journal history, and managing credit usage.
- Flow: The user just types or says their mood, picks a tone, and gets an instant “echoed” voice reply. Everything is asynchronous and mobile-native, designed for quick daily check-ins.
Challenges Faced
The biggest challenge was my original plan: building a fully native mobile experience with Bolt.new, integrating RevenueCat for paywalls and in-app purchases. Despite Bolt’s rapid prototyping power, I ran into roadblocks when trying to generate and test native app builds.
Native Build Hurdles: Getting a true native build (for iOS/Android) working consistently just wasn’t possible within the hackathon’s timeline. Issues ranged from build errors and deployment delays to compatibility quirks—especially when it came to integrating third-party SDKs like RevenueCat.
RevenueCat Integration Blocked: Since RevenueCat’s subscription features depend on native mobile SDKs, I had to drop that part of the original plan. No native build meant no in-app paywalls or unlockable content in the traditional app store sense.
Pivot to Web Mobile: Rather than risk missing submission, I quickly pivoted: EchoMood became a mobile-optimized web app instead of a native app. This meant sacrificing some native capabilities, but it allowed me to ship a fully functional, widely accessible product by deadline.
Adapting Monetization: Without RevenueCat, I had to rethink premium features and credit gating, focusing on a lighter web experience and planning to revisit true in-app purchases later, once a stable native build is possible.
This pivot was tough but ultimately necessary. It forced me to simplify the experience, focus on core voice interactions, and prove the concept works in the browser—still leveraging Bolt, GPT-4o, and ElevenLabs for real-time, personalized AI voice feedback.
What makes it unique EchoMood isn’t just a journaling app—it’s “your vibe, echoed back, your way.” The project stands out for: Letting users choose how they want to be talked to, not just what they want to say Voice-powered emotional feedback, tailored in real time, with multiple expressive personas
Built With
- elevenlabs
- netlify
- openai
- react-native
- supabase
Log in or sign up for Devpost to join the conversation.