For a live app, paste https://username.github.io/repo/ into a URL to APK maker. For an offline app, download the built files (not the source), make sure index.html is at the top of the ZIP and all paths are relative, then build with HTML to APK.
- Live route
- URL to APK
- Offline route
- ZIP → HTML to APK
- Common bug
- Absolute /repo/ paths
- Cost
- Free
Route 1: live github.io URL
Simple: copy the Pages URL from Settings → Pages and build. Every push to the publishing branch updates the app. Good for docs, changelogs and anything that changes often.
Route 2: offline app from the repo files
- Get the built outputPlain HTML repo? Use Code → Download ZIP. Vite/React/Vue? Run the build and use the
dist/orbuild/folder. - Fix the top folderGitHub's ZIP wraps everything in
repo-main/. Unzip, then zip the contents soindex.htmlis at the root. - Fix the base pathProject pages are served under
/repo/, so builds often contain/repo/assets/…. Inside an app that path doesn't exist. Set the base to./(Vite:base: './'; CRA:"homepage": ".") and rebuild. - Build with HTML to APKPick the ZIP, name, icon, build.
Spot the path problem
| In your HTML | Works offline in app? |
|---|---|
src="assets/app.js" | Yes |
src="./assets/app.js" | Yes |
src="/assets/app.js" | No — points at the root of nothing |
src="/repo/assets/app.js" | No |
src="https://cdn…/lib.js" | Only with internet |
Single-page apps using browser-history routing (/about without a hash) should switch to hash routing for an offline build, since there's no server to fall back to index.html.
Questions people ask
Is a GitHub Pages app free?
Yes — Pages hosting is free for public repos and both Android makers build without charge.
Why is my offline GitHub Pages app a white screen?
Almost always absolute paths or history routing. Make paths relative and use hash routes.