Why a dedicated packager?
Every operating system can make a ZIP, and every one of them makes it slightly wrong for an app build. Windows and macOS both compress the folder you click, so the archive contains my-site/index.html instead of index.html — the single most common reason a ZIP to APK conversion opens to a blank screen. macOS adds a __MACOSX folder of resource forks and a .DS_Store in every directory. Framework projects drag node_modules and .git along if you zip the project root by mistake, turning a 300 KB site into a 200 MB archive.
This tool does the opposite of all that. Pick the folder, and it walks the tree, drops the wrapper so index.html lands at the root, leaves out the junk, and writes a clean, deflated ZIP — on your device, with nothing uploaded.
Which folder to choose
The one that directly contains index.html. For a hand-written site that is the site folder itself. For a framework project it is the build output — dist/ for Vite and Vue, build/ for Create React App, out/ for a static Next.js export, public/ for Hugo, _site/ for Jekyll. Never the project root: the source files are not what the app runs, and the build output already has everything it needs.
If you choose a folder that holds a single sub-folder which in turn holds the site, "Strip the wrapper folder" removes the extra level automatically. It stops as soon as an index.html is at the root, so a site with its own folders is left intact.
What gets excluded, and why
| Excluded | Reason |
|---|---|
.DS_Store, Thumbs.db, desktop.ini, __MACOSX/ | Operating-system metadata. Harmless in the app but pure weight. |
node_modules/, .git/, .svn/ | Development dependencies and history. Never needed at runtime; often larger than everything else combined. |
*.map | Source maps. Only useful in devtools, and they can be several times the size of the code they describe. |
Hidden dot-files (.env, .gitignore, .htaccess) | Configuration for servers and tools, and occasionally secrets. Untick "Skip hidden files" if your site genuinely needs one — .well-known/ is the usual exception. |
After the ZIP
Run it through the ZIP to APK Checker if you want a second opinion on paths and scripts, then upload it to the builder. The size shown here as "unpacked" is the number the upload limit is measured against — 5 MB free, 18 MB Pro — and the APK Size Estimator shows what the finished app will weigh.