Inspiration
Mental health apps ask people to expose their most private thoughts just to prove they're making progress. We wanted a way to show consistency — to a therapist, employer, or yourself — without ever revealing the underlying data.
What it does
Clarity lets users log daily mood, stress, and journal entries, view analytics on their wellness trends, and generate a ZK Wellness Proof — a shareable, privacy-preserving verification of a wellness streak that reveals zero personal data.
How we built it
Built with React 18 + TypeScript + Vite, Tailwind CSS, and Supabase (PostgreSQL + Auth) for secure data storage with row-level security. The proof system hashes only entry IDs/timestamps (SHA-256) — never mood, stress, or journal content — and stores the hash in a public table for verification via a shareable link.
Challenges we ran into
Designing a proof system that's genuinely privacy-preserving while still being verifiable by anyone, without requiring a login, was the core challenge. We also had to carefully scope Supabase RLS policies so public verification never leaked private entries.
Accomplishments that we're proud of
A working end-to-end privacy-preserving proof flow — from daily check-in to a public, no-login verification page — built on a free-tier stack.
What we learned
How to design a zero-knowledge-inspired verification pattern using simple, accessible tools, and where the line is between a simulated proof and true cryptographic ZK.
What's next for Clarity
- Migrate from simulated hash-proofs to real zero-knowledge proofs using Midnight's testnet and Compact circuits
- Add therapist/employer dashboards for verified streak sharing
- Expand analytics with mood-pattern insights and personalized wellness nudges
- Launch mobile app (React Native) for daily check-ins on the go.
Built With
- postgresql
- react
- supabase
- tailwind-css
- typescript
- vite

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