../missions / resonate
Resonate
Wellness apps stay static while a student's headspace shifts hour to hour — Resonate is the full-stack campus product I built to adapt to it.
- problem
- College mental health is in crisis, but most wellness apps feel like static forms — generic, one-size-fits-all, and blind to the fact that a student's emotional state changes throughout the day. The students who need support most are the ones a flat check-in screen loses first.
- my_role
- Solo. I designed and built the whole thing end-to-end — frontend, product architecture, the AI feature set, and the crisis-safety routing. No team to hand the hard parts to.
- system_built
- A campus-first PWA with four pillars — adaptive soundscapes, quest arcs, VibeMatch peer connection, and journey mapping — running on three parallel AI inference servers and a multi-layer crisis-safeguard system.
- proof
- Build scope: 3 parallel FastAPI inference servers, 15 quest levels (3 arcs × 5), 3 music-generation modes, and a 3-tier crisis-routing design (client → server → emergency escalation). Designed for UF's ~57,000 students.
- proof_status
- in-progress build scope
- proof_note
- Product/build scope, not clinical validation. Public proof stays on architecture, UX, and safety-routing design until a live pilot exists.
- artifact_note
- Private build artifact; add screenshots, demo video, or repo link when cleared.
- why_it_matters
- My pitch is that I can sell and build — this is the build half, in full. React, Next.js, Supabase, FastAPI, local GPU model inference, and the product judgment to wire taste and safety into consumer AI instead of just calling an API.
- AI Inference Servers
- 3
- Quest Levels
- 15
- Music Modes
- 3
- Crisis Detection Tiers
- 3
Resonate is an in-progress campus mental-wellness product for college students, built around four pillars: adaptive AI-generated soundscapes that respond to emotional state, RPG quests informed by evidence-based psychology, anonymous peer connection with crisis-routing safeguards, and journey mapping to track emotional patterns over time.
Architecture is a Next.js App Router frontend organized into feature modules (features/sonic/, features/quests/, features/vibematch/, features/check-in/) rather than pages — which scales far better as the surface grows. Three parallel FastAPI inference servers handle generation: MusicGen text-to-audio on :8000, FLUX.2 Klein text-to-image on :8001, and Wan2.1 text-to-video on :8002. Supabase provides PostgreSQL, Realtime, Auth, and Storage across five migrations.
The AI layer mixes OpenAI gpt-4o-mini for quest feedback, the UF Navigator LLM proxy, Meta's MusicGen on local GPU inference, and Anthropic Claude. Safety is deliberately multi-layered: client-side keyword matching for an instant UI response, server-side screening before anything reaches the model, and escalation paths to the UF Counseling & Wellness Center, the 988 Lifeline, or 911. Crisis routing was the one part I refused to ship casually.
Feature set: magic-link auth restricted to @ufl.edu, a mood-reactive dashboard with an XP system, three quest arcs of five levels each, a Sonic Resonance Engine with three music modes (Quick Pick, Interactive Sliders, MusicGen AI), an EchoVision audio visualizer with AI-morphing imagery, real-time VibeMatch peer chat, and a Journey Map with PDF export to share with a therapist. Privacy-first by intent: no ads, no data selling, rate-limited to 10 req/min.
- Feature-based module architecture (features/sonic/, features/quests/) scales noticeably better than page-based organization once an app gets complex.
- Running three AI inference servers in parallel forced real discipline around port management and health checks — containerization is the obvious next step.
- Crisis routing has to be layered: client-side checks respond instantly, but server-side screening still has to guard the AI path. You can't trust a single gate.
- Evidence-informed psychology should shape the product, but clinical claims need real validation before you make them — so I don't, yet.