Skip to main content

Prerequisites

  • Node.js 18+
  • pnpm 8+
  • A Supabase project (supabase.com)
  • iOS Simulator (for mobile development)

Installation

1

Clone and install

git clone <repo-url>
cd recipe-room-monorepo
pnpm install
2

Set up environment variables

cp apps/mobile/.env.example apps/mobile/.env
Mobile (apps/mobile/.env):
EXPO_CONFIG_MODE=development
EXPO_PUBLIC_SUPABASE_URL=your_supabase_url
EXPO_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
Web Interim (apps/web-interim/.env.local) — only needed if working on auth callbacks or landing page:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
Web App (apps/web/.env.local) — Phase 2, not needed for current development:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
3

Set up the database

Run the initial migration in your Supabase SQL Editor:
  1. Go to your Supabase dashboard → SQL Editor
  2. Paste the contents of supabase/migrations/001_initial_schema.sql
  3. Run the query
See Supabase Setup for full details.
4

Start developing

# Mobile app (iOS) — primary development target
pnpm dev:mobile

# Web interim (auth callbacks, landing page)
pnpm dev:web-interim

# Web app (Phase 2 — not current focus)
pnpm dev:web

Available Scripts

CommandDescription
pnpm dev:mobileStart Expo dev server (primary)
pnpm dev:web-interimStart web interim dev server
pnpm dev:webStart Next.js web app dev server (Phase 2)
pnpm build:webBuild web app for production (Phase 2)
pnpm build:web-interimBuild web interim for production
pnpm lintLint all packages
pnpm type-checkType check all packages
pnpm testRun tests across all packages
For mobile EAS build and submission commands, see Mobile Build Workflow.