Cresc - Professional Over-the-Air Update Solution

Cresc (npm package: react-native-update npm version) is a professional Over-the-Air (OTA) update service for React Native teams shipping globally. It is designed to keep release workflows lean, stable, and cost-efficient from small apps to large production fleets.

Recommended integration path

If you use an AI coding tool that supports Skills, start with Install & Use Skills. Install the react-native-update Skill first, then let AI adapt the integration to your existing React Native or Expo project. The manual docs remain the fallback for brownfield apps, monorepos, and projects that need line-by-line review.

🚀 Why Choose Cresc?

Ultimate Update Experience

  • 🎯 Ultra-small update packages: Incremental updates based on bsdiff/hdiff limits size to tens to hundreds of KB, saving 99%+ bandwidth compared to full-size updates — with an exclusive Hermes-bytecode optimization on top (see benchmark below).
  • ⚡️ Lightning Fast Distribution: Global CDN delivery and incremental patch transport keep updates fast and reliable with a 99.9%+ success rate.
  • 🛡️ Secure and Reliable: Built-in crash rollback mechanism automatically reverts failing patches, guaranteeing stability.
  • 🌐 Full Platform Support: Flawless support for iOS and Android.
  • 🔍 Deep React Native Integration:
    • Expo - Seamless integration
    • New Architecture - Immediate support
    • Hermes - Full bytecode translation
  • 📖 Open Source Ecosystem: The client SDK, CLI tools, and admin UI are fully open source on GitHub. Transparent and auditable logic means you can host your own servers without vendor lock-in.
  • 📊 Full Release Visibility: The dashboard ships with built-in analytics, percentage-based staged rollouts, and release health monitoring — see every release's adoption and stability at a glance, no extra data pipeline needed.
  • 🔒 Data Security: Intercept and handle data analytics yourself. You retain full control.
  • 💬 Professional Support: Dedicated technical support to troubleshoot issues and keep your app stable.
  • 🏆 Proven Track Record: Running reliably since 2016, powering numerous well-known apps and enterprises.

📊 Benchmarked: a diff algorithm purpose-built for Hermes

Hermes bytecode is full of offset tables — a one-line JS change shifts every offset after it, which makes generic binary diffs blow up in size. Cresc applies an exclusive HBC (Hermes bytecode) structure-aware reversible transform that removes this amplification at the source.

Measured on a real React Native 0.86 app (~4.4 MB bytecode; the benchmark code and data are fully open and reproducible):

Release scenarioFull updateClassic incremental (bsdiff)Cresc incremental (Hermes-optimized)
One-line text change1.9 MB93.7 KB63.5 KB (32% smaller)
Small feature (~60 LOC)1.9 MB411.6 KB285.5 KB (31% smaller)
Medium feature (~300 LOC)1.9 MB551.6 KB398.4 KB (28% smaller)
  • 95%+ bandwidth saved vs full updates, and another ~30% saved vs classic bsdiff incremental updates
  • The smaller the change, the bigger the win — exactly the high-frequency hotfix scenario OTA is for
  • Fail-safe by design: the bytecode structure is fully validated before transforming, with automatic fallback to the plain incremental path; new Hermes versions are supported with zero client-side changes

💰 Unbeatable Value

Compared to other alternatives, Cresc is more powerful yet highly affordable:

FeatureCrescExpo Updates
Starting PriceFree plan or $19/mo~$30/mo
Bandwidth LimitsBuilt-in, no extra feesExtra costs apply over limits
Package SizeKB scale (Incremental)MB scale (Full bundle)
Warning

Note: Microsoft App Center (Code Push) officially shut down on March 31, 2025. If you are using Code Push, now is the best time to migrate to Cresc!

With Cresc, your team gains:

  • 90%+ reduction in CDN bandwidth costs
  • 10x faster iteration speeds (bypass app store review times)
  • Minute-level emergency bug fixes
  • 99%+ user update adoption rates
  • Flexibility in development cycles

Simple to Use

// Integrate in 3 lines of code
import { UpdateProvider, Cresc } from "react-native-update";

const crescClient = new Cresc({ appKey });

<UpdateProvider client={crescClient}>
  <App />
</UpdateProvider>

Built-in policies available out of the box:

  • 🔕 Silent Updates - Background downloads, completely transparent to users
  • 💬 Prompted Updates - Friendly system alerts for available patches
  • ⚙️ Custom Strategies - Fully API-driven flow control

🚦 Get Started

Recommended onboarding flow:

  1. Install & Use Skills - Recommended AI-first integration path
  2. Installation & Config - Prepare dependencies and native config
  3. Code Integration - Review or fine-tune the generated wrapper code
  4. Publish Updates - Ship new OTA versions from your CLI
Info

Not sure if this fits your project? Check our FAQ, start a thread in GitHub Discussions, or email us at [email protected].

Start using Cresc today, and bring a professional OTA update workflow to your React Native app!