A tiny, offline-first PWA shell that renders self-contained HTML pages encoded
directly into the URL. It's a successor to opening data:text/html;base64,… URLs
from iOS Shortcuts — but on a real, persistent origin.
Live: https://appshr.github.io/webapp-shell/
- Open the shell. Paste a self-contained HTML page into the builder.
- It encodes your HTML (base64url, optionally gzip-compressed) into a link like:
https://appshr.github.io/webapp-shell/#app=<base64url> https://appshr.github.io/webapp-shell/#appz=<gzip+base64url> - Opening that link renders your page full-screen inside the shell.
data: URL |
WebApp Shell | |
|---|---|---|
| Runs offline | yes | yes (service worker) |
Persistent localStorage / IndexedDB |
❌ opaque origin | ✅ real origin, survives launches |
| Add to Home Screen (full-screen) | ❌ | ✅ |
| Stable, shareable URL | ❌ | ✅ |
- The hash is never sent to GitHub's servers, so there are no URL-length or routing limits, and the service worker always matches the cached shell — meaning any generated link works fully offline after the first load.
- Encoding is base64url (
-/_, no padding) so it's URL-safe everywhere. - With gzip (Safari 16.4+) the link stays much shorter.
- Generate a link in the builder and Copy it.
- Add an “Open URLs” action in Shortcuts and paste the link.
- Running the shortcut opens your app in Safari — offline, with its data intact.
Shortcuts opens URLs in Safari (with its minimal toolbar). iOS does not allow Shortcuts to launch directly into a chrome-free standalone window — that's an OS limitation, not something a web page can change.
- Open your app link, then in Safari tap Share → Add to Home Screen → Add.
- The icon launches your app full-screen, offline, with its own storage.
The shell auto-injects apple-mobile-web-app-capable and a viewport meta if your
page is missing them, so any pasted page becomes full-screen-capable.
Custom URL schemes can only be claimed by native apps on iOS (via Info.plist).
A web page / PWA cannot register webapp://, so it can never be launched that way.
The https:// links this tool generates do everything that scheme was meant to do.
The first online load caches the shell permanently via a service worker. After that the shell and every link work with no network. Your app only needs the internet if its own code fetches something external — keep pages self-contained to stay 100% offline.
Anything you load runs on the appshr.github.io origin with full access to its
storage. Only open links you created or trust: a malicious page could read or wipe
the data of your other shell apps.
index.html— the shell (renderer + builder UI)sw.js— service worker (offline cache)manifest.webmanifest— PWA manifesticon.svg,icon-192.png,icon-512.png— icons