Skip to content
Interactive Android previews

Your APK, running live in the browser.

Upload an .apk and SpawnDroid boots a real Android 13 device in the cloud, streams it to your browser, and hands you a link to share. Tap it, type in it, read its logs — no installs, no emulator, no device.

  • 50 free streaming minutes
  • No credit card
  • Cancel anytime
  • Android 13real device runtime
  • 0installs for reviewers
  • 1link to share

Built for every Android stack

  • Jetpack Compose
  • Kotlin Multiplatform
  • Flutter
  • React Native
  • Unity
SHARING IT THE OLD WAY
  • APK in Slack
  • sideload over USB
  • device-farm queue
  • screen recording
SPAWNDROID
  • one preview link
  • nothing to install
  • live touch & keyboard
  • Logcat while it runs
What you get

From APK to interactive preview, in one step.

A real Android device, a link anyone can open, and the tools to see what the build is actually doing.

Real Android 13, not an emulator
Each session boots AOSP Android 13 as a container on ARM64 hardware. No QEMU device model, no hypervisor, no x86 translation — your APK runs as it ships.
upload received0.0s
manifest decoded0.1s
android device booted~30s
install + launch6s
stream readylive
Live Logcat
Debug it while it runs
Stream Logcat straight from the device and drive it with Home, Back, Recents and rotation. Touch and keyboard input go to the running app.
14:02:11.482 ActivityManager Start proc com.acme.checkout
14:02:11.913 CheckoutApp session token cached
14:02:12.204 OkHttp GET /cart → 200 (84ms)
14:02:12.771 CheckoutApp render cart · 3 items
14:02:13.006 Choreographer Skipped 4 frames
One link, embed anywhere
Every upload gets a preview link and an iframe snippet. Drop it in a PR, a Slack thread or your own docs.
<iframe
  src="/preview/checkout"
  allow="autoplay; fullscreen"
/>
Open interactive preview
One isolated device per session
Sessions run on their own container and are destroyed when they end. Nothing is shared between sessions or tenants, and no device is left running.
  • APK uploaded

    console or scoped API key

  • Device provisioned

    dedicated Android 13 container

  • Installed and launched

    adb install · launcher activity

  • Stream served

    H.264 over WebSocket to the browser

  • Debugged live

    Logcat, controls, screenshots

  • Torn down

    container destroyed on session end

How it works

A real device, assembled per session.

SpawnDroid stages the pieces — a containerised Android device, your APK, and a low-latency stream — then tears them down when the session ends. No emulator and no hypervisor sit in the path.

apkandroid 13binderadbh.264websocketno emulator
Your app doesn't know it's in a container
It runs against the same kernel interfaces Android uses on a phone. Anything that works against adb devices works here, because this is a real device — not a device model pretending to be one.
  1. 01Your Android apparm64-v8a · as built
  2. 02Android 13 userspaceAOSP · ART · SurfaceFlinger
  3. 03Linux kernel interfacesbinder · cgroups · adb
  4. 04ARM64 hostcontainer, no hypervisor
native ARM64 · real device
Android 13
device runtime
arm64
native execution
1
device per session
Compare

How teams share an Android build today.

Sideloading and device clouds were built for running tests, not for showing people your app. SpawnDroid is the preview layer in between.

APK in chat

email or Slack attachment

No install
No
Any device
No
Try it live
No
Live logs
No
One link
Partial
Embeddable
No
TestFlight / Firebase

internal distribution

No install
No
Any device
No
Try it live
Yes
Live logs
No
One link
Partial
Embeddable
No
Emulator cloud

Sauce Labs, BrowserStack

No install
Yes
Any device
Yes
Try it live
Partial
Live logs
Partial
One link
No
Embeddable
Partial
SpawnDroid

interactive browser preview

SpawnDroid
No install
Yes
Any device
Yes
Try it live
Yes
Live logs
Yes
One link
Yes
Embeddable
Yes

“Partial” means it can be done, but only with an Android device, an install, or a testing framework to wire up first.

Integration

Open it from CI, a link, or your own site.

Upload from any pipeline with a scoped API key, send a preview link, or embed the player wherever your team already looks.

.github/workflows/preview.yml
# works in any pipeline — GitHub Actions, GitLab, a shell script
- name: Open an interactive preview
  run: |
    curl -sS -X POST "$SPAWNDROID_URL/api/apps" \
      -H "Authorization: Bearer $SPAWNDROID_KEY" \
      -F file=@app/build/outputs/apk/debug/app-debug.apk
Native AndroidJetpack ComposeKotlin MultiplatformFlutterReact NativeUnity— if it builds an APK, it previews here
Pricing

Pay for the minutes you stream.

Every plan runs on the same real-device fleet. Start free, then scale concurrent streams as your team grows.

annual saves ~20%
Free
For sharing your first build and trying the player.
€0/ mo

free forever · no card

Included50 mins / mo
  • 1 concurrent stream
  • 50 streaming minutes / month
  • Real Android 13 device
  • Public preview links
  • Iframe embeds
  • Live Logcat
Team
Most popular
For teams reviewing a build every sprint.
€59/ mo

billed monthly

Included2,500 mins / mo
  • 3 concurrent streams
  • 2,500 streaming minutes / month
  • Unlimited preview links & embeds
  • Device controls & screenshots
  • Organisation members & roles
  • Email support
Scale
For orgs shipping builds to review every day.
€199/ mo

billed monthly

Included10,000 mins / mo
  • 12 concurrent streams
  • 10,000 streaming minutes / month
  • CI uploads with scoped API keys
  • Session history & usage analytics
  • Priority streaming queue
  • Priority support
Enterprise
For regulated teams needing control and capacity.
€549+/ mo

starting · billed annually

IncludedCustom concurrency
  • Custom concurrency & minutes
  • SSO / SAML + SCIM
  • Self-hosted deployment option
  • Dedicated device capacity
  • 99.95% uptime SLA
  • Dedicated Slack channel

Prices in EUR · overage from €0.006–€0.012 / minute · unlimited seats on all plans · unused minutes don't roll over

FAQ

Hard questions, straight answers.

If your question isn't here, talk directly to the engineers building SpawnDroid — not a sales bot.

currently in early access

No. SpawnDroid runs Android 13 (AOSP) as a containerised device on ARM64 hardware — there is no QEMU device model and no hypervisor in the path. Your APK executes as native ARM64 against the same kernel interfaces Android uses on a phone (binder, cgroups, namespaces), so what streams to the browser is the app actually running, not a simulation of it.

start free · 50 minutes

Put your next build in a browser tab.

Upload an APK, send one link, and let anyone on the team try it — no installs, no device, no screen recording.

50 free minutes · no credit card · cancel anytime