AppbrewDevelopers
Start here

Run your app

Boot the app on a simulator or device and point it at a store.

The run commands

pnpm run-ios

Installs pods, builds the native app, starts the dev server, and launches on a simulator. Pick a specific simulator with:

pnpm run-ios --simulator="iPhone 17 Pro"

Testing on real hardware, including iPhones (which go through Xcode), is covered in Run on a physical device.

What the dev server does

The run commands start a dev server: a JS bundler that serves the app's JavaScript bundle to the simulator. The native app is built once; after that, edits to TypeScript/JavaScript hot-reload into the running app without rebuilding. You only rebuild the native side when native dependencies change.

If the bundler gets into a stale state (module resolution errors after moving files), restart it with a cache reset:

pnpm start --reset-cache

The .env file

The app is config-driven: which store's screens, blocks, and theme it loads is decided by .env in the repo root. Your repo ships with this preconfigured. You don't need to touch it to get running.

.env
ENV=debug
APP_ID="app_XXXXXXXXXXXXX"
APP_NAME="Your Store"
APP_THEME_ID="theme_XXXXXXXXXXXXX"
APP_SERVICE_URL="https://edge.app.appbrew.tech"
  • APP_ID / APP_THEME_ID identify the app and theme config to load from the Appbrew backend.
  • APP_SERVICE_URL is the Appbrew edge API. Don't change it.
  • ENV=debug loads the editable (non-live) theme you work on in the Appbrew dashboard; ENV=release loads the published theme.

Pointing the app at a different store means changing APP_ID (and APP_THEME_ID) to values from that store's Appbrew dashboard, then restarting with pnpm start --reset-cache and relaunching. Partner sample apps ship with the demo store's values; merchants get their own store's values preconfigured.

Common first-run issues

  • Nothing launches on iOS — no simulator matched. Open Xcode's Simulator once so a device exists, or pass --simulator explicitly.

  • run-android can't find a device — the emulator isn't running. Start one from Android Studio first.

  • iOS build fails after dependency changes — pods are stale:

    pnpm clean-ios && pnpm run-ios
  • Bundler serves stale or missing modules — watchman and bundler caches: pnpm start --reset-cache.

For everything beyond a first run (Gradle failures, Xcode DerivedData, registry 401s), see Troubleshooting.

On this page