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

  1. Create an app in the OtaKit dashboard and copy its appId into your capacitor.config.ts file.
  2. Call notifyAppReady() when your app finishes loading, so newly activated updates can be confirmed healthy.
  3. Build your web app and run otakit upload --release to upload and publish a new bundle.
  4. 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

Use channels for rollout tracks and runtimeVersion for native compatibility boundaries.

Automatic update delivery

The normal flow checks and stages automatically, then activates according to the configured launch, resume, and runtime policies.

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.

SHA-256 verification

Downloaded bundles are verified before activation so corrupted or tampered files are rejected.

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

Need help with setup, billing, or rollout issues? Email support@otakit.app or use the contact page.