Per-build invoices
Every build burns credits. Costs scale with your release cadence and your team — exactly when you can least afford the friction.
Hangar runs eas build --local on hardware you already own.
Trigger iOS & Android builds from a dashboard or the CLI, watch them live
in the dashboard, and download the artifact when it's done. No per-build cloud fees. No queue.
npm i -g @chronsyn/hangar-cli
The status quo
Shipping a React Native app means building it constantly. The default answer charges you per build, makes you wait in a shared queue, and asks you to upload your source to someone else's machine.
Every build burns credits. Costs scale with your release cadence and your team — exactly when you can least afford the friction.
Your build waits behind everyone else's. A one-line fix can sit in line for the length of a coffee break before it even starts.
Your working tree and build cadence are visible to a third party. For some teams that's a non-starter on its own.
How it works
The CLI bundles and encrypts your working tree, your Mac does the build, and the artifact comes back. Nothing leaves your hardware in the clear.
Run hangar build or click Build in the dashboard. The CLI bundles your working tree — minus node_modules — then encrypts and streams it to your server.
The server decrypts the bundle in the builder process and runs eas build --local --non-interactive for your chosen platform and EAS profile.
Streaming logs and per-step progress play out live in the dashboard; from the CLI you track build status to completion. When it's done, download the .ipa, .aab, or simulator build — with OTA install when your deployment has public TLS.
Why Hangar
Builds run on hardware you already own. Pay for the Mac once, build as often as you like.
It's your machine — builds start immediately instead of waiting in a shared cloud queue.
The bundle is encrypted from the CLI to the builder and stays encrypted at rest. Code never sits in plaintext on disk.
Submit, track, and download builds from a polished web dashboard or the terminal — with live streaming logs and per-step progress in the dashboard.
Watch each build step and stream logs in real time in the dashboard. From the CLI, submit a build and track its status to completion.
Self-hosted by definition. Your source and build cadence stay on your machine — signing credentials are managed by Expo/EAS, the same as any eas build.
Uses your existing eas.json profiles. If eas build --local works, Hangar works.
Each account is its own private workspace — builds and artifacts are visible only to the user who ran them (and the operator). Two teammates building the same app keep separate, private histories. Self-signup (on/off), per-user disable, and a superadmin operator role round it out.
Two surfaces, one workflow
Submit builds, track them, and download artifacts from either. Streaming logs and per-step progress are the dashboard's specialty; the CLI keeps you in the terminal and tracks status to completion.
Security
Encryption isn't a setting you turn on — it's how the bundle moves. The only machine that ever sees your plaintext source is the one you own and operate.
The CLI encrypts your working tree before it ever hits the network, then streams it to your server.
Bundles stay encrypted on disk. Decryption happens inside the builder process — and nowhere else.
Self-hosted by definition. Your source and build cadence stay on your hardware. Signing credentials are still managed by Expo/EAS — the same as any eas build.
Honest scope
eas build --local on your Mac, for iOS & Android.ipa / .aab / simulator artifacts for downloadeas submit)eas update)It assumes your project is already configured so that eas build --local succeeds. We'd rather tell you exactly where the line is than over-promise "replace EAS."
Get started
Install the CLI, point it at your server, log in, and build. The full walkthrough is in the docs.
Launching soon. Hangar is free and open source — the repository goes public shortly.
npm i -g @chronsyn/hangar-cli