DEV Community

Samuel Adekunle
Samuel Adekunle

Posted on • Originally published at techwithsam.dev

How to Push Over-the-Air (OTA) Flutter Updates with Shorebird - Complete 2026 Guide

One of the biggest frustrations for mobile devs is still waiting days or weeks for App Store or Play Store approvals to ship a small bug fix, UI tweak, or critical security patch.

What if you could push those changes instantly, over-the-air, directly to your users’ devices? No resubmission, no waiting, no lost users.

That’s exactly what Shorebird’s Code Push delivers: true over-the-air (OTA) updates for Dart code in Flutter apps. Today we’re doing a complete how-to: set up Shorebird from scratch, create your first release, push a patch live, and see it update in seconds. This is production-level magic, let’s get your app update-ready!

Top questions Flutter devs are asking and how Shorebird answers most of them:

  1. How do I fix production bugs without 7–14 day review cycles?

  2. Can I push UI changes or small features without full app updates?

  3. Is there a reliable code push for Flutter that works on both Android and iOS?

  4. How does Shorebird compare to CodePush or traditional OTA?

  5. What’s the setup cost, and are there limitations (e.g., only Dart code)?

Shorebird answers: it’s built by ex-Flutter team members, uses a modified Flutter engine for seamless patches, supports Android/iOS (web/desktop coming), and only updates Dart code (native plugins/binary changes still need store updates). It’s free for small usage, scales affordably, and includes built-in rollback and A/B testing. Perfect for indie devs and teams tired of store delays.

Prerequisites & Installation

Before we code, prerequisites:

  • Flutter 3.22+ (stable channel)

  • A Flutter project (new or existing)

  • macOS/Linux/Windows machine

  • Google/Apple developer accounts if releasing to stores

Step 1: Install the Shorebird CLI.

For macOS/Linux:

curl --proto=https’ --tlsv1.2 https://raw.githubusercontent.com/shorebirdtech/install/main/install.sh -sSf | bash
Enter fullscreen mode Exit fullscreen mode

For Windows (PowerShell):

Set-ExecutionPolicy RemoteSigned -scope CurrentUser # Needed to execute remote scripts
iwr -UseBasicParsing ‘https://raw.githubusercontent.com/shorebirdtech/install/main/install.ps1’|iex
Enter fullscreen mode Exit fullscreen mode

Verify:

shorebird --version
Enter fullscreen mode Exit fullscreen mode

Log in (create a free account at console.shorebird.dev if needed):

shorebird login
Enter fullscreen mode Exit fullscreen mode

Initialize & First Release

Navigate to your Flutter project:

cd my_flutter_app
shorebird init
Enter fullscreen mode Exit fullscreen mode

This creates shorebird.yaml, adds internet permission to AndroidManifest, and sets up your app in the Shorebird console.

Create your first release (this builds a patched Flutter engine version):

shorebird release android   # or ios
Enter fullscreen mode Exit fullscreen mode

For iOS, you’ll need Xcode/macOS. This uploads the base release. Submit this binary to Google Play/App Store as usual (first time only).

Watch the console: you’ll see your app listed with the release ID.

Pushing Your First Patch

Now the magic: make a small change. Let’s add a debug banner or fix a text bug in main.dart.

Build and push the patch:

shorebird patch android   # or ios
Enter fullscreen mode Exit fullscreen mode

This creates a small diff patch (often <1MB) and uploads it to Shorebird servers.

On user devices: next app launch (or background check), the modified engine downloads the patch, applies it, and runs the updated Dart code, no restart needed in many cases (restartless patches supported).

Demo:

  • Run the old release on the emulator

  • Show bug

  • Push patch

  • Relaunch app → bug fixed instantly!

Best Practices & Limitations 2026

Tips from community experience:

  • Always test patches on real devices (emulators sometimes miss delegate issues)

  • Use the shorebird doctor to check the setup

  • Handle patch failures gracefully (Shorebird auto-rolls back)

  • For large changes, combine with full release

  • Limitations: Dart code only (no native plugin updates, no asset/binary changes)

  • Monitor usage in the Shorebird console (downloads, success rate)

  • Integrate with CI/CD (Codemagic/GitHub Actions workflows exist)

Quick pause before we finish, I want to invite you to my free newsletter personally. Every week, I send the exact code snippets, early access to full project repos, and the latest 2026 tips that I don’t always cover in videos. It’s completely free, zero spam, and it’s the fastest way to level up. Just click this link: https://techwithsam.dev/newsletter — I’d love to see you there!

That’s it! You now have an instant update superpower with Shorebird; no more store approval anxiety.

Don’t forget to join my Free Newsletter: https://techwithsam.dev/newsletter

Samuel Adekunle, Tech With Sam YouTube

Top comments (0)