# Rollbird documentation

Ship React Native JavaScript updates over the air, with pricing that never
depends on monthly active users or end users. Rollback is always free and does
not consume release quota.

> **Packages:** [`@rollbird/cli`](https://www.npmjs.com/package/@rollbird/cli)
> and [`@rollbird/react-native`](https://www.npmjs.com/package/@rollbird/react-native)
> are available from the public npm registry.

## Choose a guide

- [Getting started](https://rollbird.dev/docs/getting-started/) takes a new app from installation through a verified update and rollback.
- [CLI reference](https://rollbird.dev/docs/cli/) lists every command, flag, output mode, and exit code.
- [React Native SDK](https://rollbird.dev/docs/react-native/) covers wrapping, channels, strategies, Expo, Hermes, and device behavior.
- [CI/CD](https://rollbird.dev/docs/ci/) shows project-bound tokens and a complete GitHub Actions release.
- [Troubleshooting](https://rollbird.dev/docs/troubleshooting/) maps exact error text to causes and fixes.

## Prerequisites

- Node.js 20 or newer.
- A React Native app. React Native 0.76 is Rollbird's verified baseline; the package currently declares `react-native: "*"`, so older versions have no documented guarantee.
- For Expo, Expo 50 or newer and `@expo/config-plugins` 9 or newer.
- Xcode and CocoaPods for an iOS rebuild. The pinned native client requires iOS 13.4 or newer.
- Android Studio, the Android SDK, and a JDK compatible with the app's React Native version for an Android rebuild. The native client inherits the app's Android `minSdkVersion` and `compileSdkVersion`.
- A Rollbird account and permission to create or link a project.

Hermes is optional. The CLI detects the engine per platform and, when Hermes is
enabled, compiles the update with the `hermesc` shipped by that app's own React
Native dependency.

## Your first release

1. Install `@rollbird/cli` in the app project.
2. Run `rollbird login` and confirm the one-time code in the dashboard.
3. Run `rollbird init --channel preview`, then wrap the existing app export with `Rollbird.wrap`.
4. Rebuild and install the native app so its channel, signing key, and fingerprint are embedded.
5. Run `rollbird release`, launch the installed app, let it download the update, and launch it again.
6. Run `rollbird rollback --channel preview` to prove the recovery path before production.

The [getting-started guide](https://rollbird.dev/docs/getting-started/) gives the
commands, expected output, exact file locations, and verification checks for
each stage.

## Product invariants

- No plan is priced or limited by monthly active users or end users.
- Rollback is always free, never consumes release quota, and remains available when plan or storage limits block a new release.
- Limits refuse new actions; they do not delete live production releases.
- The public CLI surface is five commands: `init`, `login`, `release`, `rollback`, and `status`.

## Source formats

Every page is published as complete static HTML and as Markdown. JavaScript is
not required to read or navigate the documentation. Start from
[llms.txt](https://rollbird.dev/llms.txt) when supplying Rollbird context to an
AI coding agent.
