Welcome to NitroPush
NitroPush is over-the-air updates for React Native and Expo apps. Push a JS bundle to production in seconds, watch adoption in real time, and route release events to Slack, Discord, email, or your own webhook — all from one dashboard.
This is the place to start. The next four pages walk you from “I just signed up” to “my app is checking for updates from production” in about ten minutes.
How OTA works in NitroPush
The big picture, end to end:
- You push a release with the CLI (
nitropush release upload …). The CLI hashes your bundle, dedupes assets that already exist, and uploads what’s new to your storage bucket. - Your app’s Nitro SDK asks NitroPush “is there anything newer?” on every sync. If yes, the server hands back a manifest.
- The SDK downloads the bundle + assets straight from your bucket, verifies each file’s SHA-256, then schedules an install (immediate / on next restart / on next resume — your call).
- On the next safe moment, your app launches on the new bundle.
notifyAppReady()confirms the install; if the new bundle crashes, the next launch automatically rolls back to the previous version.
Throughout, events fire from native code (Swift on iOS, Kotlin on Android) — not from the JS thread — so you see the truth even when a bundle crashes on cold start.
What you’ll do next
The order matters — each page assumes you finished the previous one:
- Accounts — sign up, log in, create teammates.
- Applications — create a project, configure environments, copy your deployment keys.
- Notifications — wire Slack, Discord, custom webhooks, or email so the team sees release events.
- Releases — install the SDK, upload your first release, watch a device check for updates.
Each page has a deep link to the matching admin screen so you can jump straight in instead of hunting through the sidebar.
Need a deeper reference?
- CLI overview — every flag of every command.
- Nitro SDK reference —
configure,sync,notifyAppReady, install modes, and the rollback safety net.