LOCAL-FIRST APK PACKAGER

A URL in.
An Android app out.

Package a website you have the right to use as a signed APK — assembled in this browser tab. No account, no build queue, no Chrome.

01 / BUILDER

Make the package.

Everything below runs in your tab. The only third-party network request is the optional favicon lookup, and it goes only to the site you name.

BUILDER LOCAL ENGINE: IDLE

HTTPS only. The generated app loads the live site; it is not an offline copy.

Icon

A monochrome letter tile, generated locally.

Min / target SDK

24 / 36

Package

com.example

Enter an HTTPS URL to begin.

PREVIEW

Example

com.example

Output
Signed APK
Signing
Local · RSA-2048
Engine
WebView shell
Key storage
Non-exportable IndexedDB key
No key yet. It is created on the first build.

02 / HOW IT WORKS

Three steps. Nothing leaves the tab.

The APK is assembled from a prebuilt Kotlin shell, your identity fields, and a key generated on this device.

  1. 01

    Name the site.

    Paste an HTTPS URL. The name, icon and package identity are yours to change; the package is the reversed host, derived locally.

  2. 02

    Keep the key.

    A signing key is generated in this browser. Export the encrypted backup once — it is the only way to update the app later.

  3. 03

    Sign and install.

    The APK is assembled and signed locally, then downloaded. Sideload it after allowing installs from your browser or file manager.

03 / WHAT IT IS

A real app, not a bookmark.

  • A launcher icon, app-drawer entry and its own window.
  • File uploads, downloads, camera, microphone and geolocation.
  • Fullscreen video, external links and back navigation.
  • A small APK with no background service and no telemetry.
  • Your key, your signature, your copy of the source.

04 / WHAT IT ISN'T

Not a browser.

  • Google sign-in will fail. Google blocks OAuth in embedded WebViews.
  • No Web Push, browser extensions or Firefox profile.
  • No App Links or domain capture: links to the site still open in your default browser.
  • No offline copy, no DRM L1, and passkeys may not work.
  • Some sites block WebView user agents. This is a wrapper, not a site compatibility layer.

05 / PRIVACY

Your key stays here.

There is no account and no server-side build. The only server endpoint is the optional favicon lookup.

01

No uploads

The URL, icon and name are used in this tab. The APK is assembled in memory and downloaded directly.

02

Key in IndexedDB

The private key is imported as a non-exportable WebCrypto key. An encrypted backup file is the only copy you can move.

03

One network call

Fetch favicon sends the site URL to this worker, which requests the site's icon. Skip the button and nothing leaves the tab.

04

No analytics

No accounts, no telemetry, no third-party scripts. The source is Apache-2.0 and self-hostable.

06 / QUESTIONS

Before you install.

Why not PWABuilder or Bubblewrap?

Those produce Trusted Web Activities, which need Chrome and Digital Asset Links, and the hosted versions run a cloud build. This uses Android System WebView and does the work in the browser.

Do I need Chrome installed?

No. The generated app uses Android System WebView, which is normally a separate system package from the Chrome browser.

Can I update an installed app?

Yes — with the same signing key and a higher version code. Keep the encrypted key backup. A different key means uninstalling first, which also removes app data.

What happens if I lose the key?

You cannot update an installed app. You would have to uninstall it and lose its data. The backup file is deliberately the only portable copy.

Is this on Google Play?

No. These are personal sideloaded builds. Android will warn about unknown apps, Play Protect may flag them, and developer verification rules vary by region.

Does the APK work offline?

No. It is a WebView wrapper around the live URL. If the site is offline or unreachable, the app shows a local error page.

SIGNING KEY

Create the key that signs this app.

The key is generated in this browser and stored as a non-exportable key. The encrypted backup is the only copy you can move. Lose both and you cannot update the app without uninstalling it.