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:

  1. 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
  2. Voice Mode Integration:

    • ElevenLabs streaming TTS for natural voice responses
    • Audio cleanup to prevent overlap
    • Smooth toggle between chat and voice without losing progress
  3. Vault Intelligence:

    • Aggregates all entries (answers, emotions, triggers, letters)
    • Sends to GPT-4 for pattern analysis
    • Returns personalized insights without judgment
  4. 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

Share this project:

Updates