The problem
High-functioning anxiety doesn’t put you in bed. You hold a job, a family, a team — you deliver, you show up — while inside you’re scanning for the next hit. Because you function, no one notices. The cost isn’t collapse; it’s what you miss meanwhile. And the inner dialogue you navigate it with is often hypercritical and unkind in a way that doesn’t hold up when you look at it directly.
What GratiTune is
A toolkit to order that inner dialogue — not a therapist, not a synthetic friend, not somewhere to pass the time. Three jobs and one principle:
- Land it — you write or speak the thought going in circles, and a companion helps you ask whether it’s as real as it feels. Socratic CBT (Beck / Burns / Padesky) delivered in a Motivational-Interviewing style: reflects more than it asks, one question per turn, no interrogation. It closes with a reframe — a more balanced thought plus a small step.
- Journal — two journals side by side, Thought and Gratitude, in text, audio or video, with on-device transcription.
- Patterns — what repeats, what you named, your rhythm — all computed on the phone.
- The principle: build skill, not dependence. The companion has no persona, its closes point outward (a real step, a real person), and there are no streaks or hooks. When in doubt, the design choice that reduces dependence wins.
How I built it
A native iOS app (SwiftUI, Swift 6, SwiftData) with a Supabase backend (Postgres + Edge Functions). AI keys never live on the client. Socratic turns and reframes run on Claude Sonnet, with an independent risk-detection pass running in parallel — if the model that’s talking fails, the safety net still holds. Journals never leave the phone unless explicitly requested; pattern analysis is fully local.
Safety and science, honestly
Crisis resources are resolved by country and sent on every request (without that, models invent numbers — verified). Every technique is checked against a primary source before it ships, and I’m deliberately modest about effect sizes: gratitude interventions move things a little (meta-analytic g ≈ 0.22) — enough to build on, not enough to promise anything. I also ran a third-party clinical benchmark (VERA-MH), found two real defects in how it confirmed risk and guided to human care, and fixed them.
Where it stands
Working end-to-end against a real backend, installed on device — but deliberately not released. The condition before any public launch is review by a clinical psychologist. It’s on stand-by, not discarded: I still believe in the problem.
What I learned
That the hard part of building in a sensitive space isn’t the code — it’s restraint: knowing what not to claim, and designing so the product makes someone need it less, not more.