DEVELOP: a wellness tracker for calories, macros, workouts, and cardio.
HealthTypeScript · PLpgSQLGitHub @saltylvnOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
iPhone-first wellness tracker: AI food logging from photos, lifting and cardio plans, weight goals. Next.js 16, Supabase, Gemini; built with Claude Code.
Taken from the repository README
Loading the full README.
Read the full README ↗A wellness tracker for weight, food, lifting and cardio. An iPhone-first web app (installable PWA) I use every day: log meals by photo or description with AI-estimated calories and macros, follow a weekly lifting and cardio plan, and track weight against a target with a projected goal date.
Live: wellness-tracker-virid.vercel.app: tap Try the demo to look around with sample data, no sign-up needed · Status: in daily use
I built DEVELOP with Claude Code as an AI pair programmer, starting as a beginner in web development. I owned the product and the decisions:
The working rules for the AI are versioned in the repo (CLAUDE.md), alongside the code they shaped.
| Layer | Choice | Why |
|---|---|---|
| UI and server | Next.js 16 (App Router), React 19 Server Components and Server Actions, TypeScript | One codebase; data access and secrets stay on the server |
| Styling | Tailwind CSS v4 with named color tokens | Consistent theme; mobile-first with 44px+ tap targets and safe-area insets |
| Database and auth | Supabase: Postgres, row-level security, Google sign-in | Real relational data; the database itself enforces who can see what |
| AI | Google Gemini (server-side only), JSON schema output, raced model chain | Photo and text nutrition estimates on the free tier |
| Hosting and CI | Vercel (Node 24), GitHub Actions, Dependabot | Every pull request is checked; every merge to main deploys |
Data model: 13 tables (profiles, food entries, saved foods, water, weigh-ins, workout days / exercises / sessions / sets, cardio, tanning, AI request log, demo state), each created by a versioned SQL migration in supabase/migrations/.
| Feature | How |
|---|---|
| Food from a photo | The photo is shrunk to 768px on the phone as soon as it's picked, sent to Gemini with a JSON schema, validated and range-checked, and fills an editable form; nothing saves on its own |
| Food from text | Same pipeline from a plain description ("2 eggs and buttered toast") |
| Speed | Fastest free models first with minimal thinking; if one hasn't answered in 1.5 s a backup starts alongside it and the first answer wins. Measured: 12.5 s → 1.3–2.5 s |
| Reliability | Overloaded or retired models fall through to the next, a bad key stops at once, per-model timeouts and a total time budget |
| Weight coaching | A one-line note, regenerated only when the numbers it was written for change |
| Cost control | A 40-a-day limit per person, logged in Postgres before the AI is called |
main (pull requests only, required checks, linear history, no force-push), secret scanning with push protection, CodeQL code scanning, Dependabot alerts and security updates, and GitHub Actions pinned to commit SHAs. See SECURITY.md to report a problem.lib/ with tests; pages and components stay thin. Streaks, goal status, the weight plan and AI reply validation are all plain functions.Requires Node.js 24 (see .nvmrc, the version production runs) and a free Supabase project.
npm install.env.example to .env.local and fill in NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY and GEMINI_API_KEY (a free key from Google AI Studio).supabase/migrations/ in order in the Supabase SQL Editor, and enable Google sign-in.npm run dev and open http://localhost:3000npm test runs the unit tests; npm run build makes a production build.
supabase/migrations/20261025000000_recruiter_demo.sql in the SQL Editor (after the earlier migrations).[email protected] with a strong password and Auto Confirm User on.[email protected] and DEMO_PASSWORD=… in .env.local and in Vercel (mark the password Sensitive), then redeploy. The Try the demo button appears once both are set.Shipped: PWA shell and deploy, Google sign-in, food log with macro goals, AI text and photo estimates, streaks, workouts, cardio, water, the Weight tab with an AI coaching note, and the DEVELOP rename with a launch splash.
Next: polish and real-iPhone testing of photo logging, scroll wheels and checkboxes.