Single source of truth for where NutriSync stands. Last updated: July 2026.
NutriSync is a cycle-synced nutrition and movement intelligence app for women aged 25–45: its guidance adapts to the user's menstrual phase, and its proprietary Cycle Alignment Score (CAS) turns each day's logging into a single 0–100 signal of how well the user is living in step with her cycle. This document summarizes what is built, what is live, and what remains.
Both the native mobile app (iOS + Android, Expo SDK 54) and the web application are built and running against a single shared Supabase backend, with the CAS engine recomputing scores in real time on both surfaces. The marketing site + web app are live on Cloudflare Pages, and both deploy themselves on every git push — mobile over-the-air via EAS Update, web via a Cloudflare Pages Action. In plain terms: the product exists, it works end to end on real data, and shipping an update is now a single git push. What remains is scale-up infrastructure (AWS), a few compliance follow-ups, and getting test builds onto the Madrid testers' phones.
| Surface | URL | Notes |
|---|---|---|
| Marketing site | https://nutrisync-collective.pages.dev | Site root |
| Web app | https://nutrisync-collective.pages.dev/app.html | Real sign-up/login, backend-wired |
| Gated hub (investor/builder docs) | footer Team access → code 123456 |
Embedded documents |
The Cloudflare Access email whitelist has been removed — the site is public. It can be re-added at any time via Cloudflare Zero Trust → Access.
Onboarding (Welcome → Auth → multi-step wizard, persisted to users + cycles); the daily "Before we Sync" mood/energy gate; the five main tabs (Cycle home with phase ring + live Sync Score, NutriLog, Movement Log, Progress, Calendar); Edit Period (real Figma emotes + flow logging); and the full Settings hub. The most recent additions closed the last gaps against the prototype:
users.The Claude Design UI, genuinely stitched to Supabase: real sign-up and login, session routing (no session → login · session without a cycle → onboarding · else → home), reads and writes across all eight core tables, the same five-component CAS writing daily_scores, and in-app JSON export + account deletion.
Postgres + Auth + Row-Level Security. Eight core tables (users, cycles, daily_logs, nutrition_checklist, movement_checklist, meal_logs, daily_scores, user_phase_averages) plus content tables (phase_food, movement_activity, phase_tip). RLS scopes every row to the signed-in user, which is why the publishable/anon key is safe to ship. Two operational notes carry forward: turn off "Confirm email" in Auth for signup to complete, and full auth-record deletion needs a small service-role Edge Function (in-app data deletion already works).
githubjuanjose/nutrisync-app; every push runs eas update --branch production, delivering the change over-the-air to installed builds. Think of it as a conveyor belt: push code, the update rolls out to phones on next launch.githubjuanjose/nutrisync-web; every push runs wrangler pages deploy and the site rebuilds itself on Cloudflare in ~30 seconds.| Item | Status | Notes |
|---|---|---|
| Android APK for testers | Ready to build | eas build --profile preview --platform android → shareable link; no Apple/Google account needed. Best path for the Madrid testers. |
| iOS TestFlight | Blocked | Needs the paid Apple Developer Program ($99/yr); a free account has no "team". Enrollment is the blocker. |
| Full auth-record deletion | ✅ Done | delete-account Edge Function deployed; erases data + auth identity server-side. App button wired (ships on next app update). |
| Consent / cookie layer | ✅ Done | Privacy-first banner on web (essential-only default, granular opt-ins); ships on web push. |
| Admin MIS console | ◑ Live KPIs wired | Real Total Users + DAU/WAU/MAU via admin-gated admin_kpis(); billing metrics stay modelled until payments exist. |
| Wearable connectors (top 8) | ◑ Foundation built | Data model + consent-gated Connected Devices screen shipped behind a feature flag (OFF by default); native sync needs a dev build. |
| Branch protection | Your action | Light rules (no force-push / no deletion) on both repos — 2-min GitHub toggle. |
| Custom NutriSync domain | Pending | Site is on nutrisync-collective.pages.dev; publish on the branded domain via Cloudflare Pages → Custom domains (~15-min DNS task). |
| AWS scale-up (Zurich) | Not started | Deliberately deferred — Supabase covers Phase 1; AWS is for B2B scale + Swiss data residency. |
githubjuanjose/nutrisync-app — mobile app (Expo) + OTA pipeline.githubjuanjose/nutrisync-web — marketing site + web app + gated hub + Cloudflare deploy pipeline.Bilingual + Design-merge session:
- Bilingual EN/ES live across web and mobile — language selector on both; decoupled i18n/ catalogs; canonical values stay English so CAS/analytics are unaffected. 120+ mobile strings translated.
- Translations review page in the Builders hub — founders read every label EN-beside-ES, amend the Spanish, and export es.json.
- integrate.py — one command re-applies the here-only layer (consent, admin, error-hide, docs, i18n keys, translations page) onto any fresh Design export, so web merges are a ~2-minute job.
Wave 1 + Epic E foundation:
- Full account deletion (Epic D4) — delete-account Edge Function deployed; erases user data and auth identity server-side (service key never leaves the server). Mobile delete button wired with a safe fallback.
- Cookie/consent layer (Epic D8) — privacy-first banner on the web (essential-only by default, granular analytics/personalization opt-ins, choice stored).
- Admin console now live (Epic G2) — real Total Users + DAU/WAU/MAU via an admin-gated, aggregate-only admin_kpis() function; auto-promote trigger for the admin allowlist. Business/financial figures stay modelled until a billing system exists.
- Wearable-connector foundation (Epic E) — normalized health_signal + connected_providers schema, a consent-gated Connected Devices screen (top-8 providers), and a feature-flag system (lib/flags.ts) — connectors default OFF until a native iOS/TestFlight build.
- Bigger brand lockups across web (auth rail, header, sidebar) and the mobile header/gate.
Earlier this build cycle:
- Web app stitched to Supabase and deployed; marketing + hub live on nutrisync-collective.
- Web auto-deploy pipeline (GitHub → Cloudflare Pages) built and green — Epic B complete on both tracks.
- Mobile: added Edit Health, Notification Center, App Preferences, Nutritional Preferences; wired the "edit health" button and a notifications bell.
- Visual polish: official orb, animated loader, real emotes.
- Documentation fully rewritten and links repaired.
01-PRD (what & why) · 02-Architecture (how it's built + the AWS target) · 03-Platform-Backlog (epics A–I with status) · 04-Team-Testing-Guide (get it on a phone) · 05-Design-Review-and-Readiness · 06-Business-Requirements (workflows WF-1…15) · 07-Spec-Implementation-Plan · 09-Mobile-Beyond-Figma-Requirements (connectors, data rights) · 10-Expo-Publishing-Guide.