# 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

- [OTA updates explained](https://rollbird.dev/docs/react-native-ota-updates/) covers what ships over the air, what needs a store submission, and how channels, staged rollout, and rollback work.
- [Getting started](https://rollbird.dev/docs/getting-started/) takes a new app from installation through a verified update and rollback.
- [Migrating from CodePush](https://rollbird.dev/docs/migrating-from-codepush/) maps CodePush commands to the Rollbird CLI and shows how deployment keys become channels.
- [CodePush alternatives](https://rollbird.dev/docs/codepush-alternatives/) compares hosted and self-hosted replacements for CodePush, with dated costs at three app sizes.
- [Rollbird vs Stallion](https://rollbird.dev/docs/rollbird-vs-stallion/) walks one release through both tools and compares concepts and cost at three app sizes.
- [EAS Update pricing](https://rollbird.dev/docs/eas-update-pricing/) explains EAS Update's plans, update MAUs, overage and bandwidth with worked examples.
- [Rollbird vs EAS Update](https://rollbird.dev/docs/rollbird-vs-eas-update/) compares setup, concepts and migration for teams weighing the two.
- [Rollbird vs Revopush](https://rollbird.dev/docs/rollbird-vs-revopush/) compares cost at three app sizes and lists every file that changes when you leave the CodePush SDK.
- [Coding agent integration](https://rollbird.dev/docs/coding-agents/) gives coding agents a bounded workflow, safety rules, and a verification handoff for an existing app.
- [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) and the
[coding agent integration guide](https://rollbird.dev/docs/coding-agents/)
when supplying Rollbird context to an AI coding agent.
