Converting HTML to an APK means packaging your HTML, CSS and JavaScript inside a native Android app whose one screen is a WebView — Android's built-in Chromium engine — pointed at those files. The files are copied into the app's assets folder, so the app works with no server and no connection; the shell adds an icon, a name, a splash screen and a signature, and the result is an .apk file that installs on any Android phone. With an online converter the whole process is: upload the file or ZIP, set a name and an icon, build, download. It takes a few minutes, needs no Android Studio, and on this site is free.
This guide is the long version — what is really happening, where the edges are, and the decisions worth making before you press build.
What an HTML app is, technically
Every Android phone ships a system component called WebView: the rendering engine from Chrome without Chrome's own interface. An HTML app is a normal Android application whose main activity holds one WebView, and whose assets/ folder holds your files. When the app starts, the WebView loads index.html from that folder the way a browser would load it from a server — except there is no server, no network and no address bar.
Around the WebView the app adds what a browser tab cannot give you:
- a launcher icon and a name on the home screen and in the app drawer;
- a splash screen while the first page loads;
- a package name — the app's permanent identity to Android and to Google Play;
- a signature, without which Android refuses to install anything;
- permissions declared in the manifest, so your page can use the camera, microphone or location;
- optionally native bottom tabs, push notifications and a designed onboarding flow.
Because the engine is Chromium, the rule of thumb is: anything that works in Chrome on Android works in the app — with one large exception. Your page is now loaded from local storage rather than an https:// origin, and a browser treats local files more strictly. That exception is the subject of the JavaScript fixes guide and of the Offline Readiness Checker; the short list is CDN links, module scripts, fetch() of local files and paths that start with /.
The three inputs
| Single HTML file | ZIP of a folder | Live URL | |
|---|---|---|---|
| What the app loads | One document, bundled | index.html plus everything next to it, bundled | Your site, from your server |
| Works offline | Yes | Yes | No — shows an offline screen |
| Updating content | Rebuild | Rebuild | Publish on the web; app updates itself |
| Paths to get wrong | None | Some — must be relative | None |
| Right for | Calculators, quizzes, single-page tools, small games | Multi-page sites, exported static sites, games with assets, documentation | Anything with a database, accounts or frequent changes |
| Size limit | 5 MB free · 18 MB Pro | 5 MB free · 18 MB Pro | None |
This site is named after the first two. If your content is finished and should work on a plane, bundle it. If it changes daily or lives in a database, it belongs on a server and the app should load it from there — the folder guide covers the middle case, a static site that wants to be an offline app.
What you need before you start
- An
index.htmlthat opens correctly in Chrome from your own disk (double-click it). If it works fromfile://it will very likely work in the app; if it needs a local server to run, read the fixes guide first. - A viewport meta tag so the page lays out at phone width. Missing it is the most common cause of "everything is tiny". Single-File App StarterA phone-ready index.html scaffold with the right viewport, colours and layout Open the tool
- A square icon, 512×512 or larger, on a solid background. Square Icon PadderTurn a wide logo or a tight crop into a padded 512×512 launcher icon Open the tool
- A name of about twelve characters or fewer, so it does not truncate under the icon.
- The right to publish it. Your own work, or a client's with permission. Converting a site you do not own is a takedown waiting to happen.
Step by step: file to installed app
1. Prepare the file or folder
Single file: make sure every image, style and script is either inline or embedded (the merger and the data-URI tool do this). Folder: index.html at the root, every path relative, no CDN links, then ZIP the contents of the folder — not the folder itself. Run the result through the Offline Readiness Checker.
2. Upload it in the builder
Drop the file or ZIP. The builder unpacks it, finds index.html, checks the size against your tier and shows the page in a phone frame so you can see it before anything is built.
3. Name, icon, colour, package
App name, the square icon (every launcher size is generated), a theme colour for the status bar and splash, and a package name such as com.yourname.appname. The package name is permanent — it identifies the app forever, so choose it once and carefully.
4. Permissions and extras
Switch on camera, microphone or location only if your page uses them. On Pro, add a splash screen, onboarding slides, native bottom tabs and push notifications.
5. Build and download
A real Android project is generated around your files, compiled with Gradle and signed on the build servers. A few minutes later the APK is ready to download. Open it on an Android phone, allow installation from this source when asked, and it is on the home screen.
What it costs
Building a signed, installable APK is free here — no watermark, no expiry, no card. The paid tier exists for Google Play (which requires an AAB and, for updates, your own signing key) and for the native extras. The free versus paid guide compares this with what other converters call "free". If you would rather own the whole toolchain, the online versus Android Studio guide lays out the alternatives honestly.
Google Play, in brief
Play accepts HTML apps. It requires an App Bundle rather than an APK, a privacy policy URL, a Data safety declaration and — for apps that wrap a website — something a bookmark could not do, its minimum functionality rule. An offline HTML app clears that rule by definition: its content ships inside it. The Play checklist walks every item; the privacy policy generator and Data safety helper produce the two documents.
What an HTML app cannot do
Run in the background, use Bluetooth or NFC, draw a home-screen widget, or animate a long list as smoothly as a native one. It cannot register a service worker or load ES modules from the bundle. For a calculator, a quiz, a catalogue, a guide, a portfolio, a course, a form or a game — which is nearly everything people convert — none of that matters. For a fitness tracker that counts steps while the screen is off, you want a native app, and it is better to know that now.