Skip to content

ZIP to APK, for ZIPs that hold a website

“ZIP to APK” means four different things. If your ZIP contains a website (an index.html with its CSS, scripts and images), this page turns it into a signed Android app. If it contains something else, you will find the right next step here too.

Website files flowing out of a ZIP archive into a phone app

Start here

Which ZIP do you have?

Look inside the archive, or drop it in the checker below and the matching card lights up.

Four kinds of ZIP: website files with index.html, a single APK, a source project and split APKs
index.html

Website files

An exported site: index.html plus CSS, JavaScript, images and fonts.

Convert it below →
app.apk

An APK inside a ZIP

Someone zipped an Android app to send it. It is already an app.

Extract it, then tap the .apk to install.
.apks / .xapk

A split APK bundle

Several APK parts for one app. Renaming the file to .apk will not work.

Use a split-APK installer you trust.
package.json

Source code

A React, Vue or other project that has not been built into plain HTML yet.

Build it first →

ZIP checker

See what is inside before you upload

The checker reads the archive’s file list in your browser and applies the same rules as the converter: a top-level index.html (one wrapper folder is fine), under 500 files, under 20 MB unpacked, and no executables or secrets.

It also opens index.html to look for asset paths that start with /, the most common reason an uploaded build shows a blank screen.

App configuration

1Choose your source

Paste your site's address. We'll read its name, icon and color for you.

2Make it yours

Free builds use the WebToApp icon and add “· WebToApp” to the name. View plans

Customize (optional)Icon, appearance, sharing and platform settings
Android · Advanced settings
Windows / Linux

Your first successful build is free. Uploaded sites are hosted for a 7-day trial; keep them online with Hosted Site.Pricing

From source code

Export a static build from your framework

Uploaded sites are served from a sub-folder, not the root of a domain. Build with a relative base path, then zip the output folder, not the project.

Project source goes through a build step into a dist folder, which is zipped
ProjectBuild commandZip this folderBefore building
Vite (React, Vue, Svelte)npm run builddist/Set base: './' in vite.config
Create React Appnpm run buildbuild/Add "homepage": "." to package.json
Vue CLInpm run builddist/Set publicPath: './' in vue.config.js
Angularng build --base-href ./dist/<name>/browser/Use withHashLocation() for routing
Hugohugopublic/Set relativeURLs = true
Plain HTML sitenonethe site folderLink files with ./ paths, not /

Single-page apps should use hash routing (/#/settings). The app starts at the site folder, so path-based routes show your “not found” page. Next.js and Astro exports rely on root paths such as /_next/; deploy them and use Website to APK with the live URL instead.

Packaging rules

What the converter accepts

10 MB

Maximum ZIP upload. Compress images to WebP or AVIF to stay under it.

20 MB · 500

Unpacked size and file count. Delete source maps and unused fonts.

index.html

At the top level or inside one wrapper folder. The name is case-sensitive.

macOS __MACOSX folders and .DS_Store files are ignored, so zipping from Finder is fine. Encrypted ZIPs are not supported.

FAQ

ZIP to APK questions

Can I just rename a .zip file to .apk?

No. An APK is a ZIP-based format, but it must contain compiled Android code, a manifest and a signature. Renaming a ZIP of website files produces a file Android refuses to install.

My ZIP contains an APK. How do I install it?

Open the Files app on the phone, tap the ZIP, choose Extract, then tap the .apk inside and allow installs from the Files app when asked. Nothing needs converting.

What are the ZIP size limits?

The ZIP itself must be under 10 MB, unpack to under 20 MB and contain at most 500 files. Executables, shell or Python scripts, keys and .env or .git files are rejected.

How long is the uploaded site hosted?

Uploaded sites are hosted for a 7-day trial. Add Hosted Site from the pricing page to keep the app working after that. The APK keeps opening the hosted copy for as long as hosting is active.

Can I update the app after changing my files?

Yes. Open the app in My apps, upload the new ZIP and rebuild. The app keeps its Android signing key, so the new APK installs over the old one.

Does a React, Vue or Angular app work?

Yes, as long as you upload the built output, set a relative base path and use hash-based routing. If the app is already deployed, converting its URL with Website to APK is simpler.