Healkite
Over-the-air updates for React Native that roll out by themselves and roll back when something breaks.
Healkite sends JavaScript and asset fixes straight to your users' phones, without an App Store or Play Store review. Every update is signed, downloaded as a small diff, tried on the next launch and kept only if the app starts cleanly. Releases go out to 1% of devices first and widen on their own while crash and business metrics stay healthy.
What you get
| Crash-safe installs | Each update gets a trial launch. If the app never reports ready, the device rolls back by itself. |
| Guarded rollouts | 1% → 10% → 50% → 100% automatically when healthy; halts and rolls back on crashes or a drop in your own metrics. |
| Small downloads | Binary diffs of Hermes bytecode, typically 80–99% smaller than full bundles. |
| Signed end to end | You sign bundles, the server signs manifests. A compromised CDN can't push code or downgrade users. |
| Recovery | One-click rollback, and a kill switch that shows a maintenance screen without a release. |
| Previews and experiments | PR previews inside the store build, A/B experiments with confidence intervals. |
| Instant hotfix | Optional silent push so open apps update within seconds. |
| Automation | CLI, GitHub Action, REST API and an MCP server for Claude, Cursor and VS Code. |
| CodePush compatible | Same JavaScript API and CLI verbs: migrate by changing an import. |
How it works
text
healkite release ──► API ──► storage (R2 / S3 / disk) ──► CDN
bundle · Hermes apps · channels · guards bundles, patches, signed manifests
diff · sign │
▼
Device: fetch manifest → verify server signature → in rollout? → verify bundle signature
→ download patch (or full) → check sha256 → trial launch → notifyAppReady → keep
(crash before ready → automatic rollback) · one telemetry batch per launchUpdate checks read a static, cached manifest, so opening your app never waits on a database.
Concepts
- App: one per product, covering both iOS and Android.
- Channel: a stream of releases such as
productionorstaging. Your build carries a channel key. - Runtime version: the native build a bundle is compatible with. Defaults to your app version
(
1.4.0); releases only reach builds with the same runtime version. - Release: one bundle on one channel, platform and runtime version, labelled
v1,v2, …
Next: Quick start.