What OpenOTA actually does

Every feature below reflects what's shipped today, not a roadmap. Where something is partial or in progress — like iOS — it's labeled that way instead of implied.

Core

The OTA pipeline

Instant OTA updates

Ship a new JS bundle to every device in seconds — no app store review, no waiting.

Native rollback

Rolling back happens entirely on-device against a previously verified bundle — no re-download, no server round-trip.

Runtime version gating

Every device reports a native runtimeVersion; a bundle is only ever offered to a device it's actually compatible with.

Real-time delivery

A release reaches an already-open app over a live WebSocket connection, not just on next cold start.

Silent updates

Cold-start and background checks apply updates without a blocking prompt — the SDK's sync path never interrupts the user.

SHA-256 verified bundles

Every package is checksummed end to end; a corrupted or tampered bundle is rejected before it ever installs.

Platforms

Where it runs

React Native

The SDK is a thin JS layer (OTA.configure/sync/check) that any React Native app can drop in.

Android

Fully shipped — native bundle-swapping via @openota/native-android, verified end to end on real devices.

In progress

iOS

The SDK's iOS bridge and server-side support exist, but there's no shipped native module yet — Android is what works today.

Operations

Running it in production

CLI-first workflow

openota init / doctor / release / rollback — most day-to-day work never needs the dashboard.

Environments

Production, staging, and development each track their own active release and rollout percentage per platform.

Release & rollback history

Every release, rollback, and rollout change is logged per environment, newest first.

Analytics

Downloads come from real device check-ins; install/failure/rollback counts come from the SDK reporting its own outcome — no synthetic numbers.

Project isolation

Each project gets its own scoped API keys and storage namespace — no cross-tenant access.

Hosting

Cloud or self-hosted

Beta

OpenOTA Cloud

We host the server for you — same CLI, same SDK, same dashboard, nothing to run yourself.

Self-hosted

Run the same server binary yourself. MIT licensed, no feature gate versus Cloud.

Storage providers

Local disk or Supabase Storage today. S3/R2/GCS aren't implemented yet — the provider interface exists, but only these two are wired in.

Read the docs