A social app for posting the food you cook and sharing it with friends — "Strava for cooking." Built with Expo (React Native + web from one codebase) and Supabase (Postgres, Auth, Storage, RLS).
This app uses the src/ directory layout:
src/
app/ Expo Router routes (file-based)
(auth)/ sign-in, sign-up, onboarding
(tabs)/ Feed, Explore, Post, People, You
lib/ supabase client, auth, data layer, validation
constants/ theme tokens (dark-first design)
components/ shared UI
__tests__/ Jest tests + helpers
supabase/
migrations/ versioned SQL (schema, RLS, storage)
docs/
superpowers/plans/ implementation plans per milestone
Config files (package.json, tsconfig.json, app.json, jest.setup.js) live at the repo
root. The TS path alias @/* maps to ./src/*.
-
Install dependencies:
npm install
-
Create a
.envat the repo root (gitignored) with your Supabase project keys:EXPO_PUBLIC_SUPABASE_URL=https://<your-project-ref>.supabase.co EXPO_PUBLIC_SUPABASE_ANON_KEY=<your-anon-key> -
Apply the database migrations in
supabase/migrations/to your Supabase project (in order).
npm run start # Expo dev server (press w for web, scan QR for Expo Go on iPhone)
npm run web # web onlyOn Windows, the laptop preview is the web build; preview on iPhone via the
Expo Go app (same Wi-Fi, or npx expo start --tunnel).
npx tsc --noEmit # type-check
npm test # Jest unit/component/integration tests
npx expo export --platform web # verify routes/bundle- Expo SDK 56, React Native 0.85, React 19, TypeScript, Expo Router (typed routes).
- Supabase JS client with RLS; photos in Supabase Storage.
- Jest + jest-expo + @testing-library/react-native.