Introduction
OtaKit ships over-the-air updates for Capacitor apps. You build your web app, upload its bundle, and the plugin delivers that bundle to devices without store submissions or reviews.
How it works
- Create an app in the OtaKit dashboard and copy its
appIdinto yourcapacitor.config.tsfile. - Call
notifyAppReady()when your app finishes loading, so newly activated updates can be confirmed healthy. - Build your web app and run
otakit upload --releaseto upload and publish a new bundle. - On device, the plugin checks for updates, verifies the downloaded bundle, and by default activates it on the next cold launch by default.
Features
One-command shipping
Build your web app, then release with otakit upload --release.
Channels & runtime lanes
Channels for rollout tracks, runtimeVersion for native compatibility lanes — switchable at runtime with setChannel().
Delta updates
Opt-in per-file updates: devices download only the files that changed between releases.
Automatic update delivery
The normal flow checks and stages automatically, then activates according to the configured launch, resume, and runtime policies.
Force-immediate releases
Emergency releases apply and reload on the device's next check, whatever its configured policies.
Update lifecycle events
updateAvailable, updateStaged, updateApplied, downloadFailed, rollback — build your own update UX.
Manual update control
Turn automatic policies off when your app wants to show its own update prompt or control install timing.
Safe activation & rollback
A newly activated bundle must call notifyAppReady() or OtaKit rolls back automatically.
Signed & verified
ES256-signed manifests and SHA-256 checks on every download, plus optional end-to-end encryption.
Native compatibility guardrail
The CLI warns at upload time when a bundle depends on native code the installed app doesn't have.
Organization access & API keys
Manage apps, members, and scoped keys inside an organization.
Self-hosting
Run OtaKit on your own infrastructure when you need full control over delivery and trust.
Getting started
Quick setup
Connect the default hosted OtaKit flow to your Capacitor app.
Next.js Guide
Go from Next.js + Capacitor to your first OTA update.
Channels & Runtimes
Rollout tracks vs runtime compatibility lanes, and when to use each.
Update Strategies
How launchPolicy, resumePolicy, and runtimePolicy combine to control when updates apply.
Events & Listeners
Subscribe to update lifecycle events: available, staged, applied, failed, rolled back.
CI Automation
Build and ship bundles from GitHub Actions.
CLI Reference
Commands, options, and release workflows.
Plugin API
Default automatic flow, manual flow, and configuration.
Need help with setup, billing, or rollout issues? Email support@otakit.app.