Free tool

Single-file app starter

Most HTML files that become blurry, tiny or scroll-jumpy inside an APK are missing four lines in the head. This writes them — and a clean starting layout — into one index.html you can build straight away.

Generate your index.html

Everything is written on this page. Download the file, open it in a browser to check, then upload it to the builder.

Layout

Why a starter file, and not just "write some HTML"?

An HTML file that looks fine in a desktop browser can look wrong the moment it is bundled into an Android app, and the reasons are always the same few lines. Without a viewport meta tag, WebView renders the page at 980px wide and shrinks it, so the text is unreadably small. Without viewport-fit=cover and safe-area padding, the top of the page sits under the status bar on phones with a notch. Without overscroll-behavior:none the page bounces like a web page rather than sitting like a screen. Without touch-action:manipulation every tap waits 300ms in case it is a double-tap.

None of this is hard; it is just easy to forget. The starter writes the head that an APK needs and gives you a layout you can delete — a header and cards, three tabbed screens, a searchable list, or nothing at all.

What is in the generated file

From this file to an installed app

  1. Download index.html, open it in Chrome, resize the window to phone width and check it.
  2. Add your content. Keep everything in the one file, or split it into style.css and app.js and ZIP the folder — the folder-structure guide explains the rules for paths.
  3. Upload the file (or the ZIP) in the builder, set a name and an icon, and build. The APK downloads in a few minutes and installs on any Android phone.

Frequently asked questions

Does the generated file need a server or internet connection?

No. It has no external links, fonts or scripts, so it runs from inside the APK with no connection. That is deliberate — add a CDN link and the app will need a network to render it.

Can I split it into separate CSS and JavaScript files later?

Yes. Move the contents of the style block into style.css and the script into app.js, link them with relative paths (href="style.css", not "/style.css"), and ZIP the folder with index.html at its root.

Why does it disable pinch-zoom by default?

Because apps do not zoom, and a page that does feels like a website in a frame. For a reading app or anything with small text, untick the option — accessibility wins over feel.

What does the localStorage helper actually do?

Two one-line functions that JSON-encode a value into localStorage and read it back with a fallback. In a bundled app localStorage persists across restarts and is only cleared when the app's data is cleared or it is uninstalled.

Will this work as a Progressive Web App too?

It is a valid starting point, but a PWA also needs a web manifest and a service worker, which the starter does not include. For an APK neither is required — the app itself is the installable shell.

Read next

Related tools

Your HTML, installed on a phone today

Upload the file or ZIP, pick a name and an icon, and download a signed Android APK in minutes. Free to start — no Android Studio, no code changes, no card.

Convert HTML to APK — free