Skip to main content

Prerequisites

  • Node.js 20 or newer
  • Bun 1.3.14, matching the root packageManager field
  • Xcode and CocoaPods for iOS development
  • Android Studio, an Android SDK, and an emulator for Android development
  • An Expo account and EAS CLI access when pulling environments or creating cloud builds
The mobile app uses native Firebase, RevenueCat, OneSignal, secure storage, and biometric modules. Use a native build or development client; Expo Go is not sufficient.

Install the workspace

From the repository root:
The postinstall scripts patch React Native podspec paths and synchronize generated mobile theme CSS.

Configure development values

The repository uses EAS environments as the intended source for local mobile environment values:
This runs eas env:pull from apps/mobile and moves the generated file to the repository root as .env.local. You can also create a root .env.local manually for local-only values. Never commit credentials. See Environment variables for every supported key.

Create and run a native app

The iOS wrapper patches the Podfile before running the native project.
Start Metro for the installed native app:
Use bun run start:clear when Metro caches become stale.

Regenerate native projects

To remove both generated native directories and regenerate them offline:
bun run clear removes apps/mobile/ios and apps/mobile/android. Commit or preserve intentional native changes before running it.

Run local tools

The Configurator listens on port 5173 by default. Mintlify normally opens its preview on port 3000.

Verify the workspace

This runs affected Nx lint, typecheck, and test targets. See Testing for targeted commands.

Useful commands

  • check runs Biome checks across the workspace.
  • nx:show:mobile displays resolved mobile targets.
  • doctor runs Expo Doctor.