Skip to content
CodeOnAir
NewFirebase Dynamic Links shut down — move in minutes →

Links that open your app.
Updates that skip the store.

Deep links that survive the install, and over-the-air updates for React Native — one dashboard, one SDK per platform, live in an afternoon.

Try Growth free for 30 days · no card needed

Works withReact NativeExpoAndroid (Kotlin)iOS (Swift)REST API

One platform

Everything between “someone tapped a link” and “they’re on the latest version”.

AppLinks

Universal Links and App Links on your own subdomain or domain. Deferred deep linking after install, QR codes and social previews.

  • Deferred deep links
  • QR codes
  • Firebase import
shop.codeonair.com/diwali50
→ opens the app at /offers?code=50

Learn more →

CodePush

Ship React Native fixes over the air. Mandatory or optional, staged rollouts and automatic rollback.

  • Staged rollouts
  • Auto rollback
  • CLI & CI
$ codeonair-codepush release-react shop-ios
✔ v7 live on 20% of devices

Learn more →

Push Notifications

Push to Android and iOS through FCM and APNs, plus in-app messages. Target by user or tag, schedule, and track opens.

  • Scheduling
  • Images & deep links
  • In-app messages
🎉 Diwali sale is live — 50% off today
✔ sent to 48,210 devices · 9,412 opened

Learn more →

Campaign analytics

Clicks, installs and opens by link, campaign, platform and country. CSV export.

Learn more →

How it works

Live in three steps.

  1. 01Create your appName it, and you get an App ID and a free yourapp.codeonair.com link domain.
    # AndroidManifest.xml / Info.plist
    CODEONAIR_APP_ID = "proj_…"
  2. 02Add one line at start-upThe SDK handles links, deferred installs and over-the-air updates.
    DeepLink.init();
    CodePush.sync({ installMode: ON_NEXT_RESTART });
  3. 03Share links. Ship fixes.Create links in the dashboard or API, and release bundles from the CLI or CI.
    $ codeonair-codepush release-react shop-android -t 1.0
    ✔ Released v7
Install from npm

AppLinks

The link keeps its data through the App Store.

A user taps your link without the app. They install it, open it, and land exactly where the link pointed — with its parameters. On Android the Play install referrer makes the match exact; on iOS a privacy-safe fingerprint matches within the link’s attribution window.

  • Free yourapp.codeonair.com subdomain, or your own domain
  • apple-app-site-association and assetlinks.json hosted for you
  • Import your Firebase Dynamic Links from a CSV export
  • Social previews, expiring links, routing by platform and country
  1. 1Tapshop.codeonair.com/diwali50 is opened in Instagram, WhatsApp or a browser.
  2. 2RouteApp installed: it opens straight away. Not installed: the App Store or Play Store, or your web page on desktop.
  3. 3ResumeOn first open the SDK hands your app the link’s path and parameters, and the install is credited to the link.
$ codeonair-codepush release-react shop-android -t 1.0 --rollout 20
✔ Released v7 to 20% of shop-android devices

CodePush for React Native

Fix it today, not after review.

Call CodePush.sync() when your app starts, release from the CLI or CI, and control every build from the dashboard.

Safe by defaultA crashing update rolls back on the next launch and is never offered again.
Staged rolloutsRelease to 20% of devices, watch, then roll out to everyone.
Per-build controlEnable, disable, make mandatory or roll back — Android and iOS separately.
Verified downloadsEvery bundle is checked against its SHA-256. Hermes supported.

Why CodeOnAir

Built for teams that ship every week.

One dashboard

Links, campaigns, CodePush builds, update prompts and remote config — for every app, in one place, with your team.

Priced for India and the world

Pay in rupees or dollars. A real free plan, and half-yearly and yearly billing that saves up to 10%.

Private by design

Hashed IPs, retention you control, and no advertising IDs. Your users’ data is never sold or shared.

Pricing

Start free. Upgrade when your links take off.

Free

For trying deep links and CodePush on one app.

₹0forever

  • 100 app links
  • 1 URL prefix (yourapp.codeonair.com), no custom domain
  • 5,000 CodePush downloads a month
  • 10,000 push notifications a month
  • 1 app, 1 team member
  • 1 webhook
Start free

Starter

For a first app in production.

₹1,499/ month

billed monthly

  • Unlimited app links and deferred deep links
  • 25,000 link clicks a month
  • 2 apps, 2 team members
  • Analytics and CSV export
  • 25,000 CodePush downloads a month
  • 100,000 push notifications a month
  • 2 webhooks
Start with Starter

Growth

Most popular

For apps with real traffic.

₹4,999/ month

billed monthly

  • Everything in Starter
  • 250,000 link clicks a month
  • 10 apps, 5 team members
  • 20 URL prefixes · custom domains ₹2,000/mo add-on
  • Analytics, campaigns and CSV export
  • 500,000 CodePush downloads a month
  • 1,000,000 push notifications a month
  • 10 webhooks
Try Growth free for 30 days

Scale

For teams running many apps.

₹10,999/ month

billed monthly

  • Everything in Growth
  • 2,000,000 link clicks a month
  • 25 apps, 25 team members
  • 50 URL prefixes · custom domains ₹2,000/mo add-on
  • Attribution windows up to 7 days
  • 2,000,000 CodePush downloads a month
  • 5,000,000 push notifications a month
  • 50 webhooks
Start with Scale

Enterprise

For large apps and agencies.

Custom

pricing for your volume

  • Custom apps, members and limits
  • Volume pricing for link clicks and CodePush
  • Help moving from Firebase or App Center
  • Everything in Scale
Contact us

Links never stop redirecting if you go over your click allowance. Past the CodePush allowance, apps keep the update they have and get new ones next month. Prices per workspace; taxes extra.

FAQ

Questions, answered.

Can I move my Firebase Dynamic Links?

Yes. Export them from Firebase as CSV and import the file into an AppLinks URL prefix. Each link keeps its path, parameters and social preview.

Is CodePush allowed by Apple and Google?

Both stores allow interpreted code such as JavaScript to be updated, as long as the update doesn't change the app's primary purpose. Native code changes still need a store release.

Do I need my own domain?

No. Every app gets yourapp.codeonair.com. Paid plans add your own domains, such as link.yourbrand.com.

How long does setup take?

Most teams have a working AppLink in under ten minutes: create the app, add the App ID to your manifest and Info.plist, call DeepLink.init() and CodePush.sync().

What happens to user data?

IP addresses are hashed, never stored raw, and click details are deleted after the retention period.

Your first AppLink in five minutes.

Create an app, pick a subdomain, and share a link that opens your app. Try Growth free for 30 days — no card needed.