Quick Start
Get RNCopilot running on your machine in under five minutes.
Prerequisites
Before you begin, make sure you have:
- Node.js 18+ and npm
- Expo CLI (included via
npx expo) - iOS Simulator (macOS only) or Android Emulator
You do not need a Supabase account or any backend service to run the app. RNCopilot boots and works fully without any external services configured.
Installation
Clone the repository
git clone https://github.com/FouadMagdy01/RNCopilot.git my-app
cd my-appReplace my-app with whatever you want to name your project directory.
Install dependencies
npm install --legacy-peer-depsThe --legacy-peer-deps flag is required due to peer dependency resolution in the React Native ecosystem. Do not omit it.
Set up environment variables (optional)
cp .env.example .envThis creates a .env file from the included example. All variables are optional — the app uses sensible defaults and gracefully degrades when services like Supabase are not configured. You can fill in credentials later when you are ready to connect external services.
Start the development server
npm startThis launches the Expo development server. From the terminal menu:
- Press
ito open the app in the iOS Simulator - Press
ato open the app on an Android Emulator - Scan the QR code with Expo Go on a physical device
Verify It Works
Once the app launches, you should see the home screen with tab navigation at the bottom. The Settings tab demonstrates theming (light/dark mode toggle) and language switching (English/Arabic with RTL).
Path Aliases
RNCopilot uses two path aliases so you never need long relative imports:
| Alias | Maps To | Example |
|---|---|---|
@/* | src/* | import { Button } from '@/common/components/Button' |
~/* | app/* | import type { LayoutProps } from '~/types' |
These aliases are configured in both tsconfig.json (for TypeScript) and babel.config.js (for the bundler), so they work everywhere — in your editor, in tests, and at runtime.
Common Commands
Here are the commands you will use most often during development:
# Start the dev server
npm start
# Run on a specific platform
npm run ios
npm run android
# Code quality checks
npm run type-check # TypeScript compiler check
npm run lint # ESLint
npm run lint:fix # Auto-fix ESLint issues
npm run format # Prettier format all files
npm run validate # Run all checks (type-check + lint + format)
# Testing
npm test # Run the test suite
npm run test:coverage # Run tests with coverage reportWhat’s Next?
Now that the app is running, learn how the codebase is organized:
- Project Structure — Understand the directory layout and file conventions
- Environment Setup — Configure Supabase, API URLs, Sentry, and more