i am someone who usually feels anxious before exams, an event or before doing anything new. so i decided to build this app whose main focus is on anxiety. anxiety shows up in different forms, harsh self talk, racing thoughts, physical tension, lingering worries, and moments of good that go unnoticed. this app treats these as connected signals, not separate tools, and personalizes itself over time based on the individual user's actual patterns, not preset menus.

there are two modes. one is acute mode, if the person is feeling very anxious they can switch to this mode. it focuses on making the user feel calm, it has the breathing box, the 5 4 3 2 1 method, brain dump, burn it/vault it, and body check in. i made sure it works offline, it doesn't need a gemini call, so it's available anywhere, anytime. the other one is reflective mode, which can be used normally when the person is calm.

tech: react + typescript (vite), supabase, built with lovable

ai: i used gemini api, called through supabase edge functions

model: the edge function tries gemini 2.0 flash first, falling back to gemini 1.5 flash latest, then gemini 1.5 flash if needed

tier: free tier

main track: wellness (intermediate track)

bonus track: best use of ai

model(s): gemini, tries gemini 2.0 flash first, falls back to gemini 1.5 flash latest, then gemini 1.5 flash if needed. free tier.

ai is used for exactly 2 call sites.

  1. reality check matrix, two sequential calls, not one.

call 1 prompt (validate + de catastrophize): "you are a supportive companion helping someone examine a difficult thought. respond in exactly two sentences. 1) validate the emotion without judgment, using the user's own words where possible, never minimize. 2) ask one gentle reality check question separating the feeling from fact. do not offer a reframe yet, only ask the question. never use toxic positivity phrasing. if the user's message suggests intent to harm themselves or others, do not continue the reflection exercise, instead gently encourage them to contact a crisis line or trusted person."

call 2 fires only after the user picks a tone (gentle friend / evidence examiner / tiny action), parameterized by that choice plus the original thought and call 1's response as context.

  1. vault review, optional perspective note, same guardrail pattern, fires only on explicit user tap.

what makes this creative, not just calling an api:

two stage pacing mirrors a real therapeutic conversation, it asks you a question based on your worry and then asks a question based on that.

you can pick the tone of the second response, so it's not one size fits all output.

the crisis guardrail stops the whole flow immediately if it detects self harm language, it's built into the logic itself, not just a filter checking the ai's response afterward. you can see this happen live in the demo video.

i deliberately kept ai out of 5 of the 8 features, all of acute mode plus brain dump, those moments need to be fast, private, and reliable, so adding ai there would only add risk and delay without real benefit.

additional features i'd like to include soon:

  • Multilingual feature as it should be accessible to more people
  • update the weekly recap feature to yearly recap feature ( once 365 days are over it shows you a corkboard full of memories / small wins / notes anything you uploaded over time)
  • voice feature dictating breathe in / breathe out
Share this project:

Updates

Submission history