A practical guide for the team — including the testers in Madrid — to try NutriSync across all three surfaces: the live web app, the marketing site, and the native mobile app on real phones. Everything is shared over the internet, so it works no matter where each person sits; nobody needs to be on the same Wi-Fi or hold a copy of the code.
As of July 2026, the web surfaces are live and public on Cloudflare Pages, and the mobile app is ready to distribute as a shareable Android APK (or via iOS TestFlight once Apple enrollment is done). This document tells you exactly where to click and what to run.
Analogy for the two mobile paths: a shareable build (APK / TestFlight) is a sealed product sample — a tester taps an icon and it just runs, no laptop involved. Expo Go is screen-sharing your running app — great while a developer is actively building, but it depends on that developer's machine being on. For the Madrid testers, send a build.
There is nothing to install. The whole product is already online as one Cloudflare Pages deployment (project nutrisync-collective):
123456.The web app is the Claude Design build stitched to the same Supabase backend the mobile app uses — real sign-up and log-in, real cycle onboarding, real logging, and the same Cycle Alignment Score. It reads and writes all eight core tables and supports in-app JSON export and account deletion. So a tester who signs up on the web and a tester who signs up on Android are hitting the exact same database.
Ops note for whoever administers Supabase: "Confirm email" must stay OFF in Supabase Auth for self-serve sign-up to complete without a mailbox round-trip. The anon key baked into the web bundle is public and safe — Row-Level Security scopes every row to the signed-in user, so one tester can never see another's data.
The site is currently public (the old Cloudflare Access email whitelist was removed). If you ever need to lock it down for an external audience, it can be re-added via Cloudflare Zero Trust → Access.
There are three ways to get NutriSync onto a phone. For non-developers such as the Madrid testers, use A (Android APK) first; it is the least friction and needs no paid account.
| Path | Best for | Paid account needed? | Gets OTA updates? |
|---|---|---|---|
| A. Android APK (EAS Build, preview) | Any Android tester, distributed team | No | Yes — after install |
| B. iOS TestFlight | iPhone testers | Yes — Apple Developer Program ($99/yr) | Yes |
| C. Expo Go (dev) | Developers iterating live | No | No |
The APK and TestFlight paths install a real build of the app, which is what receives over-the-air (OTA) updates when the team pushes code. Expo Go does not receive OTA — it only ever runs whatever a developer's machine is currently serving.
This is the sealed-sample path: one cloud build produces a downloadable .apk with a share link and QR, and no Apple or Google paid account is required.
npm install -g eas-cli
eas login # use the shared Expo account
git clone https://github.com/githubjuanjose/nutrisync-app
cd nutrisync-app
npm install
eas build --profile preview --platform android
The preview profile is configured for internal distribution with buildType: apk. When the cloud build finishes, EAS returns a download page with a link and QR code.
After a tester has the APK installed once, every push to the nutrisync-app repo reaches them over the air (Section D). They just reopen the app to get the latest JS/UI.
iOS cannot sideload the way Android can, so Apple's TestFlight is the route for iPhone testers. The blocker today is enrollment: a free Apple account has no "team" and cannot sign or distribute a build. You need the Apple Developer Program ($99/year) first.
Once the org is enrolled:
eas build --platform ios --profile production
eas submit --platform ios --latest # uploads to App Store Connect → TestFlight
com.nutrisync.app; export-compliance is pre-answered (ios.config.usesNonExemptEncryption = false), so there's no per-build encryption questionnaire.Until Apple enrollment is complete, point iPhone-only testers at the web app (Section 1) so they can still try the product.
Expo Go is for the people actively building, not for stakeholder testing.
cd nutrisync-app
npx expo start # same Wi-Fi: scan the QR with Expo Go
npx expo start --tunnel # remote: routes through Expo's servers (ngrok)
--tunnel avoids network config but relies on ngrok, which is flaky and outage-prone — fine for a quick look, not for a reliable tester session.The mobile OTA pipeline is live. Think of the GitHub Action as a conveyor belt: push code → the app updates itself on every installed build, no rebuild, no store review.
nutrisync-app repo has a GitHub Action (.github/workflows/eas-update.yml) that runs eas update --branch production on every push.eas update --branch production --message "tweak Home screen"
Testers need nothing but a phone and the link you send. Developers building the app need:
npm install -g eas-cli.The two repos:
- githubjuanjose/nutrisync-app — the Expo mobile app + OTA pipeline.
- githubjuanjose/nutrisync-web — the marketing site + wired web app + gated hub + Cloudflare deploy pipeline.
/app.html) and the Team-access code 123456 for the hub.eas build --profile preview --platform android, send the APK link/QR.eas submit → invite them on TestFlight. Until then, point them at the web app.nutrisync-app reach installed builds over the air; no reinstalls.--tunnel; ensure the phone has internet. Remember the tunnel depends on ngrok and can be flaky.