›_deploid
Star
web app → signed Android package

Ship your web app to Android. Without the Android expertise.

Deploid is a CLI that turns any Vite, Next.js, or React app into a signed, published Android package — icons, Capacitor, Gradle, signing, changelogs and Play Store uploads handled for you.

Read the manual →
✓ no Android Studio ✓ 4 commands to prod ✓ CI-ready
my-web-app — deploid — zsh
deploid init
✔ detected Vite (React) · wrote deploid.config.ts
✔ installed @capacitor/{core,cli,android}
deploid package
✔ icons generated · 5 densities + PWA
✔ AndroidManifest / build.gradle configured
deploid build
app-release.aab — signed (12.4 MB)
deploid deploy --launch
✔ Pixel 8 · installed & launched 🚀
// works with Vite Next.js Create React App React · Vue · Svelte Static HTML — detected from package.json
## THE TOIL IT KILLS

Everything between a working web app and the Play Store — automated.

## THE HAPPY PATH

Four commands. Click one.

From a fresh checkout to a phone in your hand.

deploid init
deploid init
## WHEN IT BREAKS

deploid doctor tells you exactly what's wrong.

Java version, Android SDK, Capacitor, signing config, Gradle wrapper, SDK licenses — audited before you file an issue. Fails fast with a clear message instead of a cryptic Gradle error three minutes in.

deploid doctor
Deploid Doctor
Project: ~/my-web-app
Status: ACTION NEEDED (8 passed, 1 warn, 1 fail)
Workflow readiness:
PASS Project setup 100%
PASS Android build 100%
WARN Release readiness 60%
PASS Device deploy 100%
WARN Android signing — no config.
Run: deploid release init
## VS MANUAL SETUP

The afternoon you get back.

Same result. One of these is a diff of your life.

− manual setup ~1–2 days, first time
+ with deploid ~5 minutes
// everything on the left, handled.
## SUPPORTED FRAMEWORKS

Detected from your package.json.

No --framework flag for standard setups.

FRAMEWORKDETECTIONBUILD OUTPUT
## THE RELEASE CHAIN

One command ships it.

deploid ship --patch --from-git runs the whole chain:

deploid ci init github → writes a complete .github/workflows/deploid-release.yml
## PROGRAMMATIC API

Drive it from your own tooling.

Import @deploid/core instead of shelling out — or run deploid daemon for a language-agnostic local HTTP interface.

ship.ts
import { runDoctorCommand, inspectArtifacts } from '@deploid/core';
// full doctor check, JSON out
await runDoctorCommand({ cwd, doctorOptions: { json: true } });
// inspect what was built
const out = inspectArtifacts(cwd);
## PLUGIN PIPELINE

Every step is a plugin.

Assets, packaging, build, deploy, publish — all plugins on one pipeline. Scaffold your own custom step:

deploid plugin init my-custom-step

Your web app is already an Android app.
It just doesn't know it yet.

Node 18+ · Java 21+ · Android SDK. deploid doctor checks the rest.

$ npm install -g @deploid/cli