Skip to content

feat(pwa): per-tool PWA install — install any tool as its own app - #387

Merged
slaveofcode merged 5 commits into
developfrom
feat/per-tool-pwa
Sep 11, 2026
Merged

feat(pwa): per-tool PWA install — install any tool as its own app#387
slaveofcode merged 5 commits into
developfrom
feat/per-tool-pwa

Conversation

@slaveofcode

Copy link
Copy Markdown
Owner

Implements the spec at docs/superpowers/specs/2026-09-11-per-tool-pwa-install-design.md.

Every tool becomes installable as its own focused PWA — the installed icon opens straight into that one tool, with a distinct per-tool icon.

What

  • Per-tool manifests — endpoint src/pages/manifests/[tool].webmanifest.ts emits /manifests/<id>.webmanifest for all ~200 tools (scope/start_url = /tools/<id>, unique id). Pure, unit-tested buildToolManifest.
  • Distinct per-tool icons — prebuild scripts/make-tool-icons.mjs renders each tool's lucide glyph on its category-colored maskable tile → 192/512/180 PNGs (adds lucide-static devDep; 2 tools fall back to a generic glyph, logged).
  • Manifest ownership — Astro PWA set to manifest: false (still builds the SW); the static public/manifest.webmanifest is the global one; Base.astro takes manifestHref/appleTouchIcon props so tool pages link their own.
  • Install UIuseInstallPrompt hook (+ early beforeinstallprompt capture in Base.astro) and an InstallTool island: '📲 Install this tool' button in the tool header — native prompt on Android/desktop, iOS Add-to-Home-Screen hint, hidden when already installed / standalone / dismissed (per-tool).

Tests

  • Unit: manifest.lib (8), useInstallPrompt (3). Full suite 2259 green.
  • E2E e2e/tools/install-tool.spec.ts: tool page links its own manifest + apple icon; install button appears on a synthetic prompt.
  • Build: 200 per-tool manifests + icons; tool pages link their own manifest, home links the global one; SW intact. Lint 0 errors.

Real-device install (Android Chrome / iOS Add-to-Home-Screen) to be spot-checked after promotion.

Emit a web manifest per tool (endpoint), own the manifest (plugin builds
the SW only), link each tool page to its own manifest + generated
apple-touch icon, and add an 'Install this tool' button (useInstallPrompt
hook + early beforeinstallprompt capture; iOS Add-to-Home-Screen hint;
per-tool dismissal).
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
🔵 In progress
View logs
goodwebtools 852f802 Sep 11 2026, 01:34 PM

@slaveofcode
slaveofcode merged commit 5b51918 into develop Sep 11, 2026
2 of 3 checks passed
@slaveofcode
slaveofcode deleted the feat/per-tool-pwa branch September 11, 2026 13:39
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.

1 participant