This repository contains an Expo-managed React Native starter configured with TypeScript, React Navigation, and Supabase auth scaffolding. It includes placeholder screens for upcoming features and uses Supabase session state to control navigation.
- Node.js (LTS recommended)
- npm (bundled with Node.js)
- Expo CLI (installed automatically via npm scripts)
- Copy the example file and fill in your Supabase project values:
cp .env.example .env - Set
EXPO_PUBLIC_SUPABASE_URLandEXPO_PUBLIC_SUPABASE_ANON_KEYwith your Supabase project credentials. - Optional: set
EXPO_PUBLIC_TEST_EMAILandEXPO_PUBLIC_TEST_PASSWORDto enable the placeholder test sign-in button.
npm install
Start the Expo development server:
npm start
You can also target specific platforms:
npm run android
npm run ios
npm run web
- Install the Expo Go app from the iOS App Store or Google Play Store.
- Ensure your device and development machine are on the same network.
- Run
npm startand scan the QR code displayed in the terminal or Expo Dev Tools using Expo Go. - The app will load on your device with live reload enabled.
- Ensure the Supabase CLI is installed and authenticated.
- Set the Gemini API key as a Supabase secret (never store it in the Expo app):
supabase secrets set GEMINI_API_KEY=your-gemini-api-key - Deploy the function:
supabase functions deploy generate-recipe - Confirm the function is callable with your Supabase project and that authentication is configured (the Expo app uses the authenticated Supabase session when invoking the function).
- Ensure your
.envfile is configured (see above) and that the Supabase Edge Function has been deployed to your project. - Start the Expo server with
npm start. - Use the “Fitness recipe (text)” button on the Home screen to open the new flow, and the function will be invoked via Supabase Functions without exposing the Gemini API key to the client.