Breathe is a two-person health ritual app.
The goal is not to make another complicated health dashboard. The goal is to make health feel like a small daily rhythm: track a few things, get useful activities, keep a streak, and do it with a partner.
Small README#
Breathe is built with Next.js, Supabase, Google Fit, Gemini, Resend, and web push.
The app includes:
- magic-link login,
- onboarding,
- medical record entry and PDF extraction,
- daily activity generation,
- Google Fit syncing,
- push reminders,
- streaks,
- a partner leaderboard.
The important product idea is simple: health tracking works better when it becomes a shared ritual instead of a solo spreadsheet.
How To Use#
Locally, the repo runs like a normal Next.js app:
npm install
npm run dev
The full setup needs Supabase, environment variables, Google Fit OAuth, Gemini, Resend, push notification keys, and the database migrations from the repo.
As a user, the flow is:
- Sign in with a magic link.
- Complete onboarding.
- Add or upload health records.
- Generate daily activities.
- Connect Google Fit and push notifications.
- Use the dashboard and leaderboard as the daily habit loop.
What I Learned#
Breathe taught me how many real systems are involved once an app becomes more than a landing page.
It touched auth, database design, row-level security, file extraction, AI suggestions, OAuth, push notifications, cron jobs, and deployment.
The biggest lesson was that finishing a product means connecting many boring pieces correctly. The app idea matters, but the proof is whether the whole loop works end to end.
Why It Matters#
Breathe matters to me because it was a finished app, not just an experiment.
It proved that I can build a full product workflow with real users, real data, and real daily behavior.
Project status#
This article records the product I built in June 2026. The public landing page was still online in September 2026. That does not by itself prove that every signed-in flow or third-party integration is still being actively maintained.