Deliver JavaScript and asset updates to users faster. Validate with a small cohort, expand in stages, and roll back when telemetry says to stop.

Built for productionReact Native · Expo · HarmonyOS

Differential deliveryStaged rolloutPause and roll back

Claim Plus free

5

telemetry events

requests / downloads / successes / failures / rollbacks

60s

health check

service dependencies checked every 60 seconds

100%

auditable actions

complete records with CSV export

2

rollout dimensions

channel × native version

PAKTA / From code to every device

One update, fully in view.

Write the change, ship it to devices, and keep seeing every arrival.

From version trends to device feedback, every rollout has a signal.

PAKTA / Telemetry
Update version 1.4.0

Download success

17,100

Activation success

15,480

Rollback events

68

Update version

1.4.0

Download successActivation successRollback
330022001100009/0609/0909/12
Version request distribution
1.4.0
78%
1.3.0
19%
Older versions
3%

PATCH UPDATES / Differential delivery

Send only change,
arrive light.

Compare old and new versions and package the actual change as a patch. A UI adjustment or logic fix does not make users download the entire update again.

  • Differential deliveryExtract the version delta so small changes stay light.
  • Less to downloadReduce repeated asset transfer so updates reach devices sooner.
  • Full fallbackWhen a patch is unavailable, fall back to the full package and keep the path usable.
Learn the release workflow
Differential patch delivery animationIllustration: old and new versions converge at the Pakta server, which creates a 236 KB patch and sends it to devices. Package sizes are illustrative.PATCH DELIVERY98% SMALLERPrev bundlev1.3.0New bundlev1.4.018 MB→ 18.3 MBlegacy/OffersOld.tsx+ feature/Offers.tsx+ hooks/usePrices.ts… full bundle omitted …… full bundle omitted …PAKTA SERVERBundle 18 MBBundle 18.3 MBPatch 236 KBDEVICES

Ready for production / BUILT FOR PRODUCTION

Know what shipped.

Move quickly while keeping every releaseobservable and reversible.

DELIVER01

Deliver

Small changes, delivered cleanly.

  • Less to download, faster to experience

    Send only what changed between builds. The actual patch size depends on the two artifacts.

  • A clear record for every version

    Keep update packages and release history together so a team can find and publish with confidence.

RELEASE02

Release

Every rollout leaves room to respond.

  • Start with a cohort

    Choose a channel, native version and percentage before widening the audience.

  • Stop when signals change

    Pause or roll back a problematic deployment while the team investigates.

OBSERVE03

Observe

Stay in control after release.

  • See the effect

    Track requests, downloads, successes, failures and rollbacks in one view.

  • A record the team can trust

    Actions are timestamped and exportable for incident review and handoffs.

Why Pakta

Ship more updates. Count fewer costs.

Lighter differential delivery. Clear annual plans. One platform for React Native, Expo and HarmonyOS updates.

Free allowance

Expo / EAS Update
1,000 MAU · 100 GiB/month
CodePush
Self-host the source; infrastructure is a separate cost
Pakta
Free ¥0/year · 2,000 checks/day

Subscription

Expo / EAS Update
Starter $19/month; Production $199/month, plus overages
CodePush
App Center hosting retired on 2025-03-31; no current hosted plan
Pakta
Plus ¥299/year · Pro ¥899/year · Enterprise ¥1,999/year

Bandwidth charges

Expo / EAS Update
Starter: 100 GiB/month; Production: 1 TiB/month. Paid-plan overage: $0.10/GiB
CodePush
CDN, object storage and egress are billed by your cloud provider
Pakta
Unlimited CDN downloads on all currently available plans

What counts as usage

Expo / EAS Update
MAU counts installations downloading an update that month. Paid overage: $0.005/installation, including 40 MiB extra bandwidth
CodePush
Infrastructure capacity, requests and traffic, plus server operations
Pakta
Free 2,000/day · Plus 20,000/day · Pro 200,000/day · Enterprise 2,000,000/day; application and package limits also apply

Client and migration

Expo / EAS Update
expo-updates + EAS CLI
CodePush
CodePush client; the original is archived. Verify version and architecture support
Pakta
Keep your existing project. Integrate the SDK and ship a new app build to start delivering OTA updates. Supports React Native, Expo and HarmonyOS.

Pakta plans have daily check, application and package limits. Expo prices are USD/month; Pakta prices are CNY/year. CodePush refers to the standalone server.

Cost example: 10,000 installations, 20 updates per month

Assume each installation downloads every update at 5 MiB each: about 976.56 GiB. This EAS Starter example covers the subscription and update usage, excluding builds, storage, other usage and taxes.

  • Starter subscription: $19/month
  • 7,000 installations above 3,000 MAU: 7,000 × $0.005 = $35
  • Bandwidth allowance: 100 GiB + 7,000 × 40 MiB ≈ 373.44 GiB
  • Extra bandwidth: 603.125 GiB × $0.10 ≈ $60.31

Example total: $114.31/month, including $95.31 in overages.

Choose a Pakta plan using actual daily update checks: 10,000 MAU does not mean 10,000 checks. Unlimited CDN downloads do not remove other limits. Estimate self-hosted CodePush using your cloud provider's charges.

Competitor sources checked

Release workflow / four steps

Fit the tools into your existing
release rhythm.

Use the CLI locally or in CI/CD. The team decides when to widen a rollout; the system keeps the guardrails.

  1. 01

    Register the app

    Connect the SDK so the client can check, download and apply updates.

  2. 02

    Register a native build

    Upload the distributed binary with its version and channel so updates target compatible devices.

  3. 03

    Build the update

    Create and upload a package from the workflow you already use. Build and rollout stay separate.

  4. 04

    Roll out and recover

    Target a channel × native version, increase the percentage, and pause or roll back when needed.

Telemetry / after delivery

See every
arrival.

Trend lines

Five event types become readable curves with a bucket size that follows the selected window.

Version health

Compare rollback and download failure rates by version before expanding a release.

Device detail

Drill into device × OS rows and jump directly to the matching event details.

Before you start / FAQ

Questions worth
answering first.

See plans and quotas
Which changes can ship over the air?

JavaScript and assets can be delivered by OTA. New native modules, native permissions or native dependency changes still require a new binary, and every update must follow the app store rules.

Can I send an update to only part of the audience?

Yes. Select a channel and native version, set a rollout percentage, then use download, success, failure and rollback telemetry to decide whether to continue.

Will a differential package always be much smaller?

Patch size depends on the real difference between the two builds. Pakta supports differential delivery with a full-package fallback; the build determines the result.

Do I need to replace my CI workflow?

No. The CLI works locally and in CI/CD. Register the app and native build, upload the update artifact, then choose the rollout target in the console.

How do I connect a React Native or Expo app?

Pakta works with React Native and Expo projects. Once your development or production build includes the Pakta native module, publish JavaScript and asset updates with the CLI, then target releases by channel, native version and rollout percentage.

Ready for the next release?

Let every update
arrive with confidence.

Get started

Claim Plus free