Install and run

Install dependencies and run the Starter Kit on iOS or Android.

You need Node 20+, pnpm or npm, Xcode (iOS), and Android Studio (Android).

Expo Go is not supported

The Starter Kit uses native modules such as RevenueCat, Firebase, and OneSignal. Expo Go cannot load those. You must run a dev client / native build with prebuild and ios:run:clean or android:run:clean.

From the Starter Kit project root:

1. Install

cp .env.example .env.local
cp .mcp.json.example .mcp.json
npm install

Fill .env.local as you add services. The app boots without every key, but those features stay inactive until the matching env var and flag are set.

Copy .mcp.json.example to .mcp.json so Claude Code / Cursor can use the bundled MCP servers. Details: MCP servers.

2. Native config files

Replace the placeholder Firebase files with your own project:

  • GoogleService-Info.plist (iOS)
  • google-services.json (Android)

Keep the same filenames and paths. app.json already points at them.

3. Run

First generate the native projects (required the first time, and after changing native plugins):

npm run prebuild

Then build and launch on a device or simulator:

npm run ios:run:clean
# or
npm run android:run:clean

prebuild regenerates ios/ and android/ from app.json. The :run:clean scripts build a fresh native app with a dev client (--no-build-cache --device).

For day-to-day work after the first native build:

npm run start
npm run ios:run
# or
npm run android:run

Scripts

ScriptWhat it does
npm run startMetro bundler (expo start --clear)
npm run prebuildClean Expo prebuild (expo prebuild --clean)
npm run ios / androidNative debug build
npm run ios:run / android:runNative build on a connected device
npm run ios:run:clean / android:run:cleanFresh native build, no cache, on device
npm run eas:ios / eas:android / eas:allCloud build
npm run eas:ios:local / eas:android:localLocal EAS development build
npm run eas:submit:ios / android / allStore submit

Next: put the project on your GitHub, then rename it.

On this page