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 and React Native — push code and UI changes to installed devices in seconds, with no rebuild and no store review. Native iOS and native Android are in active development.
$ 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, one workflow — shipping on Flutter and React Native today
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 and React Native — and the one native iOS and native Android will ship with.
Step 1 of 5
Scaffold or link a Flutter or React Native app.
$ 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 five commands work across Flutter and React Native (Expo & bare) today, and are the same ones native iOS and native Android will ship with. Learn it once.
Flutter and React Native ship over the air today, on the same create → release → patch workflow. Native iOS and native Android are in active development — here's exactly where each one stands.
iOS + Android
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 docsiOS + Android · Expo & bare
Push 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 docsiOS · SwiftUI
Write plain SwiftUI. Birdify transpiles the whole app into a Server-Driven-UI bundle that renders as real SwiftUI, so UI and logic changes ship without a store release.
See the roadmapAndroid · Kotlin & Java
The same whole-app OTA model for Kotlin and Java apps — Jetpack Compose and View-based UI shipped as data, no Play Store round-trip for code and UI changes.
See the roadmapEverything 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.
Native iOS is further along — the transpiler, SDUI runtime, and logic VM work end to end in the simulator, and early access opens once the full OTA loop is hardened. Native Android reuses that same transpiler and schema, and Android's runtime rules are more permissive than iOS's. Join the early-access list on the roadmap page and we'll tell you when each opens.
Birdify is in private beta for Flutter and React Native. Install the CLI to explore, and request beta access to get an account provisioned for shipping to real devices.
Two are shipping: Flutter (iOS + Android) and React Native (both Expo and bare apps), on the same create → release → patch workflow. Native iOS (SwiftUI) and native Android (Kotlin/Java) are in active development — see the roadmap for where each one stands.
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. The transpiler and runtime are built and rendering; we're hardening the full release → patch → rollback loop before opening it up.
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.
Install the CLI and start shipping over the air on Flutter and React Native. No rebuilds, no store review, no waiting.
$curl -fsSL https://birdify.dev/install.sh | sh