Push App updates in minutes

Ship web-layer updates immediately for Expo and Capacitor apps, target the right runtime version, roll out safely and roll back fast.

SDK integration in just a few lines of code

Drop the SDK into the app, wire the update call, and get a release path that feels native to the codebase.

Exact runtime-version targeting

Serve only the bundle that matches each app, platform, channel, and runtime version.

Rollback without store delay

Re-activate a stable web bundle without waiting on App Store or Play Store review.

Stop treating every small web change like a full store release

When the bug is in the web layer, push the fix fast, limit blast radius, and keep rollback one click away.

Store update

Days

Store review, binary submission, and slower recovery when the issue is only HTML, CSS, or JavaScript.

OTA release

Minutes

Publish the web bundle, ramp it up gradually, and revert fast if the release behaves badly.

Expo and Capacitor logos side by side
Made in SwitzerlandEU-based operationsOfficial support: Expo 54/55/56 and Capacitor 7/8

CLI workflow

A short release workflow your team can actually remember

Use the CLI for the release path: connect the repo, bundle the web assets, publish, inspect, and roll back when needed.

Runotalan <command>
  • The SDK keeps app-side integration small instead of forcing a custom update layer.
  • Official support covers Expo 54/55/56 and Capacitor 7/8; older versions are not blocked.
  • Publish, inspect and roll back from one short release workflow.
release workflow
01
login
02
init
03
bundle
04
publish
05
status
06
rollback

Open source packages

The CLI and SDK are open source and published on npm.

Why teams switch

OTA release control without the mobile DevOps overhead

This product stays focused on OTA delivery. No native build minutes, no store publishing workflow, no broader platform sprawl.

Focused OTA product

Manage OTA web updates, bundle publishing, rollout decisions, rollback, and release metadata without dragging in unrelated mobile CI concerns.

Deterministic staged rollouts

Start small, pause or resume active rollouts, and use device-aware targeting for partial release exposure.

Separate OTA App and Publish Keys

Create OTA App Keys for installed apps and OTA Publish Keys for dedicated publish flows, with project-level isolation built in.

Operational analytics

Track OTA checks, installs, transfer, storage, and release activity over time from the dashboard.

How it works

Publish a bundle, target the right apps, recover fast

The release flow is built around exact compatibility matching, deterministic rollout targeting, and clear rollback controls.

Upload from the dashboard or CLI

Submit a ZIP from the dashboard or CLI. Otalan validates the archive, rejects unsafe files, and activates it only after validation passes.

Serve only the intended clients

Each request is resolved against app ID, platform, channel, runtime version, and rollout state.

Keep recovery close

Pause, resume, or reactivate an older bundle without introducing a new native release.

Release flow

Four steps from build to recovery

Build web assets
Generate the web bundle you want to release.
Publish one exact release target
Activate a bundle for one app, platform, channel, and runtime version combination.
Let the SDK ask for the current release
Capacitor and Expo apps integrate the Otalan SDKs. The runtime receives only the current compatible release.
Pause, resume, or rollback
Revert to a known-good release without waiting for a new store submission.

Prepare the exact HTML, CSS, JavaScript, and static assets you want the mobile app to load.

Step 0 of 0
Pricing

Clear monthly pricing for every OTA stage

Pick a plan by usage level, then keep delivery running with optional overage controls.

All plans include

  • Unlimited MAUs (Monthly Active Users)
  • Workspace, apps, and project setup
  • Advanced staged rollout control
  • Operational analytics and history

Only transfer, storage and support change between plans.

SOLO

For indie developers and small apps.

$10

/mo

  • Transfer: 1.00 TB
  • Storage: 50.0 GB
  • Email support

PRO

For growing apps and small teams.

Popular

$32

/mo

  • Transfer: 5.00 TB
  • Storage: 150 GB
  • Priority support

MAX

For production teams with serious OTA usage.

$109

/mo

  • Transfer: 25.0 TB
  • Storage: 500 GB
  • Personalized support

Enterprise

For larger organizations with custom requirements.

Custom

  • Custom transfer limits
  • Custom storage limits
  • SLA and contract support
Contact us

Overage pricing (optional)

If you enable overage, Otalan keeps delivery running beyond included limits with predictable low rates instead of blocking releases.

Current overage rates

  • Transfer: $6 / TB
  • Storage: $0.12 / GB

Start managing mobile OTA like a product, not a workaround

Create an account, set up your first workspace, register an app, and publish the first bundle.

Otalan

OTA update infrastructure by Cirtadev GmbH.

© 2026 Cirtadev GmbH, Switzerland