ABStrack is an open-source, privacy-first health tracking platform for people living with Auto-Brewery Syndrome (ABS). It is designed to help patients document episodes, symptoms, health markers, food intake, and media evidence, while giving caretakers and authorized healthcare practitioners access to the data they need.
This repository is an Nx monorepo containing the patient mobile app, supplementary user web app, practitioner web app, and shared packages.
- Patients and caretakers are mobile-first:
apps/mobileis the primary experience. - User web in
apps/websupports supplementary patient and caretaker flows. - Practitioners use the dedicated web app in
apps/practitioner. - Data is backed by Supabase, with PowerSync used for mobile offline replication.
- Accessibility is a core product requirement, especially for episode logging during cognitive impairment.
ABStrack/
|- apps/
| |- mobile/ # Expo / React Native app for patients and caretakers
| |- web/ # Next.js user web app
| |- practitioner/ # Next.js practitioner web app
| |- web-e2e/ # Playwright tests for user web
| `- practitioner-e2e/ # Playwright tests for practitioner web
|- packages/
| |- supabase/ # Shared Supabase clients, auth helpers, typed queries
| |- powersync/ # PowerSync sync config and helpers
| |- types/ # Shared domain types
| |- ui/ # Shared cross-platform UI components
| `- ui-web/ # Shared web-only UI helpers/components
|- docs/ # Product, setup, accessibility, security, and roadmap docs
`- supabase/ # Migrations and Edge Functions
Nx+pnpmmonorepoNext.jsfor the web appsExpo+React Nativefor mobileSupabasefor auth, Postgres, storage, and Edge FunctionsPowerSyncfor offline-first mobile syncTailwind CSS/NativeWindfor styling
- Install dependencies:
pnpm install --frozen-lockfile- Create local env files from the template and fill in real values:
cp .env.example apps/web/.env.local
cp .env.example apps/practitioner/.env.local
cp .env.example apps/mobile/.env- Start the apps you need:
pnpm web
pnpm practitioner
pnpm mobile- Run workspace checks:
pnpm validateFor the full setup process, environment variable details, Supabase CLI workflow, and mobile development notes, see docs/DEV_SETUP.md.
docs/PRD.md- product requirements and architecturedocs/DEV_SETUP.md- local development setupdocs/SUPABASE_CLOUD_DEVELOPER.md- Supabase Cloud workflow, migrations, and type generationdocs/A11Y.md- accessibility conventions and expectationsdocs/SECURITY_BASELINE.md- security baseline and implementation notesdocs/ROADMAP.md- development roadmap and milestonesdocs/CHARTS_VERIFICATION.md- chart verification guidancedocs/AUTH_CLAIM_CONTRACT.md- auth/session claim expectationsdocs/EPISODE_DELETION_POLICY.md- episode deletion rules
- This repo uses current Supabase publishable and secret API keys, not legacy anon/service-role env names.
- Mobile development requires a development build or native run flow; do not rely on Expo Go for this app.
- Database schema changes should be made through
supabase/migrations/, with the full workflow documented indocs/SUPABASE_CLOUD_DEVELOPER.md.
MIT