Project Info

Haven

Devpost

This project did not submit a demo video on Devpost.

Inspiration

Most mental health apps share one assumption. There is a universal definition of normal. They compare your sleep against averages, reward unbroken streaks, and flag when you fall behind. We have a close friend with bipolar disorder. There were stretches of weeks where she would go completely silent. No messages, no updates, nothing. We would start to wonder if she was still okay. Then she would reappear, suddenly full of energy, making plans, starting projects, doing in three days what most people spread across a month. What she struggled with most was not the moods themselves. It was the uncertainty. She could not tell when a quiet period was coming or how long it would last. After taking her medication, she had no way to know whether she would sleep for four hours or twelve. When a depressive episode arrived, she did not have the energy to plan her day, let alone maintain any kind of routine. Every app she tried asked her to track herself, log her states, and stay consistent. All of that assumed she had the capacity to monitor herself in real time. During the hardest weeks, she simply did not.

What it does

Heaven learns each person's unique rhythms and builds a personal cognitive baseline. Instead of pushing everyone toward the same definition of productivity, Haven adapts to changing energy levels, stress patterns, medication side effects, ADHD, anxiety, and life transitions. It remembers what helped users through difficult periods before, gently adjusts plans, and helps them stay connected to the version of themselves they want to protect. The patterns Haven learns are things like hyperfocus, where a user works for hours without eating or checking their phone. Or evaluation avoidance, where someone repeatedly opens and closes a calendar before a presentation without starting the work. Or medication rhythm, where afternoons are consistently clearer than mornings. Each of these is a behavioral signal, not a character flaw. Haven treats them as information. When a pattern surfaces, Haven adapts the environment around you. During a hyperfocus session, it suppresses notifications and delays non-essential reminders. On a low-energy day, it scales tasks down and protects recovery time instead of pushing you to catch up. If your medication means mornings are hard, Haven moves demanding work to the window when you are actually at your best. You never have to explain any of this. Haven learns it.

How we built it

Claude runs at the center of the Understanding Agent. Every pattern that surfaces goes through Claude with a tightly constrained system prompt. The prompt prohibits diagnosis and shame language, requires evidence-based reasoning, and attaches a confidence score to every output. Claude does not just generate responses. It reasons about why this moment resembles past difficult periods, and what has historically worked for this specific person. Deepgram's Nova-3 model handles real-time speech-to-text over WebSocket. Haven responds through Deepgram's Aura-2 voice, a warm and consistent voice the user comes to associate with safety. The end-to-end latency is low enough that the conversation feels like talking to someone, not operating software.

Challenges we ran into

The hardest problem we faced was not technical. We acctually spent more time on the Claude system prompt than on any single API integration. We kept testing what warm but not dismissive talking style actually sounds like. We kept tracing the line between observational and diagnostic. We built an internal review process around one question, which is "would this message make someone feel worse about themselves?" If yes, we rewrote it.

Accomplishments we're proud of

We built something we would give to our friend. The friend whose story opens this submission is real. When we showed her Haven, she said the thing that mattered most to her was that it did not ask her to be consistent. It just remembered what worked. That was the standard we built to. We are proud that we met it. When Haven says "I remember that during finals week last semester, your energy looked exactly like this," it is not generating a plausible-sounding memory. It is retrieving a specific stored episode, matched semantically by Redis Vector Search. The distinction matters to us. Haven does not pretend to remember. It actually does.

What we learned

The first version of Haven's daily view showed a task completion percentage. We removed it after the first test session. The person using it said she had spent the whole time watching the number in the corner instead of thinking about how she actually felt. That one metric had turned a day into something to be scored, which is exactly what every other app already does. The last thing we kept catching was the language. We kept writing words like "on track," "progress," and "goal" without noticing that each one carries an assumption about a fixed direction and a correct speed. Not everyone is pointed the same way. Cutting those words forced us to say what we actually meant, which turned out to be simpler and warmer than what we had written before.

What's next

We believe Haven is a research direction, not only a hackathon project. Right now, Haven only knows you inside Haven. We want to change that. The patterns Haven learns about you belong to you, and we think they should be able to travel with you. If you switch to a different calendar app, a different task manager, or a different wellness tool, Haven's understanding of your rhythms should not disappear. We want to build toward a version where your personal baseline is something you own and carry, not something locked inside a single app.

Analysis

Compare with all teams

View

Metric

Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.

Technology

Found in codeClaimed only
  • SwiftIn code
  • AnthropicClaimed

1 of 2 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.

AI coding agents

No AI coding agent signals were found in this repository.

Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.

Codebase size

Source size

151 KB

Source files

27

Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.

0 stars