Highlights
Project snapshot
- Streaming agentic backend (OpenAI Agents SDK) with server-side mood detection and tool-fired native recommendation cards.
- Deterministic guardrails over the LLM: prompt rules plus wire-level sanitizers enforce a human, on-brand voice.
- Persistent mood analytics over Supabase + pgvector, RevenueCat subscriptions, and an optional Solana/Arweave rewards layer.
Overview
A daily emotional companion in your pocket
Feel is a cross-platform (iOS/Android) wellness app built with React Native and Expo, centered on "Solace," a conversational AI guide.
Users talk to Solace in a journal-style chat; the system detects their emotional state, logs mood over time, and returns personalized practices, curated content, and real-world actions. A Vercel-hosted agent orchestrator drives the LLM tool-calling and Supabase stores mood history and conversations.
Problem
Generic wellness apps don't meet you where you are
- People struggle to recognize, name, and regulate emotions in the moment.
- Mood patterns stay invisible without consistent tracking, so triggers and what-helps go unseen.
- Off-the-shelf chatbots default to robotic "therapy-bot" phrasing that feels canned.
- Finding the right grounding exercise or content at the right emotional moment is high-friction.
Solution
A memory-aware companion with enforced, human guidance
- Streaming chat with server-side mood detection, selectable personality styles, and adjustable response length.
- Context-aware tools recommend practices, actions, and curated content based on detected intent.
- Short-term conversation memory plus a long-term memory tool surface personal patterns over time.
Core Features
Conversation, tracking, and support loops
Solace AI Guide
- SSE streaming chat with server-side mood detection
- Seven selectable personality styles and adjustable length
- Whisper-based voice input
Mood Tracking & Analytics
- Onboarding assessment and current/desired mood capture
- Mood calendar, timeline, history, and emotional patterns
- Streaks and an emotional XP/level system
Recommendations & Social
- Tool-fired practice, action, content, and emotional-reset cards
- Friends list, mood sharing, and an invite system
- Crisis support and a home-screen widget
Monetization & Web3
- RevenueCat-gated premium chat and advanced analytics
- Optional Solana wallet connection
- Simulated FEEL token rewards for weekly mood data shared to Arweave
Architecture
Expo client, agent orchestrator, and Supabase edge functions
Expo app (Expo Router)
→ Vercel orchestrator /api/chat (OpenAI Agents SDK)
→ server-side mood detection + turn directives (SSE stream)
→ Supabase Edge Functions (Deno) — memory, content, recommendations
→ Supabase Postgres (pgvector) + RevenueCat (webhook)
- Agent tools call Deno edge functions for mood detection, memory, content discovery, recommendations, usage tracking, and persistence.
- A small Express server handles invite deep-link redirects.
Engineering Highlights
Making an LLM behave reliably and on-brand
- Heavy prompt-engineering bans formulaic phrasing and enforces one-question-per-turn, backed by wire-level sanitizers (dash stripping, sign-off removal, binary-question defusing).
- Server-side tool enforcement: detect_mood always runs server-side on key turns, with regex help-ask detection injecting mandatory tool-firing directives.
- Cost/latency guards: history capped at 10 messages, memory stripped for zero-history users, and TPM rate-limit retry with backoff.
- Full [TIMING] instrumentation plus a committed benchmark/simulation harness; 35+ sequential SQL migrations with RLS policies.
Impact
A production-grade mobile AI companion
- Delivers a streaming agentic backend, a constrained conversational UX, and persistent mood analytics in one app.
- Pairs subscription monetization with an experimental Web3 rewards layer.
- Demonstrates systems thinking — server-side enforcement and output sanitization — plus real evaluation discipline.
