Ship React Native Updates Fast.
Push JavaScript bundle fixes directly to your users' devices — no App Store review, no waiting. Native analytics, signed bundles, rollback safety net, all in one place.
Integrates with the tools you already use
Process
How we deliver
high-quality updates
Four steps from your editor to your users' pockets — no App Store middleman.
Communicate via CLI
Run `npx nitropush release upload` from your CI pipeline or local machine. Flags let you target project, environment, app version, and platform.
NitroPush routes the update
The control plane validates your deployment key, hashes the bundle, stores it on your chosen backend, and writes the release record.
Verify & sign the bundle
Optional ECDSA P-256 signing lets devices verify every bundle before installing. A tampered file is rejected before it touches the runtime.
Devices install silently
The SDK polls on foreground or on demand, downloads the diff, and swaps the bundle on next restart — users get the fix without a store visit.
Features
Everything you need,
nothing you don't
Built specifically for React Native and Expo — not adapted from a web deploy tool.
Native analytics
Telemetry fires from Swift and Kotlin — not from JS. Install events, rollback triggers, and device sessions are server-authoritative and tamper-proof.
Per-project routing
Each project has isolated environments. One deploy key per environment — no cross-project leakage.
Rollback safety net
If a device crashes before calling notifyAppReady(), the SDK auto-rolls back to the previous bundle on next launch.
Content-addressable storage
Bundles are stored by SHA-256 hash. Identical files are deduplicated automatically — re-releases cost zero extra storage.
Five-minute SDK
One npm package, one configure() call at module scope, one notifyAppReady() after mount. Works with Expo managed workflow and bare React Native.
Delta bundle updates
Ship only the bytes that changed. The CLI computes a bsdiff4 patch against the previous release — opted-in devices download 85–95% less data for JS-only changes.
Delta updates
Ship 90% less data
with every release
Instead of sending a full 1.5 MB bundle for a one-line fix, NitroPush computes a binary diff and sends only what changed — typically 5–15% of the bundle size.
import React from 'react';
import { Text, View } from 'react-native';
export default function HomeScreen() {
return (
<View>
- <Text>Welcome to my app!</Text>
+ <Text>Welcome back! What's new?</Text>
</View>
);
} 1 line changed in source
Download size comparison
How it works
- 1 CLI computes a bsdiff4 binary diff between the previous bundle and the new one
- 2 Patch (+ full bundle as fallback) uploaded to storage in one command
- 3 Device downloads only the patch — 107 KB instead of 1.5 MB
- 4 SDK applies bspatch natively in Swift/Kotlin, verifies SHA-256, installs
Full bundle always uploaded as automatic fallback. Billing counts actual bytes served server-side — delta patch size or full bundle size, never client-reported.
Pricing
Simple, usage-based pricing
Start free. Pay only as your app grows. No seat minimums, no annual lock-in on Pro.
Test OTA updates before you ship to real users.
- 1 seat
- 1 project
- 1,000 MAU / mo — monthly active devices
- Unlimited bandwidth — on test environments
- Test environments only
- All SDK features
- Bundle signing (ECDSA)
For production apps. Pay only for what you actually use.
- 5 seats included
- Unlimited projects
- 5,000 MAU included — monthly active devices
- 10 GB bandwidth included — billed at actual bytes served
- Delta bundle updates — patches billed at patch size, not full bundle
- Production environments
- Slack & Discord alerts
- Bundle signing (ECDSA)
- Priority support
Overage rates
All prices in USD. MAU = a device that polls for updates at least once in the calendar month. Delta downloads are billed at actual patch size — not the full bundle size.
Blog
From the team
How to Integrate NitroPush: Native Wiring + JS SDK Guide
A step-by-step walkthrough of integrating NitroPush into your React Native or Expo app — from account setup to your first live OTA update. Covers iOS AppDelegate, Android MainApplication, and the full JS API surface.
Why OTA Updates Are Essential for React Native Apps
App Store reviews take days. Your users' bugs don't wait. Here's why every production React Native app needs an over-the-air update strategy — and what you're risking without one.
Get started today
Stop waiting on the
App Store to ship a fix
Five-minute setup. Free during beta. No lock-in. Ship your first OTA update today and never wait for a review again.