Expo EASAlternative

May 2025 · 8 min read

Expo EAS Alternative: Switch to RELAYOTA Managed OTA

Expo EAS Updates charges per Monthly Active User. At scale this becomes a significant line item. RELAYOTA is a fully managed OTA platform that implements the same Expo Updates protocol — switch by changing one URL, keep every other line of code.

Why developers look for an Expo EAS alternative

Expo EAS Updates is well-built and tightly integrated with the Expo ecosystem. For small apps or teams already paying for EAS Build, the cost is easy to absorb. The problem appears at scale.

EAS Updates pricing is based on Monthly Active Users (MAU). As of 2025, the plans are:

PlanMAU limitMonthly cost
Free1,000 MAU$0
Production10,000 MAU$99
Enterprise50,000 MAU$299+
CustomUnlimitedNegotiated

A mid-size app with 100,000 MAU will pay $500–1,000+/month purely for OTA update delivery. The underlying infrastructure cost for serving JavaScript bundles at that scale is a fraction of that — typically $5–30/month on commodity cloud storage and a small compute instance.

Beyond cost, some teams have data residency requirements, want to audit the full update pipeline, or simply prefer not to depend on a hosted service for a critical path in their app startup sequence.

How Expo Updates protocol works

When a React Native app with expo-updates starts, it sends a request to a configured update server URL. The request includes:

  • App version (runtimeVersion)
  • Platform (iOS or Android)
  • Current update ID
  • Release channel

The server responds with either "no update available" or a manifest pointing to a new JavaScript bundle stored at a given URL. The client downloads and applies it on next launch (or immediately, depending on config).

This protocol is open. Expo publishes the spec. Any server that implements it correctly works as a drop-in replacement for EAS Updates — including RELAYOTA.

What RELAYOTA is

RELAYOTA is a fully managed OTA update platform built specifically to implement the Expo Updates protocol. No infrastructure to run — sign up, create an app, and ship.

Key properties:

  • Implements Expo Updates protocol v0 and v1
  • Stores bundles in Cloudflare R2 (S3-compatible object storage)
  • Postgres database via Neon for release metadata
  • Release channels (production, staging, preview)
  • Per-platform targeting (iOS-only, Android-only, both)
  • Rollback to any previous release via dashboard or CLI
  • REST API for CI/CD integration
  • Web dashboard for managing releases and teams

RELAYOTA vs Expo EAS Updates

FeatureRELAYOTAExpo EAS Updates
PricingInfrastructure only (~$5–30/mo)Per-MAU ($0–$299+/mo)
Open sourceYes (MIT)No
Self-hostedYesNo
Expo Updates protocolYesYes
Release channelsYesYes
RollbackYesYes
DashboardYesYes
CLIYesYes (eas update)
EAS Build integrationVia CI/CDNative
Data residency controlFullNone

How to switch from EAS Updates to RELAYOTA

RELAYOTA implements the same protocol, so the switch is a configuration change in your app — not a code rewrite.

Step 1: Deploy RELAYOTA. The server runs on any Node.js host. The recommended setup uses Vercel (or Railway) for the API, Neon for Postgres, and Cloudflare R2 for bundle storage.

Step 2: In your app.json or app.config.js, update the updates URL:

// Before — EAS Updates
{
  "expo": {
    "updates": {
      "url": "https://u.expo.dev/your-project-id"
    }
  }
}

// After — RELAYOTA
{
  "expo": {
    "updates": {
      "url": "https://your-relay-instance.com/api/manifest"
    }
  }
}

Step 3: Push your first update via the Relay OTA CLI or REST API from your CI pipeline:

npx relay-ota publish \
  --bundle ./dist \
  --channel production \
  --platform ios,android

That is the full migration. Existing app binaries on user devices will start receiving updates from your RELAYOTA instance on next launch.

Infrastructure cost breakdown

Running RELAYOTA for an app with 100,000 MAU and daily updates:

ServiceUsageEstimated cost
Neon (Postgres)Release metadata, user accounts$0–19/mo
Cloudflare R2Bundle storage + egress$1–5/mo
Vercel / RailwayAPI compute$0–20/mo
Upstash RedisManifest caching$0–10/mo
Total$1–54/mo

Compare to EAS Updates at 100,000 MAU: $500–1,000+/month. The break-even point is typically around 5,000–10,000 MAU where RELAYOTA's $29/mo flat fee is far less than EAS pricing.

When to stick with EAS Updates

RELAYOTA is not the right choice for every team. Stick with EAS if:

  • You need very deep EAS Build integration and want native EAS Updates bundling
  • You are under 10,000 MAU and cost is not a concern
  • You rely heavily on EAS Build and want native EAS Updates integration
  • You need Expo's support SLA for the update pipeline

For teams above 20,000 MAU, with backend engineers on staff, or with data residency requirements, RELAYOTA pays for itself quickly.

Get started

Sign up for RELAYOTA and push your first OTA release in under 15 minutes. No infra required — we handle everything.