Start here

HTML to APK: converting an HTML5 site or ZIP

Bundle a single HTML file or a ZIP of a static site into an APK that works with no connection at all. What has to be true of the files, the one rule that causes most blank screens, and when a URL conversion is the better call.

7 min read Updated October 2026

To convert HTML to APK you bundle the files inside the Android app instead of pointing it at a web address. Upload a single HTML5 file, or a ZIP of a static site with index.html at its root, and the pages are unpacked into the APK and served from the device — so the app opens instantly and works in airplane mode. The trade-off is that updating the content means building again, where a URL-based APK updates itself the moment you publish.

When to bundle, and when not to

Bundle the filesConvert the URL instead
An HTML5 game, calculator or toolA WordPress, Shopify, Wix or Webflow site
Course material, a catalogue, documentationAnything with a login, cart or database
Content that is finished and rarely changesContent that changes weekly
It must work with no connectionA connection is always available

There is no wrong answer, only a maintenance cost: every content change in a bundled APK is a new build, a new version code, and — if it is on Google Play — a new review.

The file rules

  1. index.html at the top level of the ZIP. Not inside a folder. If your export produces site/index.html, zip the contents of site, not the folder.
  2. Relative paths only. css/style.css works; /css/style.css does not, because there is no web server inside an APK for the leading slash to resolve against.
  3. Lowercase filenames. Android's filesystem is case-sensitive: Logo.PNG and logo.png are different files, and a mismatch that works on Windows silently 404s on a phone.
  4. Everything included. A font, icon set or script loaded from a CDN is a blank space the moment the device is offline — which is the whole reason you bundled.
  5. No node_modules, source maps or .env files. Everything in the ZIP ships inside the APK and can be extracted by anyone who downloads it.
APK Readiness CheckerIs your website ready to convert to an APK? Score it in a minute Open the tool

The rule that causes most blank screens

<script type="module"> is blocked on bundled file:// pages. Your JavaScript never runs, nothing is logged where you can see it, and the APK opens to a white screen. This is far and away the most common failure when converting HTML to APK, and it catches anything exported from a modern bundler in ESM mode.

The fix is to build to a classic script — every bundler has an option for it (Vite: build.rollupOptions.output.format: 'iife'; webpack and Parcel output classic scripts by default). Then re-test by opening the file directly from your own disk in a browser: if it works at file://, it works in the APK. The other eight causes →

Size limits

Free accounts can upload 5 MB of content and Pro raises it to 18 MB. Those are limits on your source files, not on the finished APK, and text compresses hard — a large documentation site is often a few hundred kilobytes. Images and video are what blow the budget: export photos as WebP at the size they are actually displayed, and link out to video rather than bundling it.

What bundled apps get for free

Because the content is local, a bundled APK opens instantly with no loading gap, needs no offline fallback page, and cannot be broken by your hosting going down. It also sidesteps the first question Google Play asks of a converted site — an app that works with no connection is doing something a bookmark cannot. Play's rules →

A quick checklist before you build

Questions people ask

Can I convert an HTML file to an APK for free?

Yes. Upload a single HTML5 file or a ZIP of a static site and the free tier builds a signed, installable APK with no watermark and no expiry. The free upload limit is 5 MB of content; Pro raises it to 18 MB.

Why does my bundled HTML APK open to a white screen?

Almost always because the page uses <script type="module">, which browsers block on bundled file:// pages, so no JavaScript runs. Build to a classic script instead. Absolute paths and missing DOCTYPEs are the next two causes.

Does a bundled HTML APK work offline?

Yes, completely — the pages are served from inside the app. Only resources you left on a CDN will fail, which is why everything should be included in the ZIP.

Where does index.html have to be?

At the very top level of the ZIP, alongside your css/, js/ and images/ folders. If it is one directory deep, the app has nothing to open.

Should I bundle files or convert my URL?

Bundle when the content is finished and must work offline — games, tools, documentation. Convert the URL when the site changes often or depends on a server, because then the app updates itself with no rebuild.

Read next

Turn your website into an app today

Paste your URL, pick a name and an icon, and download a signed Android app in minutes. Free to start — no code, no Android Studio, no card.

Convert my website — free