← All posts
Announcement · 4 min read · 2026-04-21

Announcing DroidFleet — public beta

DroidFleet is open for public beta today. It's a tool for testing Android apps on a fleet of real, physical phones — drag an APK onto a desktop window, watch it install in parallel on every device you own, see logs and crashes streamed back as they happen.

I've been building it for the better part of a year, on and off, mostly because I needed it myself. Today it's stable enough that other people should have it too. Here's the pitch, the story, and what's next.

The pitch

Mobile QA tools come in two flavors. Cloud test farms (BrowserStack, AWS Device Farm) rent you virtual access to phones in a datacenter. They're slow (every interaction round-trips through a video stream), expensive ($0.10–$1.00 per device-minute), and miss real-hardware bugs because the underlying devices are recycled, possibly tampered, and don't behave like the phone in your pocket. USB hubs are the DIY answer: plug 4 phones into your laptop, run ADB. Fast and cheap, but only one developer can use them at a time, ADB drops connections every other day, and the moment you want to share with a teammate it falls apart.

DroidFleet is a third option. The phones you already own — sitting in a drawer, on the office shelf, in your backpack — become a test grid. They connect outbound over the internet through a thin relay, so they don't need to be on the same Wi-Fi as your computer or each other. You drop an APK once; it goes to all of them in parallel. Logs stream back live. Crashes are deduplicated automatically. And it's free for up to 2 phones, $29/mo for 10.

What's in the beta

Architecture

Three pieces:

  1. Server (Node + TypeScript) — runs on your laptop or your VPS. SQLite by default; Postgres available for scale. Hosts the web UI, the HTTP API, and the relay client.
  2. Android agent (Kotlin + Jetpack Compose) — installs on each phone. Connects out to the relay. Handles install commands, log streaming, crash reporting, screenshot capture, memory + network sampling, and self-update.
  3. Relay (TypeScript on Render) — a stateless WebSocket fan-out that lets the server and the phones meet in a private "room" without either needing a public IP. You can self-host this too if you want full control.

Your phones never expose anything to the internet. The relay sees encrypted message envelopes; it doesn't see APKs or log contents. APK delivery uses an on-demand Cloudflared tunnel so the download URL works from anywhere in the world without you running a public file server.

Honest about what's NOT in the beta

Try it

# Self-host (Docker)
git clone https://github.com/droidfleet/droidfleet
cd droidfleet
docker compose up -d
# → http://localhost:3100

# Or VPS one-liner
curl -sSL https://get.droidfleet.dev/install.sh | bash -s -- \
  --domain you.example.com --email [email protected]

Or click the big green button at droidfleet.dev and we'll provision a hosted account in 30 seconds. Free tier supports 2 phones; no credit card.

What I'm asking for

Try it. Tell me what breaks. [email protected] — I read every email.

If you have phones on a desk and you're tired of plugging cables, this is for you. If you're paying $200/mo to a cloud farm to test what your own hardware could do for free, this is definitely for you.

Thanks for reading. Now go test something.