Back to docs
Recipe

PWA Checklist

Every step to ship a production-grade Progressive Web App that installs, works offline, and passes Lighthouse at 100.

1. Manifest

  • name, short_name, start_url, display: standalone
  • 192×192 and 512×512 PNG icons with purpose: any maskable
  • theme_color and background_color set to #0A0612

2. Service Worker

  • Register at root scope — navigator.serviceWorker.register('/sw.js')
  • Cache shell (HTML, CSS, JS, fonts) on install; stale-while-revalidate for API
  • Offline fallback page — catch-all fetch handler returns cached /offline

3. HTTPS & Headers

  • Force HTTPS — redirect all HTTP traffic, HSTS max-age=63072000
  • Correct MIME types; no nosniff bypasses

4. Lighthouse Audit

  • PWA category → 100. Fix each red/yellow item in the report
  • Test on real mobile device with airplane mode — install prompt must fire

Pro tip: Use Chrome DevTools → Application → Manifest and Service Workers panels to debug each step interactively before running Lighthouse.