Over-the-air updates let you fix JavaScript bugs without waiting for store review, and CI makes sure what you ship was checked.
Core concepts
- EAS Update: Publish a JavaScript bundle to a branch; builds on the matching channel and runtime version download it. — EAS Update
- Runtime versions: An update only reaches builds with a compatible runtime version, which protects users from JavaScript that expects native code they do not have. — EAS Update
- Rollback: Keep the previous update available and roll back quickly if a release misbehaves. — EAS Update
- CI on pull requests: Run install, typecheck, lint and tests on every pull request so broken agent changes never reach main. — GitHub Actions
Concept videos
YouTube channels and searches for these topics. On a large screen they open in the reading panel next to the roadmap.
- EAS Update — Expo channel
Explanation
Respect store policies
OTA is for fixes and improvements within the reviewed app's purpose, not for changing what the app is.
Branch per environment
Use staging and production branches and channels so you can test an update on testers first.
What Is It?
OTA updates deliver new JavaScript to installed apps; CI runs automated checks on every change.
Why Should I Care?
Together they shorten the fix cycle while keeping quality gates.
Real World Analogy
OTA is a software patch delivered to a device you already own; CI is the quality inspector at the factory door.
Visual Mental Model
PR -> CI checks -> merge -> eas update (staging) -> verify -> promote to productionSmallest Possible Example
name: ci
on: [pull_request]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20, cache: npm }
- run: npm ci
- run: npx tsc --noEmit
- run: npx expo lint
- run: npm test -- --ciCommon Mistakes
❌ Publishing updates incompatible with the installed native runtime.
Users crash on launch; use runtime versions.
❌ No CI.
Agent changes break main and you find out at release time.
Build This Mini Project
Add the CI workflow, publish an update to a staging channel and verify it on a preview build.
Prompts for Cursor, Claude Code & Codex
Paste these into Cursor, Claude Code, Codex, or any coding agent. Replace the bracketed parts with your app details, and keep the agent in plan mode first so you review the approach before it edits files.
Add CI
Create a GitHub Actions workflow that runs npm ci, typecheck, lint and tests on pull requests with caching. Add an npm script named verify that runs all three locally.Rules, databases & blogs to use
- GitHub code quality rule: repo hygiene
- Conventional commits rule: release notes from commits
