Push JavaScript updates to your React Native app instantly. No rebuild, no app store review, no cloud dependency.
Microsoft killed CodePush in March 2025. Your options:
| Solution | Cost | Self-hosted | Bare RN | No account |
|---|---|---|---|---|
| Dead | β | β | β | |
| EAS Update | Paid tiers | β | β | |
| Shorebird | Paid | β | Limited | β |
| LivePatch | Free | β | β | β |
yarn add react-native-livepatchimport { LivePatch } from 'react-native-livepatch';
LivePatch.configure({
updateUrl: 'https://your-server.com/updates',
channel: 'production',
});App checks for updates on launch. If available, downloads and applies automatically.
npx livepatch push --upload githubDone. All users get the update on next app open.
You change code β livepatch push β users open app β new code running
(no store update needed)
livepatch pushbundles your JS and uploads to hosting- App launches β checks update server β downloads new bundle
- App restarts with new code β instant, seamless
livepatch push --upload github # GitHub Releases (free, unlimited)
livepatch push --upload vercel # Vercel (free tier)
livepatch push --upload https://s3.amazonaws.com/my-bucket # Any server
livepatch push # Bundle only (upload manually)No paid service needed. GitHub Releases is free and handles unlimited downloads.
livepatch push # Bundle + prepare update
livepatch push --upload github # Bundle + publish to GitHub
livepatch push --channel staging # Push to staging channel
livepatch push --platform android # Android only
livepatch serve # Local dev server (testing)
livepatch history # Show push history- Free forever β no paid tiers, no limits, no accounts
- Self-hosted β GitHub Releases, Vercel, S3, any static host
- TypeScript β full type definitions included
- Native modules β Android (Kotlin) + iOS (Swift)
- Channel-based β push different updates to dev/staging/production
- Integrity verification β SHA-256 hash check on every bundle
- Rollback β revert to previous version instantly
- Tiny β 13 KB package size, no heavy dependencies
- Works offline β app functions normally without updates
- Auto-apply β or manual control, your choice
import com.livepatch.LivePatchModule
// In getDefaultReactHost:
jsBundleFilePath = LivePatchModule.getCustomBundlePath(this@MainApplication)import LivePatchModule
// In sourceURL:
return LivePatchModule.bundleURL() ?? Bundle.main.url(forResource: "main", withExtension: "jsbundle")import { LivePatch } from 'react-native-livepatch';
// Configure (once on startup)
LivePatch.configure({ updateUrl: '...', channel: 'production' });
// Manual control
const update = await LivePatch.checkForUpdate();
// β { available: true, version: '2026.6.5', size: 983040 }
await LivePatch.download((percent) => console.log(percent + '%'));
LivePatch.apply({ immediate: true }); // restart with new bundle
// Rollback
await LivePatch.rollback();
// Sync (check + download + apply in one call)
await LivePatch.sync();- Bundle integrity verified with SHA-256 hash before applying
- HTTPS enforced for production update URLs
- Rollback on crash detection (if app crashes after update, reverts automatically)
- No code execution from untrusted sources β only signed bundles
- Google Play β β allows JS/asset updates without review (no native code changes)
- Apple App Store β β same policy, CodePush used this for years without issues
The rule: you can update JavaScript and assets, but not native code or app purpose.
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Your App β
β ββββββββββββββββββββββββββββββββββββββββββββββ β
β β LivePatch SDK (JS) β β
β β - Check for updates β β
β β - Download bundle β β
β β - Trigger restart β β
β βββββββββββββββ¬βββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββΌβββββββββββββββββββββββββββββββ β
β β Native Module (Kotlin/Swift) β β
β β - Store bundle on filesystem β β
β β - Override bundle path on next launch β β
β β - Restart app β β
β ββββββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββ
β Update Server β
β (GitHub / Vercel / β
β S3 / your server) β
β β
β manifest.json β
β android.jsbundle β
β ios.jsbundle β
ββββββββββββββββββββββββ
MIT
Hasan GΓΆnen β @hasangonen91
Also check out react-native-starship β wireless deploy for React Native (QR scan β install β running).