PWA services
PWA services
Every site in the family is an installable Progressive Web App.
PWA-only — no native wrapper. Decision locked at
decisions/architecture/distribution-and-queues-locked.md.
| Service | Status | Role | Free tier |
|---|---|---|---|
| vite-pwa-astro.md | active | pwa-builder | MIT npm package, no backend, no quota |
Why every site
- Installability — desktop + mobile users get an app icon without a store or signing certificate.
- Offline survival — Workbox-generated service worker caches the static shell + last-N pages so the site survives transient network loss.
- Faster repeat visits — pre-cached assets skip the network round-trip.
- Notification + share-target hooks — the manifest grants these without native code.
The cost is one config block per site (the kit ships a preset).
Walked back
The original Batch 13 over-selection included Capacitor and Tauri as parallel native-wrapper layers. Both were explicitly walked back — simplicity over coverage. PWA-only is the floor; native wrappers stay walked back unless a feature lands that PWA APIs can't express.
| Stack | Why walked back |
|---|---|
| Capacitor | Native wrapping; Apple Developer Program $99/yr conflicts with monetisation/no-subscriptions-anywhere.md. Re-open only when a hardware/iOS-background-sync need lands. |
| Tauri | Native wrapping (Rust + WebView); deferred until a native-only feature requirement appears. Re-open conditions same as Capacitor. |
| TWA (Trusted Web Activity) | Android-only Play Store wrapper; deferred until Play Store presence is desired. |
PWA-only is the explicit floor: every site installable, no native build until a native-only feature need arises.