expo/builder
hero

Build Android apps.
Skip the cloud queue.

Turn a managed Expo project into a signed APK or AAB entirely on your own machine — one disposable Docker container, no Expo account required.

how-it-works

What actually happens when you run ebl build .

The same six phases, whether you watch them scroll by in a terminal or on the GUI's live dashboard.

  1. 01setup

    Prepare

    Your project is copied into a clean, disposable container — nothing on your machine changes.

  2. 02install

    Install

    Dependencies install via npm — cached across builds, so only the first run is slow.

  3. 03prebuild

    Generate

    expo prebuild (or eas build --local) turns your managed project into a real native Android app.

  4. 04signing

    Sign

    Debug-signed by default, or wired up with your own release keystore for the Play Store.

  5. 05compile

    Compile

    Gradle builds the APK or AAB — logs and CPU/memory/network charts stream live.

  6. 06collect

    Collect

    The signed artifact, its SHA-256, and build metrics land in your project's ebl_builds/ folder.

why-this

Built for the way Expo apps actually ship

No cloud queue

The default Gradle path never touches EAS — no build quota, no account, no waiting in line behind other builds.

CLI or GUI, your call

ebl build . works standalone from any terminal. Prefer a dashboard? ebl start runs a live web GUI with logs and charts.

Disposable containers

Every build gets a fresh container with its own Android SDK, Node, and Gradle — torn down after, nothing lingers.

Real signing, handled safely

Debug by default, or wire in a release keystore — encrypted at rest, decrypted only in memory for the one build that needs it.

Multiple EAS accounts

Save a token per account; ebl build auto-selects the right one by matching your project's app.json owner.

Secrets stay out of your logs

Anything that looks like a secret in your .env, eas.json, or google-services.json is redacted from streamed and saved logs.

collect

Your first signed APK is a few minutes away.