Self-hosted release CI for Flutter

Push a tag. Ship to both stores.

Tag v1.4.2 and deploy builds, signs, and submits your app to Google Play and the App Store — for review, automatically, from a server you own.

$
queued
building
uploading
submitting
shipped
✓ Google Play · ✓ App Store

How it works

01

Connect a repo

Pick repos through the GitHub App — no long-lived tokens. Builds run on GitHub Actions out of the box (nothing to install), or on your own machines for speed.

02

Add signing config once

Upload keystore, certificates, and store API keys one time. Encrypted at rest, streamed only to the worker assigned to your build.

03

Push version tags

Every tag matching v* becomes a store release: built, signed, submitted, with live logs and an email when it lands.

Why deploy

iOS builds without a Mac

Tag pushes self-trigger GitHub's macOS runners. Signing configs stay on your server — GitHub only ever holds a worker token.

Live logs, real state

Watch every build stream in real time, from queued to shipped, with artifacts kept on your own disk.

Your hardware, if you want it

Optionally plug in any machine of yours as a worker — faster warm builds, no per-minute billing, no concurrency upsell.

Secrets stay home

Keystores, certificates, and API keys are encrypted at rest and never stored with a third party.

Plans

Free

  • Full pipeline: build, sign, submit
  • Google Play + App Store
  • GitHub Releases for sideloaded apps
  • Unlimited builds on your workers

Pro PRO

  • Everything in Free
  • Shorebird code push — ship fixes over the air between store releases
  • Patch tags (patch-1.0.2+3)