Next.js 14 Supabase + RLS Claude API MCP server WHOOP Oura Fitbit Stripe
Open source · MIT

Vitality

the life dashboard you own.

A self-hosted, multi-user dashboard for everything you track — a wearable-agnostic daily score, workout intelligence, nutrition, goals, finances — with an AI mentor that builds new tiles when the one you need doesn't exist.

> Clone https://github.com/ohwisey/vitality-oss and follow its SETUP-PROMPT.md exactly — set everything up, run it, and help me sign up.

One prompt does it all — paste into Claude Code, Codex, or Cursor. Prefer doing it by hand? Ten-minute quickstart.

8
Modules
94
API routes
185
Test suites
77
SQL migrations
170k
Lines of TypeScript
1
MCP server
The modules

Whatever you track,
every pattern held in light.

Each module ships multi-user from the ground up — Supabase row-level security on every table, API keys server-side only, tiers gated on the server.

◆ VITALS

Vitality score

A daily 0–100 score from WHOOP, Oura, Fitbit, or manual entry. Recovery, sleep, and strain in one calm number.

◆ FITNESS

Workout intelligence

A logger that understands progressive overload — split planning, rep zones, deload detection, session resume.

◆ FUEL

Nutrition

Macros, USDA food search, barcode lookups, water — and an AI food-photo analyzer that fills the log for you.

◆ VEE

Goals

Natural-language goals with drift detection, and a companion that notices patterns across all your data.

◆ PEAK

Day scheduler

Your schedule aligned with your recovery — plan the day around the body you woke up with.

◆ FINANCE

Money

Net worth, subscriptions, live stock and crypto quotes, receipt and statement import.

◆ BRAND

Creator tools

Channel stats, comment triage, and posting-time analysis for people who publish.

◆ FORGE

Tile builder

Single-file HTML tiles, human- or AI-authored, with a curated gallery and public maker profiles.

The Vitality dashboard — pure black, mint accents, tiles for everything you track
Model Context Protocol

Talk to your dashboard from Claude.

Vitality ships a hosted MCP server with OAuth. Connect claude.ai, Claude Desktop, or Claude Code to your own deployment and ask about your data — or have Claude build and publish a brand-new tile onto your dashboard, live.

You
Build me a tile that tracks my morning sunlight minutes.
Claude · via MCP
Done — Sunlight Minutes is live on your dashboard. It logs with one tap, shows a 14-day streak, and turns mint when you cross 20 minutes before 10am.
Get started

Yours in three steps.

Clone & install

git clone the repo, then pnpm install. Node 20+, that's it.

Point it at Supabase

Create a free Supabase project and apply the schema with supabase db push — 77 migrations, RLS included.

Run it

Copy .env.example to .env.local, fill in the Supabase keys, and pnpm dev. Every other integration is optional.

Or skip all three

Hand it to your coding agent.

The repo ships SETUP-PROMPT.md — paste it into Claude Code, Codex, or any coding agent with a terminal. It checks your machine, provisions Supabase, applies all 77 migrations, writes .env.local, boots the app, and deploys to Vercel — asking you only for the keys it genuinely can't create itself.

$ claude
> Read SETUP-PROMPT.md and set this app up for me
✓ Supabase project created · 77 migrations applied
✓ .env.local written · dev server on :3000
✓ Deployed to Vercel