Local-first, Low-cost, and Compliance-focused F&B Inventory App.
apps/mobile— Expo (React Native) + TypeScript (offline-first)apps/web-landing— Next.js (App Router) + Tailwind (Marketing + Payment portal)apps/desktop— Electron + Vite (React) + TypeScript (Heavy-lifting workstation app)supabase/— Supabase local dev + Edge Functions + migrations
From SnapKO/:
pnpm mobile:start— start Expopnpm web:dev— start Next.jspnpm desktop:dev— start Electron + Vitepnpm db:start— start Supabase (Docker)pnpm db:reset— apply migrations + seed (local)
This repo follows strict env var prefixes:
- Mobile (Expo):
EXPO_PUBLIC_* - Web (Next.js):
NEXT_PUBLIC_* - Desktop (Vite):
VITE_*
Each app includes a committed .env.example. Copy it to .env (do not commit .env):
apps/mobile/.env.example→apps/mobile/.envapps/web-landing/.env.example→apps/web-landing/.envapps/desktop/.env.example→apps/desktop/.env
- Start:
pnpm db:start(if it fails, check Docker Desktop is running) - Reset DB (applies migrations):
pnpm db:reset - Studio:
http://127.0.0.1:54323(API:http://127.0.0.1:54321)
- Staff onboarding must be invite-code + full name + phone number only (data minimization).
- Mobile must not contain direct “Pay Now” actions (open web portal instead).
- After any DB schema change, run:
pnpm exec supabase db diff