@capgo/capacitor-updater

Ship instant over-the-air JavaScript, HTML, and CSS updates to Capacitor iOS and Android apps without app-store review.

Library
npm
v8.51.13
827stars
Mozilla Public License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
91/100Excellent
Development Activity100
Maintenance100
Community68
Maturity56
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
86/100Excellent
Architecture86
Code Quality88
Innovation85
Learning Curve72

@capgo/capacitor-updater is a Capacitor plugin that delivers live, over-the-air (OTA) updates to installed mobile apps. Instead of waiting days for app-store review, you push new JavaScript, HTML, and CSS bundles directly to users, letting you fix bugs, A/B test features, and control your release cadence in minutes.

It is the most-starred Capacitor plugin and the leading open-source alternative to Appflow, CodePush, and Capawesome. Updates support delta downloads (only changed files), cryptographic signing and encryption, channel-based environments, and automatic rollback to the last working bundle. You can use the hosted Capgo Cloud or self-host the backend for full control.

What You Get

  • A native OTA update engine for both Android and iOS behind one TypeScript API
  • Delta updates that download only the files that changed between bundles
  • Automatic rollback that reverts to the last working bundle when an update fails to become ready
  • Channels for managing dev/staging/production and targeting specific devices for QA
  • End-to-end encryption and signing of update bundles
  • A choice of Capgo Cloud, a self-hosted backend, or fully manual bundle management

Common Use Cases

  • Shipping critical bug fixes to production apps without waiting for app-store review
  • A/B testing UI or feature changes by pushing different bundles to different channels
  • Maintaining a controlled, self-hosted release pipeline for regulated or air-gapped deployments
  • Rolling back a bad release instantly to keep users on a stable version

Under The Hood

Architecture - The plugin splits into a thin TypeScript layer (src/definitions.ts, src/index.ts, src/web.ts) that defines the public API and configuration surface, and native implementations under android/ (Java) and ios/ (Swift) that do the real work: fetching a bundle manifest, downloading changed files (delta), verifying signatures, unpacking to local storage, and pointing Capacitor’s webview at the new bundle path on the next reload. An app-ready handshake with a configurable timeout is what enables automatic rollback — if the JS never signals readiness, the engine reverts. Tech Stack - TypeScript API compiled with Rollup, distributed on both npm and JSR; native code in Java and Swift with a Package.swift/podspec for iOS and a Gradle module for Android. Its only peer dependency is @capacitor/core. Code Quality - Extensive native contract tests (native-contract-tests/), Maestro end-to-end tests, an example app, SonarCloud quality gates, ESLint/Prettier/SwiftLint, and Renovate-managed dependencies indicate a mature, heavily-CI’d project. API Design - The public API mirrors Capacitor plugin conventions with promise-based methods (download, set, reset, current, notifyAppReady, setChannel) and rich configuration via capacitor.config, plus generated api.md docs, making integration straightforward for existing Capacitor developers.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search