React to APK Ship your React app to Google Play.

No React Native rewrite and no Android Studio. Build your React app as usual, zip the output and turn it into an Android App Bundle.

  • No watermark
  • Ready for Google Play
  • No code needed
  • Your local language

Build, zip, upload

  1. Build for production

    Run npm run build. Vite writes to dist, Create React App to build.

  2. Check the build

    Preview it (npm run preview with Vite) and click through every route once.

  3. Zip the folder

    Zip the dist or build folder.

  4. Upload it

    In HTML to AAB, choose Upload a React build on the Source step and pick the .zip.

Settings that save you a debugging session

Inside an app, your build is not served from the root of a web server. These settings make it independent of where it is loaded from:

  • Relative asset paths. In Vite set base: './'; in Create React App add "homepage": "." to package.json.
  • Hash-based routing. With React Router, HashRouter or createHashRouter keeps every route working without server rewrites.
  • Build-time environment variables. Values like VITE_API_URL are baked into the bundle, so build with production values.
  • CORS on your API. If the app calls your API, make sure the API accepts requests from the app.
vite.config.js
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  base: './',
  plugins: [react()],
})

Why not React Native?

React Native means rebuilding your interface with native components. If your React app already works well on a phone, packaging the build you have is the fastest way onto Google Play, and your web and Android versions stay one codebase.

Other frameworks that produce a static build (Vue, Svelte, Angular or a Next.js static export) follow the same pattern: build, zip the output folder, upload.

Frequently asked questions

Do I need to change my React code?

Usually not. Make asset paths relative and switch to hash-based routing if your router relies on server rewrites.

Does it work with Vite and Create React App?

Yes. Zip the dist folder for Vite or the build folder for Create React App and upload it as a React build.

Can I use Next.js?

Use a static export (output: 'export'), which writes plain HTML, CSS and JavaScript to the out folder, then zip and upload it. Features that need a server will not run inside the bundle; for those, use your live domain as the source instead.

Get started

Your website is one build away from Google Play.

Install HTML to AAB, pick your source and follow the steps. Your first Android app bundle is closer than you think.