Skip to content

Add PWA support for installable desktop experience#49

Open
richardpringle wants to merge 1 commit into
yourbuddyconner:mainfrom
tkhq:feature/pwa-support
Open

Add PWA support for installable desktop experience#49
richardpringle wants to merge 1 commit into
yourbuddyconner:mainfrom
tkhq:feature/pwa-support

Conversation

@richardpringle
Copy link
Copy Markdown

Summary

Add minimal Progressive Web App (PWA) support so the Valet dashboard can be installed as a desktop app from Chrome — no more hunting through browser tabs to find it.

What's included

  • Web app manifest (manifest.json) — name, icons, standalone display mode, theme colors matching the existing dark UI
  • App icons — 192x192, 512x512, 512x512 maskable, and apple-touch-icon, all matching the existing dark theme with cyan "V" branding
  • Minimal service worker (sw.js) — satisfies Chrome's PWA installability criteria with a basic fetch handler. No offline caching or advanced features.
  • Service worker registration — registered from main.tsx on page load
  • HTML head updates — manifest link, apple-touch-icon, and iOS meta tags added to index.html

What's NOT included (intentionally)

  • No offline support
  • No push notifications
  • No caching strategy
  • No background sync

This is the minimum viable PWA — just enough for the browser install prompt.

Future: ACP Integration

A TODO is included in the service worker for future Agent Client Protocol (ACP) integration. The PWA is the foundation for a native-feeling desktop experience that can bridge cloud-hosted agent sessions with local dev tools.

Files changed

File Change
packages/client/index.html Added manifest link, apple-touch-icon, iOS meta tags
packages/client/src/main.tsx Added service worker registration
packages/client/public/manifest.json New — web app manifest
packages/client/public/sw.js New — minimal service worker
packages/client/public/icons/icon-192.png New — 192x192 app icon
packages/client/public/icons/icon-512.png New — 512x512 app icon
packages/client/public/icons/icon-512-maskable.png New — 512x512 maskable icon
packages/client/public/icons/apple-touch-icon.png New — 180x180 Apple touch icon

Add minimal Progressive Web App support so the Valet dashboard can be
installed as a desktop app from Chrome (and other browsers that support
PWA). This eliminates the need to hunt through browser tabs to find it.

Changes:
- Add web app manifest (manifest.json) with app name, icons, and
  standalone display mode
- Add app icons (192x192, 512x512, 512x512 maskable, apple-touch-icon)
  matching the existing dark theme with cyan 'V' branding
- Add minimal service worker (sw.js) with fetch handler to satisfy
  Chrome's PWA installability criteria — no offline caching
- Register service worker from main.tsx on page load
- Add manifest link, apple-touch-icon, and apple-mobile-web-app meta
  tags to index.html

This is intentionally minimal — no offline support, no push
notifications, no caching strategy. Just enough for the install prompt.

Includes a TODO for future ACP (Agent Client Protocol) integration to
bridge cloud-hosted agent sessions with local dev tools.
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