Instant rollback, fail-open
Pull a bad update fleet-wide in one command. Any patch that fails to boot auto-reverts to the last good bundle — users never get a broken app.
Over-the-air code push for Flutter, React Native, and native iOS. Push code and UI changes to installed devices in seconds — no rebuild, no store review.
$ birdify flutter create shop_app
✓ linked · shop_app on birdify cloud
$ birdify release
→ bundling ▓▓▓▓▓▓▓▓░░ 4.2 MB
$ birdify patch
✓ patch #3 live · 1,240 devices on next launch
$curl -fsSL https://birdify.dev/install.sh | shOne CLI for every mobile stack
Stop letting store review gate your releases. Birdify moves code and UI updates over the air, so you fix and iterate at the speed you build.
Wire it up by hand in a few minutes, or paste one line into your coding agent and let it do the whole thing.
Paste one line into Claude Code, Cursor, or Copilot — it installs Birdify, scaffolds your app, and wires the release + patch flow for you.
# Paste into your coding agent
Set up Birdify OTA in this repo: install with curl -fsSL https://birdify.dev/install.sh | sh,
then follow birdify.dev/agent-quickstart to release + patch.Five commands, one flow: create, release, patch, rollback, status. The same workflow across Flutter, React Native, and native iOS.
$ birdify flutter create shop_app
✓ scaffolded shop_app (iOS + Android)
✓ Birdify SDK wired · # ready to releaseSigned bundles, instant rollback, and per-device rollout tracking — the guardrails that make shipping over the air boring, in the best way.
Pull a bad update fleet-wide in one command. Any patch that fails to boot auto-reverts to the last good bundle — users never get a broken app.
Watch every update roll out — sent, downloaded, and installed — right from birdify status. Know exactly how much of your fleet is on the latest bundle.
Every bundle is cryptographically signed and checksum-verified on device before it's ever applied. No downloaded native code — App-Store-safe by design.
The same commands work across Flutter, React Native (Expo & bare), and native iOS SwiftUI. Learn it once; ship everywhere.
Whatever you build with, Birdify moves your updates over the air the same way — create, release, patch.
Ship Dart changes over the air on iOS and Android. Birdify diffs the compiled bundle and reconstructs it on device — hotfixes and UI tweaks land on the next launch.
See the docsPush whole JS bundles to Expo and bare apps — architecture-independent, self-hostable, and CodePush-style. Swap the bundle on next launch with device tracking built in.
See the docsWrite plain SwiftUI. Birdify transpiles the whole app to a Server-Driven-UI bundle rendered as real SwiftUI, so you ship UI and logic changes without a store release.
See the docsEverything you need to know about shipping over the air with Birdify.
Yes. Birdify moves interpreted code and UI data — not new native machine code — which is exactly what Apple (Guideline 2.5.2) and Google permit for over-the-air updates. Adding new native code or SDKs still needs a normal store release.
Run birdify rollback to withhold a bad update — devices revert to the last good bundle on their next launch. It's also fail-open: any patch that fails to boot auto-reverts, so a broken update can never brick the app.
Anything that adds new native code — a new SDK, a new Swift/Kotlin dependency, or new permissions — needs a fresh store release. Code, logic, and UI changes ship as patches.
birdify status shows per-device counts — sent, downloaded, and installed — so you always know how much of your fleet is on the latest bundle. Stage rollouts and pause anytime.
Flutter (iOS + Android), React Native (both Expo and bare apps), and native iOS built with SwiftUI. The same create → release → patch workflow works across all of them.
Every bundle is cryptographically signed and checksum-verified on device before it's applied. No downloaded native machine code ever runs, which is what keeps it App-Store-safe.
You write plain SwiftUI. Birdify transpiles the whole app into a Server-Driven-UI bundle that renders as real SwiftUI on device, with logic running in an in-app JavaScriptCore VM — Apple's blessed interpreter.
Birdify is in private beta. Install the CLI to explore, and request beta access to get an account provisioned for shipping to real devices.
Install the CLI and start shipping over the air across Flutter, React Native, and native iOS. No rebuilds, no store review, no waiting.
$curl -fsSL https://birdify.dev/install.sh | sh