Skip to content

Replace Memo demo with a URL-payload WebApp Shell#2

Merged
appshr merged 1 commit into
mainfrom
claude/pwa-example-app-7na1f3
Jun 20, 2026
Merged

Replace Memo demo with a URL-payload WebApp Shell#2
appshr merged 1 commit into
mainfrom
claude/pwa-example-app-7na1f3

Conversation

@appshr

@appshr appshr commented Jun 20, 2026

Copy link
Copy Markdown
Owner

Guts the notes app and turns the project into an offline-first shell that renders self-contained HTML encoded into the URL — a successor to opening data:text/html;base64 URLs from iOS Shortcuts, but on a real, persistent origin.

  • index.html: reads base64url HTML from the URL hash (#app= / gzip #appz=), decodes it (optional gzip via Compression Streams), and renders it full-screen in an iframe. When no payload is present, shows a builder UI to paste HTML and generate/copy/open a launch link. Auto-injects apple-mobile-web-app-capable + viewport metas. Includes a persistent- storage demo app.
  • Hash carries the payload so it never hits the server (no length/routing limits) and the service worker always matches the cached shell -> any generated link works fully offline after first load.
  • sw.js: precache shell, cache-first with ignoreSearch + navigation fallback so /webapp-shell/#... and ?... resolve offline; cross-origin requests pass through to the network.
  • manifest: renamed to WebApp Shell, dark theme.
  • icons: new code-bracket </> glyph (svg + regenerated pngs).
  • README: usage, Shortcuts/Home Screen steps, webapp:// explanation, offline + security notes.

Claude-Session: https://claude.ai/code/session_01RTeJvsfW1JMs5fbP7AMYEz

Guts the notes app and turns the project into an offline-first shell that
renders self-contained HTML encoded into the URL — a successor to opening
data:text/html;base64 URLs from iOS Shortcuts, but on a real, persistent
origin.

- index.html: reads base64url HTML from the URL hash (#app= / gzip #appz=),
  decodes it (optional gzip via Compression Streams), and renders it
  full-screen in an iframe. When no payload is present, shows a builder UI
  to paste HTML and generate/copy/open a launch link. Auto-injects
  apple-mobile-web-app-capable + viewport metas. Includes a persistent-
  storage demo app.
- Hash carries the payload so it never hits the server (no length/routing
  limits) and the service worker always matches the cached shell -> any
  generated link works fully offline after first load.
- sw.js: precache shell, cache-first with ignoreSearch + navigation
  fallback so /webapp-shell/#... and ?... resolve offline; cross-origin
  requests pass through to the network.
- manifest: renamed to WebApp Shell, dark theme.
- icons: new code-bracket </> glyph (svg + regenerated pngs).
- README: usage, Shortcuts/Home Screen steps, webapp:// explanation,
  offline + security notes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RTeJvsfW1JMs5fbP7AMYEz
@appshr appshr merged commit 66cdd7e into main Jun 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants