Inspiration
We've all been there—lying awake at 3 AM replaying a conversation, wishing we had said something different. That moment in a meeting when you stayed silent. The words you never got to say to someone you lost. The argument where anger took over and the real message got buried.
The problem isn't that we can't communicate—it's that we often can't communicate in the moment. Emotions are messy. Timing is wrong. Stakes feel too high. So we carry these unsaid thoughts, and they weigh on us.
UNSAID was born from a simple question: What if there was a safe space to process what you couldn't say, without the pressure of sending it or the judgment of others?
We combined two powerful concepts:
- UNSAID - The silent, reflective space for thoughts you're not ready to voice
- AFTERTALK - The guided processing that helps you understand what you're really feeling
The result is a privacy-first companion that helps you move from emotional overwhelm to clarity, one thoughtful question at a time.
What it does
UNSAID is an AI-powered emotional companion that helps you process unsaid thoughts through guided reflection. It's like having a therapy session with yourself—but with a thoughtful AI guide who asks the right questions.
Core Experience:
1. Choose Your Moment Select the context: a difficult meeting, a conflict, a loss, or emotional overload. UNSAID tailors the conversation to your situation.
2. Guided Reflection (Chat or Voice)
- Chat Mode: Type your thoughts at your own pace
- Voice Mode: Speak naturally with AI text-to-speech responses
- AI asks 4 personalized questions, each responding directly to what you just shared
- No generic responses—every interaction is contextual and empathetic
3. Emotional Processing
- Tag your emotions (anger, grief, relief, regret, etc.)
- Give your moment a title (optional)
- Choose what to do with your thoughts:
- Keep - Save in your private vault
- Rewrite - Get AI help to rephrase for actual sending (if you want)
- Release - Symbolically let go
4. Reflection Closure Before finishing, you're invited to leave:
- A closing sentence
- A final feeling (peace, relief, calm, clarity, stillness, growth)
- Or simply say "I'm done for now"
5. Private Letters & Time Capsules
- Save conversations as unsent letters to yourself
- Choose when to revisit: in 7 days, anytime, or seal it closed forever
- No sending, no sharing—just safe processing
6. AI-Generated Insights Your vault isn't just storage—it's a tool for self-understanding. Ask for insights and AI analyzes all your entries to reveal:
- Recurring emotional patterns
- Common themes across different moments
- Thoughtful observations (not advice)
- Questions that prompt deeper reflection
Privacy-First Design:
- 100% local storage (localStorage)
- No accounts, no cloud backups
- No tracking, no analytics
- Your thoughts stay on your device, period.
How we built it
Tech Stack:
Frontend:
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Responsive, mobile-first design
- Framer Motion - Smooth animations and transitions
AI & Voice:
- OpenAI GPT-4 - Personalized conversational AI and vault insights
- ElevenLabs API - Natural text-to-speech for voice mode
- Custom prompting system - Context-aware questions based on trigger types
Storage:
- localStorage - Client-side persistence, zero backend
- Custom data structures - Entries, emotions, letters, time capsules
Integration:
- Farcaster SDK - Mini-app support for decentralized social
- Next.js API routes - Proxy for external API calls (OpenAI, ElevenLabs)
Architecture Highlights:
Dynamic AI Conversations:
- First question customized per trigger type (meeting/conflict/loss/overload)
- AI reads user's answer and generates empathetic acknowledgment + follow-up question
- Fallback system with varied responses if API fails
- Each conversation step builds on previous context
Voice Mode Integration:
- ElevenLabs streaming TTS for natural voice responses
- Audio cleanup to prevent overlap
- Smooth toggle between chat and voice without losing progress
Vault Intelligence:
- Aggregates all entries (answers, emotions, triggers, letters)
- Sends to GPT-4 for pattern analysis
- Returns personalized insights without judgment
Modular Component Design:
- 10+ reusable components (TriggerSelection, ConversationFlow, VaultView, etc.)
- Clean separation of concerns
- Type-safe props and state management
Development Process:
- Phase 1: Core conversation flow with static questions
- Phase 2: Dynamic AI integration with OpenAI
- Phase 3: Voice mode with ElevenLabs
- Phase 4: Vault features (emotional tagging, insights)
- Phase 5: Advanced features (reflection closure, letters, time capsules)
- Phase 6: UI polish, mobile optimization, documentation
Challenges we ran into
1. Making AI Feel Personal, Not Robotic
Challenge: Initial implementation had AI responses that felt generic ("I hear you", "That's valid"). Users need to feel heard, not processed.
Solution:
- Rewrote prompt engineering to require AI to reference specific words/phrases from user input
- Added two-part response structure (acknowledgment + thoughtful question)
- Implemented varied fallback responses per trigger type and conversation step
- Result: AI now responds contextually even when OpenAI API fails
2. Voice Mode Audio Overlaps
Challenge: When switching pages or starting new conversations, previous audio kept playing, creating chaotic overlaps.
Solution:
- Implemented proper audio cleanup on component unmount
- Added
stopAudio()function to halt playback before new responses - Used React cleanup pattern in useEffect hooks
- Result: Smooth audio transitions, no overlaps
3. Balancing Features vs. Simplicity
Challenge: We wanted reflection closure, private letters, time capsules, and vault insights—but didn't want to overwhelm users.
Solution:
- Designed progressive disclosure: features appear when contextually relevant
- Made advanced features optional, not mandatory
- Kept main flow simple: answer questions → tag emotion → done
- Advanced features enhance, but don't complicate
4. Privacy-First Architecture
Challenge: How do we provide AI-powered insights without storing user data in a backend?
Solution:
- 100% localStorage—all data stays on user's device
- API calls send conversation context temporarily, nothing is logged server-side
- Clear vault option gives users complete data control
- Trade-off: No cross-device sync, but absolute privacy
5. Farcaster SDK Console Errors
Challenge: Auto-injected Farcaster manifest checking caused console errors in development environment.
Solution:
- Identified error as non-critical (network fetch to Farcaster endpoints)
- Doesn't affect any functionality
- Acceptable for hackathon demo; would resolve in production deployment
Accomplishments that we're proud of
🎯 Thoughtful Product Design
We didn't just build an AI chatbot—we designed an experience around emotional processing. Every feature (reflection closure, private letters, time capsules) serves a purpose in the healing journey.
🤖 Truly Personalized AI
Our AI doesn't just follow a script. It reads your answers, responds with empathy, and asks follow-up questions that feel genuinely curious about your specific experience.
🎨 Calm, Adult Aesthetic
Most mental health apps feel clinical or overly cheerful. UNSAID has a warm, dark, intimate vibe—like writing in a journal by candlelight. We're proud of the emotional tone the UI sets.
🔒 Privacy-First from Day One
In an era of data harvesting, we built UNSAID with zero backend storage. Your thoughts are yours, period. No accounts, no tracking, no cloud backups.
🧠 Vault Insights Feature
Turning the vault from passive storage into an active tool for self-understanding was a breakthrough. AI pattern analysis helps users see recurring themes they might miss on their own.
⚡ Fast Iteration, Complete Features
We implemented all planned features (OPSI A, B, C) in under 24 hours, including:
- Dynamic AI conversations
- Voice mode with TTS
- Emotional tagging
- Vault with insights
- Reflection closure
- Private letters
- Time capsules
- Clear vault option
📚 Professional Documentation
We created comprehensive docs (README, ARCHITECTURE, THIRD_PARTY, DEMO_GUIDE, CONTRIBUTING) that make the project accessible to judges, developers, and future contributors.
What we learned
1. Prompt Engineering is an Art
We learned that getting AI to sound empathetic requires very specific prompt design:
- Instructing it to reference user's exact words
- Asking for one question at a time (not multi-question dumps)
- Balancing guidance with open-endedness
- Creating varied fallback responses for robustness
2. Emotional UX is Different from Functional UX
Normal apps optimize for speed and efficiency. UNSAID needed to optimize for emotional safety:
- Slower pacing (delays between AI responses)
- Soft colors and gentle animations
- Clear exit points ("I'm done for now")
- No pressure to complete everything
3. Privacy as a Feature, Not an Afterthought
Building privacy-first from the start shaped our entire architecture:
- localStorage instead of databases
- API routes as simple proxies
- No user accounts or authentication
- This constraint actually made the product better—simpler, faster, more trustworthy
4. TypeScript Saves Time in Complex Apps
With 10+ components and dynamic state, TypeScript's type safety caught dozens of bugs before runtime. Defining interfaces upfront made the codebase easier to navigate and refactor.
5. Voice Mode is Harder Than It Looks
Text-to-speech isn't just "play audio":
- Streaming vs. waiting for full response
- Cleanup to avoid overlaps
- Handling user interruptions
- Balancing natural pacing with user patience
6. Good Documentation is a Competitive Advantage
Creating DEMO_GUIDE.md forced us to think through our pitch. Writing ARCHITECTURE.md revealed design decisions we hadn't articulated. The act of documenting improved the product.
What's next for UNSAID
Near-Term (Post-Hackathon):
1. Enhanced Voice Experience
- Voice input (speech-to-text) so users can speak their answers, not just hear responses
- Multiple voice options (different tones, accents, genders)
- Ambient background soundscapes (rain, fireplace, etc.)
2. Mobile Native App
- Native iOS/Android apps for better performance
- Haptic feedback for emotional moments
- Offline-first architecture (already works without constant connection)
3. Advanced Insights
- Visual charts of emotional patterns over time
- Trigger analysis: "You've had 5 work conflicts this month"
- Recommended reflection prompts based on patterns
4. Export & Portability
- Export vault as encrypted JSON
- Import/sync across devices (while maintaining privacy)
- Print as PDF for journaling
Long-Term Vision:
1. Micro-Moments Feature Sometimes you don't need a full conversation—just a quick emotional check-in:
- "How are you feeling right now?" → One-word answer → Done
- Build emotional trend data over weeks/months
2. Therapeutic Frameworks Integration Partner with therapists to add optional guided frameworks:
- Cognitive Behavioral Therapy (CBT) prompts
- Acceptance and Commitment Therapy (ACT) exercises
- Nonviolent Communication (NVC) reframing
3. Community Insights (Anonymous & Aggregated)
- See anonymized patterns: "You're not alone—60% of users struggle with conflict processing"
- Optional: Share your letter anonymously to inspire others
- Zero personally identifiable information
4. Offline AI Mode
- Lightweight on-device AI for basic conversations (when internet isn't available)
- Hybrid approach: simple questions locally, deep insights via cloud when available
5. Integration with Real Communication
- Optional: Connect to email/Slack to draft rewritten messages
- Calendar integration: "Reflection reminder before your 1-on-1 meeting"
- Never automatic—always user-initiated
Big Dream:
UNSAID becomes the bridge between silence and connection. We envision a world where people don't just bottle up emotions or reactively blurt them out—they have a third option: process first, communicate intentionally.
Our tagline: "Not everything needs to be said. But everything deserves to be heard."
Final Note
UNSAID isn't about avoiding difficult conversations—it's about preparing for them with clarity. It's not about hiding emotions—it's about understanding them first. It's not therapy replacement—it's a companion for the moments between.
We built this because we believe human interaction gets better when we give people space to think before they speak. And sometimes, that space is all they need.
Thank you for considering UNSAID. 🌙
Built With
- elevenlabs
- openai
- typescript

Log in or sign up for Devpost to join the conversation.