Introduction to Shorebird
Picture this: your app is live on the app stores, but you discovered a critical bug that needs to be fixed ASAP. If you go through the usual release process, it can take hours (or even days) to get the new version live.
But what if you could just push the fix directly to your user’s devices, and skip the app review process entirely? That’s what Shorebird allows you to do, and in this module, I’ll show you how to set it up in your Flutter app.

How Does Shorebird Work?
Shorebird enables Code Push, allowing you to update your Flutter app instantly over the air (OTA)—without requiring users to download a new version from any app store.
This makes it ideal for these scenarios:
- Emergency fixes to production apps.
- Shipping bug fixes to users on older versions of your app.
- Shipping very frequently (e.g. multiple times per day).
Important Note
While Shorebird is compliant with both App Store and Play Store guidelines, it’s important to note that both stores prohibit shipping code that changes the behavior of the app in a significant way. For these, you’ll need to go through the usual release process.
The Code Push Workflow
- Create a release – Use the Shorebird CLI to generate a new release of your app.
- Distribute the release – Submit it to the App Store or Google Play as usual.
- Modify the app’s Dart code – Make changes such as bug fixes, UI updates, or even updates to Dart dependencies.
- Create a patch – Use the Shorebird CLI to generate a patch that applies your changes over the air.
- Users receive the update – The next time users restart the app, Shorebird applies the patch automatically.
Code Push or Force Update?
Back in module 6, we introduced various force update strategies to ensure users are always on the latest version of your app.
So, how is Shorebird different?
- Shorebird updates are faster (typically a few KB vs. up to 100s of MB for a full app download)
- Shorebird updates happen in the background and don’t require any action from the user
- Shorebird updates are only free within a certain limit (see pricing table below)
- Shorebird updates have some limitations (discussed below)
In some cases, it may be worthwhile using Shorebird in conjunction with force update. This is discussed in more detail on this lesson at the end of the module.
Limitations
Shorebird patches can update Dart code, including app logic, UI, and Dart dependencies (as long as they don’t contain native code).
However, patches cannot modify:
- ❌ Native code (e.g., Java, Kotlin, Swift, Objective-C) or dependencies that include native code (e.g., Firebase SDKs).
- ❌ The Flutter engine or version.
- ❌ Asset files (e.g., images, fonts)—though future support is planned.
For these, you’ll need to upload a new app release and go through the review process.
Additional Limitations
- No web support: In my opinion, this is a very minor limitation since Flutter web deployments are already easy enough (no app review needed). See this issue for details.
- No code obfuscation on iOS: As of February 2025, code obfuscation is not yet supported on iOS. See this issue for details.
How Much Does it Cost?
Shorebird offers multiple pricing plans, which are all outlined on their pricing page. Here’s a quick overview:
Feature | Free | Pro | Business | Enterprise |
---|---|---|---|---|
Monthly Base Cost | Free | $20 | $400 | Custom |
Included Patch Installs | 5,000 | 50,000 | 1,000,000 | Custom |
Overage Billing | - | $1 per 2,500 installs | $1 per 2,500 installs | Custom |
Unlimited Apps & Releases | ✅ | ✅ | ✅ | ✅ |
TL;DR: You don’t pay for releases—only for patch installs.
What we will cover in this module
This module covers all the essential concepts and steps needed for adding code push to your Flutter app, including:
- Shorebird Installation and Setup
- How to manage Shorebird releases and patches (including staging and production tracks)
- How to integrate Shorebird into your CI/CD pipeline using Codemagic and GitHub Actions
- Additional tips for using Shorebird in production
Ready? Let’s get started!
Resources
While this module guides you through all the essential steps, the official docs are an excellent resource, and cover everything you need to know about Shorebird.
I’ll share relevant links as we go along. For now, here are some resources to get started: