Inspiration

Most addiction support apps just use basic, "dumb" rules to trigger alerts. We wanted to build something that actually understands context, kind of like how a real sponsor or counselor would. We realized that if we combined physical stress data with location tracking, we could theoretically predict and intercept a relapse before it even happens.

What it does

Clementine is a web app that watches your biometrics and location in real time. If you are near a bar that you used to go to and your heart rate spikes heavily when you are near one of these geofenced area, the system kicks in. It bundles that context and sends it to Claude. If Claude decides the relapse risk is high, it automatically sends a personalized SMS to your sponsor to call you.

How we built it

  • Frontend: We used Next.js with the App Router, TypeScript, and Tailwind. We also threw in some Framer Motion just for the alert popups.
  • Backend: We skipped having a separate server or queues and just kept everything inside Next.js API routes.
  • Database & APIs: We used Supabase for the database , Google Maps for the visual pins , Vonage to handle the SMS alerts , and the Claude API for the core decision-making.
  • Testing: To make sure our demo wouldn't crash and burn, we built a "Simulate Craving Event" button that manually jumps the heart rate to 110 and snaps the location to a trigger zone.

Challenges we ran into

Our absolute biggest challenge was the final integration. Because we split our four-person team into strict, non-overlapping silos, Frontend, Risk API, Claude AI, and Vonage, we essentially built four isolated engines. Stitching everyone's code together into a single, functional Next.js app was a massive hurdle.

Accomplishments that we're proud of

We're really proud that we got Claude doing actual clinical-style reasoning instead of just acting like a standard chatbot. Seeing the system evaluate a high-stress situation and successfully push a real Vonage text to a physical phone in real time was a massive win for us.

What we learned

We learned that having a strict integration contract between the frontend and backend is the only way to prevent total chaos when splitting up work.

What's next for Clementine

Right now we're using simulated data for the MVP, but the next step is fully integrating the Fitbit developer API using OAuth so we can pull real heart rate data. We also want to build out an escalation protocol, where the system alerts a second emergency contact if the user's biometrics stay elevated and they ignore the first alert.

Built With

  • fitbitapi
  • googlemapapi
  • next.js
  • supabase
  • typescript
  • vonageapi
Share this project:

Updates