FOUNDER PROJECT

Unspiral

AI-powered emotional coach that helps you decode anxiety, overwhelm, and avoidance. Solo-built from concept to Google Play.

React NativeExpoTypeScriptSupabaseClaude AI
Scroll to explore
User Experience

Onboarding Flow

A warm introduction that explains what Unspiral is and how it helps

Welcome

Welcome

The hook that resonates

Chat Preview

Chat Preview

See the AI coach in action

Journal

Journal

Conversations become insights

Patterns

Patterns

Track emotional patterns over time

Core Flow

How It Works

From emotional overwhelm to clarity in one conversation

01

Start a conversation

Open the app when you notice anxiety, overwhelm, or avoidance. The AI coach meets you where you are with warm, precise questions.

02

Decode the signal

The coach classifies what you're experiencing: intuition, anxiety response, intrusive thought, avoidance, or emotional processing.

03

Get a journal entry

Each conversation is summarized into a structured journal entry with your emotion, threatened need, and a concrete next step.

Psychology

Signal Classification

Grounded in behavioral psychology — every response is mapped to a type of emotional signal

Intuition

A calm, quiet knowing. Present-moment and rational. The coach helps you honor it.

Anxiety Response

Jumping to worst case without thinking through resolution. "Under-thinking" disguised as overthinking.

Intrusive Thought

Loud, persistent, irrational. The coach labels it and redirects — no analysis needed.

Avoidance

Self-sabotage meeting an unconscious need. The coach finds the need underneath.

Emotional Processing

A legitimate feeling that needs to be felt, not fixed. Grief, sadness, anger as healthy responses.

Technical Details

What I Built

Solo full-stack development from architecture to app store submission

Mobile App

  • React Native + Expo with file-based routing
  • Glassmorphism design system (lavender + frosted glass)
  • Streaming AI chat with real-time responses
  • Animated onboarding with 5 screens
  • Swipeable calendar for journal navigation
  • Drawer navigation with conversation history

AI & Backend

  • Claude Sonnet for chat + emotion classification
  • Claude Haiku for structured journal generation
  • Prompt caching for cost optimization
  • Tool-use loop for persistent user memory
  • Supabase Edge Functions (Deno runtime)
  • Row Level Security for data isolation

Key Challenges Solved

Streaming AI in React Native

Built custom streaming handler for Supabase Edge Functions that delivers real-time token-by-token responses to the mobile client

Consistent emotion classification

Designed a 5-type signal taxonomy with structured prompts, ensuring the AI produces reliable classifications grounded in psychology

Cross-conversation memory

Implemented a tool-use loop where the AI saves relevant facts during chat, then loads them into context for future conversations

Journal generation from chat

Used Claude Haiku with structured JSON extraction to convert freeform conversations into categorized journal entries