1. Home
  2. HTML CSS JS to APK

Guide

HTML, CSS and JavaScript to APK — free

If you can build it with HTML, CSS and JavaScript, you can ship it as an Android app. The trick is packaging the folder the way an app expects it.

Updated 2026-10-203 min readBy the Free APK Maker team
Quick answerPut your project in one folder with index.html at the top, make every path relative, zip the folder's contents and build the ZIP with HTML & ZIP to APK Builder. For React, Vue, Svelte or Vite projects, zip the production build folder (dist or build) instead of your source code.

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:

ToolBuild commandFolder to zipSetting to change
Vite (React, Vue, Svelte)npm run builddist/base: './' in vite.config
Create React Appnpm run buildbuild/"homepage": "." in package.json
Angularng builddist/<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

  1. Zip the folder contents (or your dist/ build).
  2. Open HTML & ZIP to APK Builder, choose ZIP and pick the file.
  3. Add the name, icon, colour and package name, then build.
  4. 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.