Skip to main content
The Vibra Code mobile app is a heavily modified fork of Expo Go. It includes a native iOS chat UI built with Texture and IGListKit, along with all the Vibra Code screens and services. This guide covers building and running it from source.
macOS is required for iOS builds. You cannot build the iOS app on Linux or Windows. Android builds can be done on any platform.

Prerequisites

  • macOS with Xcode 16 or later
  • CocoaPods: gem install cocoapods
  • Yarn: npm install -g yarn
  • cmake and ninja (for building the Hermes JS engine):
Running brew bundle from the vibracode-mobile root installs cmake, ninja, and other native build dependencies declared in the Brewfile.

Setup

1

Clone the repository

The mobile app depends on submodules — React Native is built from source and the Expo template is included as a submodule. You must use --recurse-submodules.
2

Install JavaScript dependencies

3

Run native setup

This script configures native build settings and prepares the workspace:
4

Build Expo packages

The project uses a local copy of the Expo SDK. Build it from source:
5

Install React Native from source

6

Install CocoaPods

7

Configure the mobile environment

Copy the example env file and fill in your values:
At minimum you need:
Set EXPO_PUBLIC_V0_API_URL and EXPO_PUBLIC_API_URL to the URL of your running backend. Use http://localhost:3000 for local development.
8

Start Metro

Metro must run on port 80 for the local Expo Go kernel to find it:
Metro must be running on port 80 before you build in Xcode. If Metro is on any other port, the app will not connect to your local bundle.
9

Build and run in Xcode

  1. Open apps/expo-go/ios/Exponent.xcworkspace in Xcode (use .xcworkspace, not .xcodeproj)
  2. Open EXBuildConstants.plist and set DEV_KERNEL_SOURCE to LOCAL
  3. Select your target device or simulator
  4. Press Build and Run (⌘R)

Android build

Android builds work on macOS, Linux, or Windows:
The resulting APK is in android/app/build/outputs/apk/debug/.

Troubleshooting

Project structure

The key directories inside vibracode-mobile/apps/expo-go/ are:
The native chat UI in ios/Client/Menu/ is written in Objective-C and uses Texture (AsyncDisplayKit) for off-main-thread rendering.

Next steps