---
description: PWA / service worker — shell-only precache, no data caching, user-consented updates, static offline fallback, manifest and install banner
globs: src/sw.ts,next.config.ts,src/providers/ServiceWorkerRegistrationProvider/**,public/manifest.json,public/offline.html,src/libs/pwa/**,src/config/pwa.ts,src/hooks/useServiceWorkerUpdate/**,src/hooks/useNetworkStatus/**,src/hooks/useNetworkStatusToasts/**,src/hooks/useAppBadge/**,src/hooks/useIsStandalone/**,src/hooks/useInstallPrompt/**,src/hooks/useInstallPromptLifecycle/**,src/components/organisms/PwaManager/**,src/components/organisms/AlertInstall/**,src/components/organisms/DialogInstallIos/**
alwaysApply: false
---

# PWA Rules

@docs/pwa.md — what the service worker may and may never cache, the update flow, the static offline fallback, the precache allow-list, and how to test locally.
