Inspiration
We kept coming back to one simple but important question: “For me, personally, what actually improves my mood?” Most mental health apps give the same advice. They tell you to sleep more, exercise, go outside, and reduce screen time. Helpful, but vague. None of them can answer whether sleep sleep actually the strongest lever for me? None of them can answer whether how much doomscrolling after 11pm hurt my next-day mood? Compass was created from the idea of precision mental health. No more generic tips, but a personal map of cause–effect patterns learned from your own life. We wanted something that feels like a flight simulator for behavior change, where you can test “what if I slept 8h and halved my screen time?” before you actually do it.
What it does
Compass is a daily check-in and simulation app that is a personal model of how your habits influence your mood and then lets you interact with that model. Each day, you log a compact set of signals. You log your mood score, how long you slept, how much you exercised, how much time you spent with other people, how much you were on screens late at night, and an optional free-text journal. Behind the scenes, Compass treats that as a time series and learns how “yesterday” predicts “today.” It then surfaces the three habits that appear to move your mood the most for you which turn coefficients into human-readable statements like “for you, each extra hour of sleep is associated with about +0.6 mood tomorrow” or “extra late-night screen time tends to pull mood down the next day.” The app includes a what-if simulator where you can adjust sliders for hypothetical changes in sleep, exercise, or screen time, and Compass computes how your predicted mood would shift. An AI coach exists with the math to turn raw numbers into explanations, caveats, and small suggested experiments instead of just dumping a table of coefficients.
How we built it
Compass is a three-part system. It is a Next.js frontend, a Supabase/Postgres data layer, and a Python/FastAPI.
Challenges we ran into
One of the biggest challenges was designing a model that felt both “smart” and interpretable. A deep neural net on the time series would have been a black box, but a naive “just linear regression” felt too weak. Therefore, we had to find middle ground that stayed mathematically possible, explainable, and shippable. We also had to solve the cold-start problem, that is where new users have almost no history, so a purely personal model is too noisy, yet we still want to give them useful feedback. Another subtle challenge was handling the time-series and “causal” story responsibly. Through using lagged predictors (yesterday → today), the model is more causal-ish than same-day correlations, but it’s still observational. On top of all that we had to make sure everything fit properly across Next.js, Supabase, and FastAPI.
Accomplishments that we're proud of
I'm proud that Compass is a real end-to-end system. I'm equally proud that the stack (Next.js, Supabase, FastAPI, scikit-learn, Hugging Face transformers) is actually deployable and debuggable. Lastly, I'm grateful that this is something that people can use to help themselves.
What we learned
I primarily learned that large language models are strongest as interpreters, not oracles. I constrained the LLM to operate only on structured summaries of the numeric model. Thus, the prediction is within reproducible math while using the model’s strengths to generate explanations, contextual guidance, and gentle disclaimers. That separation gave us both safety and clarity.
What's next for Compass
I see Compass as a foundation for more modeling, including fully Bayesian hierarchical and time-varying coefficient models, so every effect size comes with uncertainty and the system can track how your sensitivity to different habits changes over time. We also want to embed explicit N-of-1 experiments, carefully integrate passive signals from wearables and phones, add clinician-facing and exportable views, and extend beyond mood to related dimensions like anxiety, energy, and stress resilience.
Built With
- fastapi
- lucide
- next.js
- numpy
- numpyro
- pandas
- recharts
- scikit
- supabase
- tailwind
- transformers
- typescript


Log in or sign up for Devpost to join the conversation.