I ship a React Native / Expo app, and the Android release loop kept eating my time.
You can do it for free, sure. eas build --local, Fastlane, a hand-rolled Gradle script. But "free" turns into a Gemfile, a Ruby version manager, a fastlane config you copy from three blog posts, a service-account key you generate wrong the first time, and a versionCode collision that rejects your upload at midnight. Then it breaks again the next time a dependency bumps or you switch machines.
So I built a tool that does the whole thing locally, and cleaned it up enough to sell.
What it does
One command opens a local dashboard on 127.0.0.1. From there:
- Builds a signed, Play-ready
.aabon your machine. No cloud queue, unlimited. - Submits straight to Google Play in one click (internal, closed, or production) with your own service-account key.
- Auto-bumps
versionCodeby asking Play for the highest code you've already shipped, so you stop hitting duplicate-version rejections. - Generates a release keystore if you don't have one, and runs a preflight "Doctor" before anything builds.
Your code and keys never leave your machine. The only thing that goes out is a license check. Expo apps get auto-prebuilt, bare RN works too, and it runs on macOS, Windows, and Linux. Android only for now.
Who it's not for
If you already have Fastlane wired up and you like it, keep your setup, this isn't for you. It's for solo devs and small teams who don't want to lose a day to Ruby configs and Play-API tutorials, and for anyone who needs the whole pipeline to stay local.
It's a paid tool: flat $39/mo or $390/yr, unlimited apps and builds, no metered anything. There's a --demo mode that walks the full flow with a simulated build so you can see exactly what it does before pointing it at your real app. 30-day guarantee.
Landing page + 50-second demo: https://offsetbuild.offsetexchangellc.workers.dev
Would genuinely like feedback from people who deal with this, especially on the submit-to-Play part.
Top comments (2)
building your own local build tool because the bill and the ruby setup kept eating your time is the kind of yak-shave i respect. i lose whole afternoons to the tooling around the code, not the code.
exactly β it was never the code, it was the 20-min cloud queue and the "versionCode already used" rejection right at the finish line that killed my afternoons. so i made build β signed .aab β straight to Play two clicks on my own machine. if you ever want to kick the tires it's got a --demo flag that walks the whole flow with a simulated build, no native setup needed. appreciate you reading it π