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

Share this project:

Updates

Submission history