Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

131 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PrepAI

PrepAI is a local-first health and fitness app built with Expo and React Native.

It tracks meals, workouts, hydration, sleep, body metrics, goals, supplement logs, and Apple Health imports in local SQLite storage on the device. Core tracking works without AI. Optional local AI features are wired through react-native-executorch and should enhance the app without becoming a dependency for the main experience.

The current v1 release is a free iPhone app on the iOS App Store with no subscriptions or in-app purchases.

Product Summary

  • Local-first health tracking with on-device persistence
  • Apple Health import for activity, workouts, sleep, hydration, and body measurements
  • Meal logging, workout logging, progress tracking, and goal tracking
  • Supplement and peptide-oriented protocol/log support
  • Explicit JSON export/import for user-controlled backups
  • Optional on-device AI features through ExecuTorch
  • Expo/EAS release pipeline for App Store delivery

Current Architecture

App stack

  • Expo SDK 53.0.27
  • React Native 0.79.6
  • React 19
  • Expo Router
  • Zustand
  • SQLite via expo-sqlite
  • Hermes
  • React Native New Architecture

Data model

PrepAI stores user data locally in SQLite. The live app is not built around Prisma, PostgreSQL, or a required cloud sync backend.

Local records currently include:

  • local device profile
  • health profile
  • meals and meal items
  • workouts and exercises
  • progress logs
  • weight entries
  • water intake
  • sleep entries
  • goals
  • supplement protocols and supplement logs
  • food catalog items, custom foods, recipe templates, and local reminder metadata

HealthKit imports write Apple Health samples into local records so the app can use them for dashboards, trends, and local insights.

Persistence boundary

Local SQLite data survives normal app updates.

Deleting the app from iOS removes the app container, so local data should not be promised as reinstall-safe unless the user exported a backup first. For v1, the supported recovery path is explicit JSON export/import from Settings.

AI Direction

PrepAI should ship as a strong health tracker even when AI is unavailable.

Core rule

AI must never block meal logging, workout logging, HealthKit sync, settings, export/import, or progress tracking.

Local AI

  • Preferred runtime: react-native-executorch
  • Installed package: react-native-executorch@0.8.4
  • Local AI is intended for signed native builds, not Expo Go
  • Local AI initialization is deferred so it does not slow first render
  • Local AI should use local app records and avoid sending health data to a backend in the MVP

Release rule

Do not make the first App Store submission depend on ExecuTorch output until a signed iPhone build has passed physical-device validation.

For App Store copy, describe AI conservatively:

  • supported AI features run on device when the local model is available
  • the core tracking experience works without AI

HealthKit Scope

PrepAI requests Apple Health access only after the user chooses to sync Health data.

PrepAI can import useful Apple Health data into local daily records:

  • activity
  • workouts
  • sleep
  • hydration
  • nutrition
  • heart and recovery metrics
  • body and body-measurement data

PrepAI can also save user-created records back to Apple Health when permission is granted:

  • hydration logs
  • meal nutrition totals
  • workout logs
  • body weight entries

HealthKit sync is best-effort and optional. Core local tracking still works without Apple Health permission. The app should not present itself as writing medical recommendations, diagnosing conditions, prescribing dosage, or replacing clinician guidance.

MVP Account Model

PrepAI v1 is intentionally no-login.

The app creates one local device profile on first launch and stores all SQLite records against that local profile ID. Core tracking, Apple Health sync, reminders, export/import, and optional AI features should work without account setup or a required network connection.

App Store Target

  • App name: PrepAI
  • Bundle identifier: com.jongan69.prepai
  • EAS project: @jongan69/prepai
  • Platform scope for v1: iPhone only
  • Price: Free
  • Category: Health & Fitness

The app is configured in app.json and eas.json for a production iOS release with:

  • Hermes enabled
  • New Architecture enabled
  • iOS deployment target 16.4
  • Android release shrinking enabled
  • main and production EAS profiles
  • App Store Connect app ID 6782733134

Current MVP Focus

The app is being tightened around a local-first iPhone MVP with these shipping pillars:

  • no required login
  • Apple Health import into local daily records
  • local meal logging with seeded foods, custom foods, and saved recipes
  • workout logging and reusable workout templates
  • supplement and peptide protocol tracking, reminders, adherence summaries, and notes
  • optional on-device AI for meal plans, local health insights, and protocol organization

Remaining Release Work

The remaining blockers for a true App Store-ready MVP are functional validation and native-device proof, not cloud account setup:

  • finish signed iPhone validation for HealthKit, reminders, export/import, and local AI failure states
  • complete a clean bun run typecheck, bun run lint, and bun run test:readiness
  • confirm App Review contact phone through APP_REVIEW_PHONE
  • finalize App Store Connect pricing, privacy answers, review notes, and screenshots

Local Backup And Data Portability

Settings includes explicit JSON export/import for local backups.

This is the supported v1 portability story:

  1. Export a JSON backup from Settings.
  2. Reinstall or move devices.
  3. Import the JSON backup from Settings.

Future iCloud or document-provider backup can be added later, but it is not the v1 guarantee.

Project Layout

PrepAI/
├── src/                # app code, routes, components, hooks, services, stores
├── scripts/            # release, verification, asset, and maintenance scripts
├── store/              # App Store screenshot assets
├── config/             # performance budgets and release config
├── plugins/            # local Expo config plugins
├── app.json            # Expo app config
├── eas.json            # EAS build/submit profiles
└── store.config.json   # App Store metadata package config

Getting Started

Prerequisites

  • Node.js 18+
  • Bun
  • Xcode for iOS development
  • a physical iPhone for full HealthKit and local-AI validation

Install

bun install

Local development environment

At minimum, configure:

EXPO_PUBLIC_LOCAL_AI_ENABLED=true
EXPO_PUBLIC_LOCAL_AI_PROVIDER=executorch
EXPO_PUBLIC_CLOUD_AI_FALLBACK=false

Then start the app:

bun run dev

Useful variants:

bun run dev:tunnel
bun run dev:ios
bun run dev:android
bun run dev:web

Commands

Development

bun run dev
bun run dev:web
bun run dev:tunnel
bun run prebuild

Code quality

bun run typecheck
bun run lint
bun run test -- --runInBand

Production and release verification

bun run verify:production
bun run verify:release-env
bun run verify:appstore-urls
bun run test:readiness

Bundle and performance analysis

bun run perf:baseline
bun run analyze:atlas
bun run report:atlas
bun run guard:startup
bun run report:module-work

App Store submission helpers

APP_REVIEW_PHONE="+15551234567" bun run verify:appstore
APP_REVIEW_PHONE="+15551234567" bun run submit:appstore

Release Guardrails

bun run test:readiness is the main release gate. It currently covers:

  • TypeScript
  • ESLint
  • startup guard scan
  • import-time module work report
  • knip dead-code audit
  • Jest
  • Expo Doctor
  • iOS export
  • web export
  • production readiness verification
  • performance baseline reporting
  • cleanup of generated release artifacts

Additional production guardrails in the repo enforce:

  • no blocked mock/demo terms in mobile code
  • no oversized critical assets or screenshot package regressions
  • Hermes and New Architecture staying enabled
  • release config drift detection for native build settings
  • Atlas-based module graph budgets

Physical Device Testing

A real iPhone is required for final v1 validation because Expo Go is not the authority for:

  • HealthKit permissions
  • local notification scheduling
  • ExecuTorch/local AI
  • release startup performance
  • App Store readiness

Minimum device pass

  • fresh install opens onboarding
  • onboarding creates a local profile without login
  • dashboard loads
  • add meal works
  • add workout works
  • add water works
  • add weight works
  • supplement protocol and log flows save locally
  • progress screens reflect real local data or empty states
  • JSON export works
  • JSON import works
  • HealthKit permission flow works
  • local AI features either run on device or show a clear local-runtime/model error

App Store Review Notes

Use this positioning for review:

PrepAI requests Apple Health access only after the user chooses to sync Health data. The app imports activity, workouts, sleep, hydration, nutrition, heart and recovery metrics, and body measurements to personalize nutrition, hydration, and workout planning. When the user logs hydration, meals, workouts, or body weight in PrepAI, the app can save those records to Apple Health if the user grants write permission. Users can continue using the app without granting Health access.

Keep peptide or supplement language framed as personal logging and wellness tracking. Do not position the app as prescribing, diagnosing, or recommending medical dosage.

Store Listing Baseline

Subtitle

Health, nutrition, recovery & on-device AI

Promotional text

Track meals, workouts, hydration, sleep, supplements, body metrics, and Apple Health data in one local-first wellness app with optional on-device AI.

Description baseline

PrepAI helps users track nutrition, workouts, hydration, sleep, supplements, body metrics, and Apple Health data in one local-first wellness app. Core records stay on device, with explicit JSON export/import when the user wants a portable backup. Optional on-device AI features deliver health insights and meal planning through ExecuTorch models, while the core tracking experience works fully without AI.

URLs

  • marketing: https://prepaihq.com
  • privacy: https://prepaihq.com/#privacy
  • support: https://prepaihq.com/#support

Repo Notes

  • This repository now uses README.md as the single markdown source of truth.
  • Older standalone markdown docs were consolidated here to reduce drift.
  • If release or testing expectations change, update this file alongside the code/config change that caused it.

About

An AI-powered meal planning application that uses computer vision to analyze your ingredients and GPT-5 to generate personalized weekly meal plans with shopping lists and prep schedules.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages