The folder an app expects
my-app/
├── index.html ← must be here, at the top
├── css/style.css
├── js/app.js
└── images/logo.png
When you zip it, select the files inside my-app and compress those. Zipping the folder itself adds an extra level, and the app then can't find index.html — the classic blank-white-screen bug.
Paths: the one thing that breaks most apps
Inside an APK your files aren't on a web server at your domain, so paths starting with a slash point to the wrong place.
- Works:
css/style.css,./js/app.js,images/logo.png - Breaks:
/css/style.css,C:\Users\me\site\logo.png,file:///…
Also double-check capital letters. Windows and macOS don't care if you write Logo.PNG for logo.png; Android does.
React, Vue, Svelte, Angular and Vite
Don't zip your source code. Run the production build and zip what it outputs:
| Tool | Build command | Folder to zip | Setting to change |
|---|---|---|---|
| Vite (React, Vue, Svelte) | npm run build | dist/ | base: './' in vite.config |
| Create React App | npm run build | build/ | "homepage": "." in package.json |
| Angular | ng build | dist/<app>/browser | --base-href ./ |
Use hash routing (/#/settings) rather than history routing. There's no server inside the app to send every route back to index.html.
Calling APIs and saving data
Your JavaScript can still call online APIs with fetch — the app has normal internet access. For data that should stay on the phone, localStorage handles settings and small lists, and IndexedDB handles larger data. Both persist between launches.
From folder to APK
- Zip the folder contents (or your
dist/build). - Open HTML & ZIP to APK Builder, choose ZIP and pick the file.
- Add the name, icon, colour and package name, then build.
- Install the APK and click through every screen, then test again with no connection.
The free plan bundles up to 5 MB, which fits most apps once images are compressed. Bigger projects fit in Pro's 18 MB.
"How do I turn code into an APK?"
That's one of the most-asked questions about this. If your code is web code — HTML, CSS, JavaScript, or a framework that builds to them — the steps above are the whole answer. If it's Java or Kotlin, you need Android Studio. If it's Python or C#, look at tools made for those languages. This converter is for web code.
Try it now — it's free
No watermark, no card, no Android Studio. Pick what you're starting from:
Questions people ask
How do I turn HTML, CSS and JS code into an APK?
Put the files in one folder with index.html at the top, use relative paths, zip the folder contents and build the ZIP with HTML & ZIP to APK Builder.
Can I convert a React app to APK without Android Studio?
Yes. Run the production build with a relative base path and hash routing, zip the build folder and convert it like any other web project.
Does fetch() work inside the app?
Yes. The app has normal internet access, so API calls work. Only bundled files work offline.