NUTRISYNCBuilders Hub
🏠 🛠
NUTRISYNC · Docs

Change Log — Web & App (traceability)

A single running record of changes across both surfaces — the web platform (marketing + web app + hub) and the native mobile apps — plus the backend/platform. It exists so anyone can trace what changed, where, when, and whether it crossed over between web and mobile.

Sources that feed this log: Design's CHANGELOG.md in each web pack, our integration pass (integrate.py), and the mobile app builds.

How web ↔ mobile sync works (read this first)

Design ships web-only packs (marketing index.html + web app.html + i18n/ + hub/). They contain no mobile code, so web changes do not automatically reach the native app. For every pack we check what actually applies to mobile:

Design change type Crosses to mobile? What we do
Marketing footer / hero / layout, web-app chrome ❌ No Nothing — web-only, separate native app
Wording in the shared app section of i18n ✅ Yes Re-sync those strings into the mobile i18n bundle
Brand tokens (phase colours, brand orange, fonts) ✅ Yes Apply to the mobile theme.ts
A new product screen / feature in the app design ✅ Yes Build it natively in the React Native app

If something crosses over, we ship a fresh nutrisync-app-full.zip (OTA). If nothing does, we say so and only the web is pushed.

Who fixes what — Design vs Integration (ownership)

Design edits its own source canvas and re-exports a fresh compiled web bundle. It cannot ingest our integrated output as a new source, and it cannot produce backend/ops features. So we keep a clean split — Design owns the pixels, we own the wiring — and integrate.py bridges them on every export.

Layer Owner Maintained by
Web visual / structure / navigation (incl. hub room nav) Design Fix in Design's canvas → re-export
Backend wiring, consent banner, admin live KPIs, error-hide Integration (here) integrate.py re-applies each export
Added hub pages (Translations tool, this Change Log, docs CTAs) Integration (here) integrate.py
Mobile app (screens, i18n, logo, theme) Mobile repo (here) nutrisync-app build → OTA
Shared copy/wording (i18n/*.json) Shared Founders edit via the Translations page; kept EN-canonical

Rule of thumb: ask Design only for design / structure / navigation. Do not ask Design to build the Translations page, Change Log, admin wiring, or consent — those live in the integration layer (and Design can't do the backend ones). Never upload our integrated build back to Design as a "source".

Open Design requests (for the next pack)

  1. Hub room navigationdelivered in the 0607v02.53 pack: room/tab changes now push History, so the browser Back button steps within the hub (tab → room → landing) instead of dropping to the landing.
  2. Web onboarding — Back on every step + Start overdelivered in 0607v02.53: Back on every step, a new "Start over" (resets to step 1, clears answers), and the browser Back button steps the wizard back.
  3. Web app — native "Back to site" exitdelivered in 0607v02.53: sidebar item + brand-rail pill + a Settings row (covers mobile). Our stopgap floating button now auto-disables when the native control is present (integrate.py checks for it).
  4. Web app — bigger back controlsdelivered in 0607v02.53: in-app back links are now 44px pills; onboarding back is 44px with a 24px chevron.
  5. Dev error overlay — root-causedresolved in v11.1: the overlay only fires on a real asset miss; Design found the one genuine miss (a Figma-typo'd mood icon, mischeviousmischievous), fixed it, and audited every dynamically-referenced asset — both pages now load with zero console errors. The #__bundler_err{display:none} rule is retained deliberately as a production safety net (a debug overlay should never reach users even if an asset regresses); nothing triggers it today.

All Design brief items are now closed.

Deploy channels


🏁 PO Review — Round 1 scoreboard (WEBFEEDBACK · updated each iteration)

Full triaged backlog: doc 15 — PO Review Round 1. W-numbers below match it.

Wave Items Done Open
1 · Bugs W1–W5 W1 W2 W3 ✅ · W4 ✅ (all three socials live) W5 verify
2 · Pricing/stats W6–W9 W6 W7 W8 W9 ✅ (W6 it.2 per Pilar's decision; W7 already consistent in v11.42)
3 · Copy/assets W10–W14 W10 W11 W13 W14 ✅ (W14 explicit checkbox per PO; W13 mobile on official avatars) W12 web-side → Design (doc 12 §14)
4 · Features W15–W19 W19 (pending PO re-test) W15 W16 W17 W18
5 · Figma polish W20–W24 W20 W22 W23 ✅ (Design v11.43 at source) · W21 ✅ · W24 ✅ (video section still awaits asset)

APPFEEDBACK (F1–F49 + Movement/NutriLog rebuilds) = Round 2, parked per Lucía; assets + Excel DBs received and inventoried.


Log (newest first)

2026-08-05 · r13 — StartUp Admin (quinta superficie) · po93po98

1 Ago 2026 — Sprint 11 · Epic K construido: identidad completa · app v0.18.0 + web po37

(A partir de aquí, las iteraciones pasan a llamarse sprints.)

31 Jul 2026 — R10 (Lucía + Pilar): gráficas finales de Progress + logo definitivo · app v0.17.4-r10a + web po36

31 Jul 2026 — Decisiones de identidad APROBADAS (1A·2A·3B·4B) · web po35

31 Jul 2026 — Doc 29: propuesta de pagos y suscripciones · Epic L · web po34

31 Jul 2026 — Doc 28: propuesta de identidad y autenticación · web po33

31 Jul 2026 — Content-i18n fase 2: el motor diario en los 14 idiomas · SQL l12

31 Jul 2026 — Content-i18n fase 1: el motor diario habla español · SQL + OTA + web po31

30 Jul 2026 — R9 (feedback de Pilar): español completo en cliente · app v0.17.4 + web po30

30 Jul 2026 — Guía Builders para founders + feedback→email

30 Jul 2026 — Gestión del Piloto: cohortes + invitaciones por lotes + feedback segmentado · web po28

29 Jul 2026 (noche) — 🚀 Primera build en TestFlight · cuenta Apple PROPIA aprobada

29 Jul 2026 — Panel de Feedback en la consola admin · web po26

29 Jul 2026 — Paridad PWA ↔ app auditada · app v0.17.3

29 Jul 2026 — TestFlight vía Warnigo listo para build · app v0.17.2-tf1

29 Jul 2026 — Calendario en una pantalla + fix raíz PWA + mobile-first · app v0.17.2 + web po23

29 Jul 2026 — Catálogo ×12: primera pasada de traducción · app v0.17.1 + web po22

29 Jul 2026 — Round 8 (r8b part 2) · app v0.17.0 — the i18n sweep

29 Jul 2026 — Round 8 (r8b part 1) · app v0.16.1

29 Jul 2026 — Round 8 (r8a): period-edit correctness · app v0.16.0-r8a

26 Jul 2026 — Hotfix v0.15.1: stray text node in Movement Log (same class as v0.14.2)

26 Jul 2026 — Round 7: auto-restart fully dead + CSS v2 · app v0.15.0-r7 + 1 SQL migration

25 Jul 2026 — Hotfix v0.14.2: stray text node in GoalOrb

25 Jul 2026 — Design v11.48/49 integrated (web po17): baseline ladder designed on the prototype

24 Jul 2026 — Baseline ladder: first-week empty states become the product's first goal · app v0.14.1

24 Jul 2026 — Round 6: 20/20 in one batch · app v0.14.0-r6a

23 Jul 2026 — Design pack v11.47 integrated (web po15) + LH recolour in app

23 Jul 2026 — Translation debt cleared: 155 mobile strings into the i18n pipeline · app v0.13.2 · web po14

23 Jul 2026 — v0.13.1: visible app version in Settings

23 Jul 2026 — Round 5 (r5a): ring re-spec + exact wireframe assets · app v0.13.0-r5a

23 Jul 2026 — Round 4 batch r4e: Progress wireframe parity · app v0.12.5-r4e — ROUND 4 COMPLETE (30/30)

23 Jul 2026 — Round 4 batch r4d: logs + settings polish · app v0.12.4-r4d

23 Jul 2026 — Round 4 batch r4c: onboarding goal bubbles + Calendar parity · app v0.12.3-r4c

23 Jul 2026 — Round 4 batch r4b: Home wireframe parity · app v0.12.2-r4b

23 Jul 2026 — Round 4 batch r4a: logging persistence + manual cycle restart · app v0.12.1-r4a

19 Jul 2026 — Doc 20: Community Moderation Policy draft template (web po11)

19 Jul 2026 — po10: PWA in architecture docs + pricing section polish

19 Jul 2026 — Hub Translations tool: App onboarding section (web po9)

19 Jul 2026 — Wave 1 of the Q3 dev plan (F5 + G3-phase-1 + onboarding i18n) · app v0.12.0-w1 · web po8

Backend (2 SQL migrations — snapshot first): - 2026-07-19-waitlist-convert.sql — F5 handoff: waitlist.converted_at column, an auth.users INSERT trigger that stamps it whenever a waitlisted email registers (works across all four surfaces, no client code), backfill for existing users, and admin_waitlist() now returns converted_at. - 2026-07-19-admin-growth.sqladmin_growth() RPC: last-12-months signups + waitlist per month, plus totals (users / waitlist / converted). Aggregate-only, no PII, gated on public.admins.

Web (po8): - Waitlist dashboard: new App user column (✓ when the signup registered), sortable, in CSV export, plus a "Now app users" stat card. - Admin console: new Growth — real actuals panel (12-month users vs waitlist bars + totals + waitlist→user conversion %) and Model assumptions panel — monthly growth %, premium share %, ARPU editable, saved per device (localStorage), 12-month projection table vs the Conservative plan. Both wired via integrate.py (marker ns-growth, idempotent across Design packs).

Mobile app (v0.12.0-w1, OTA + PWA rebuild): - Onboarding i18n engine: every onboarding string (sections, questions, helpers, option labels/sublabels, beta welcome, consent, all-set) now renders through ob.* keys with English fallback. Canonical option values stay English — display-only, so onboardingMap/Supabase parity is untouched. - 76 ob.* keys translated into all 13 non-EN catalogs (ES hand-written; FR·DE·IT·NL·EL·CA·VAL·GL·EU·Aranés·ZH·JA machine-first-pass, pending native review). ob-translation-skeleton.json produced for founders/Design review. - EN copy fixes in the wizard: "You're data"→"Your data", "reaserch"→"research", "Prefrences"→"Preferences", "Im"→"I'm". - Release gate: the language selector already only offers bundled catalogs; the MT first pass ships silently behind English defaults until founders sign off the EN copy (then per-language review).

Post-mortem note: none — no incidents this wave.

2026-07-19 · Backlog sweep + target architecture (doc 19 B3)

2026-07-19 · Launch readiness + AWS scale-up plan (doc 19 Appendix B, Epic K)

2026-07-19 · Corporatisation plan (doc 19, EN+ES)

2026-07-19 · Ops hygiene: working folder, auto-archiving, rollback runbook (doc 18)

2026-07-19 · Dedicated working folder (platform hygiene)

2026-07-19 · Builders "Access" page (web)

2026-07-19 · PWA synced to v0.11.0 (m.nutrisynccollective.com)

2026-07-19 · R3 batch I — v0.11.0-r3f (OTA): Onboarding + two-step activation. ROUND 3 COMPLETE

2026-07-19 · R3 batch H — v0.10.4-r3e (OTA) + feedback table (SQL)

2026-07-19 · R3 batch G — v0.10.3-r3d (OTA): NutriLog + Movement CTAs

2026-07-19 · R3 batch F — v0.10.2-r3c (OTA): Progress rebuilt

2026-07-19 · R3 batch E — v0.10.1-r3b (OTA): Calendar rebuilt

2026-07-19 · R3 batch 1 — v0.10.0-r3a (OTA) + versioning policy

2026-07-19 · PO Review Round 2 ingested (app)

2026-07-18 · Footer QR now points to the mobile PWA (web)

2026-07-18 · 4th surface live — mobile PWA at m.nutrisynccollective.com

2026-07-18 · Access-first entry for Investors/Builders (web)

2026-07-18 · Design pack 1807_v11.45 — footer QR at source + disclaimer fix

2026-07-18 · Platform — branch protection on main ✅

2026-07-18 · Platform — Zero Trust on /hub/* ✅

2026-07-18 · Custom domain live + live waitlist counter (po8 → po9 hotfix → po10 QR)

2026-07-17 · R2-K — final APPFEEDBACK cleanup (mobile)

2026-07-17 · Round-1 final answers wired (web)

2026-07-17 · R2-I + R2-J — Calendar & Progress rebuilds (mobile)

2026-07-17 · R2-H — Home rebuild: interactive cycle ring (mobile)

2026-07-17 · R2-G + Round-1 answers wired (web + mobile)

2026-07-17 · R2-F — Settings batch F39–F48 (mobile)

2026-07-17 · R2-E — APPFEEDBACK quick wins (mobile)

2026-07-17 · R2-D — Movement Log 4-screen rebuild (mobile)

2026-07-17 · Design pack 1707_v11.43 — all 7 source requests delivered

2026-07-17 · R2-C — NutriLog 4-screen rebuild (mobile)

2026-07-17 · R2-B — recommendation engine (Supabase RPC)

2026-07-17 · Round 2 kickoff — R2-A content schema (Excel → Supabase)

2026-07-17 · PO Round 1 — Iteration 5 · F16 PCOS → PMOS (web + mobile)

2026-07-17 · PO Round 1 — Iteration 4 (web) · W21 circular day strip

2026-07-17 · PO Round 1 — Iteration 3 (web) · W2+W3 data integrity

2026-07-17 · PO Round 1 — Iteration 2 (web) · W6+W7 pricing

2026-07-17 · PO Round 1 — Iteration 1 (web)

2026-07-07 · Prototypes moved off the public site → Builders "Prototypes" tab

2026-07-07 · Web pack v11.42 — Basque + Aranese native review DONE

2026-07-07 · Mobile — Welcome fidelity + radial-peach app-wide

2026-07-07 · Web pack v11.41 + mobile Welcome selector & back-nav

2026-07-06 · v11.30 — Japanese live · all 14 languages complete

2026-07-06 · v11.29 — Back buttons on Founder Tools pages

2026-07-06 · v11.28 — Founder Tools cards open in-place · Unicode verified

2026-07-06 · Web pack v11.27 — Chinese live (web app + mobile)

2026-07-06 · Web pack v11.26 — Aranese marketing (12 European langs complete)

2026-07-06 · Web pack v11.25 — Valencian complete + Aranese live

2026-07-06 · Web pack v11.24 — Valencian live (web app + mobile)

2026-07-06 · v11.23 — Docs: back navigation on every page

2026-07-06 · v11.22 — Galician live + cache-busting headers

2026-07-06 · Web pack v11.21 — Basque marketing (Basque complete)

2026-07-06 · Web pack v11.20 — Basque live (web app + mobile)

2026-07-06 · Web pack v11.19 — Catalan marketing (Catalan complete)

2026-07-06 · Web pack v11.18 — Catalan live (web app + mobile)

2026-07-06 · Web pack v11.17 — Greek & Dutch marketing (7 core langs complete)

2026-07-06 · Mobile selector aligned to ISO codes

2026-07-06 · Web pack v11.15 — Italian marketing live

2026-07-06 · Web pack v11.14 — 7 languages live (web + mobile crossover)

2026-07-06 · v11.7 — Founders' Review Checklist

2026-07-06 · v11.6 — Multilingual to 14 (+ 中文/日本語); mobile + tool built

2026-07-06 · v11.5 — Multilingual expanded to 12 (Spain co-official) + MT decided

2026-07-06 · v11.4 — Multilingual (7 languages) spec + skeletons

2026-07-06 · v11.3 — Release Note + backlog refresh

2026-07-06 · Web pack v11.2 — auth/onboarding back-to-site pill

2026-07-06 · Web pack v11.1 — error overlay root-caused (brief closed)

2026-07-06 · Web pack (0607v02.53) — Design brief fixes landed

2026-07-06 · Design Brief doc added

2026-07-06 · App polish — bigger back arrow + prominent web-app exit

2026-07-06 · Change Log — build filenames added

2026-07-06 · Waitlist dashboard — undo/rollback + DB runbook

2026-07-06 · Waitlist dashboard — full CRUD

2026-07-06 · Onboarding navigation — mobile fixed, web spec'd

2026-07-06 · Waitlist — legacy migration + live capture

2026-07-06 · Web pack (05072026) — hub room navigation fixed

2026-07-04 · Known issue logged — hub room navigation (resolved 07-06)

2026-07-04 · Web pack v10.40 — footer redesign

2026-07-04 · Documentation & backlog refresh

2026-07-04 · Bilingual EN/ES + Design bilingual pack

2026-07-03 · Wave 1 + Epic E foundation

2026-07-02 · Web app live + CI/CD


How to add an entry

When a new web pack lands or a mobile build ships, add a dated block at the top with three lines — Web, Mobile, Platform — noting what changed and, crucially, whether it crossed between surfaces. Include a Build line naming the package(s) it shipped in. Keep canonical values English (see the i18n contract).

Build naming (avoid deploying the wrong file): - Design raw pack (input, not deployable on its own): nutrisync-web-design-0607_vX.Y.zip. - Integrated deployable (what we actually push — Design's pack + our layer via integrate.py): nutrisync-web-0607_vX.Y.zip (no design-). - Always deploy the one without design-.