PWA production checklist
Validate installability, standalone behavior, service worker setup, screenshots, icons, offline fallback, and production readiness before shipping Starter Pro.
Validate before releaseLink to section
Use this checklist before shipping the PWA layer in Starter Pro.
The goal is to validate:
- manifest quality
- icon quality
- screenshot quality
- service worker behavior
- offline fallback routing
- standalone mode
- mobile UX
- production HTTPS behavior
Ship the PWA layer with confidence.
One-time payment · Instant access after purchase
Release principle
A PWA is not production-ready because a manifest exists. It is production-ready when installability, offline fallback, mobile UX, and security boundaries have been validated.
Core checklistLink to section
Manifest
Service worker
Offline fallback
Release gatesLink to section
Technical validation
- manifest visible in Chrome DevTools
- service worker active
- `/offline` route available
- icons load correctly
- screenshots load correctly
- HTTPS enabled in production
Product validation
- dashboard screenshot looks premium
- mobile screenshot represents app usage
- offline page matches PyColors design system
- standalone mode remains navigable
- mobile layouts remain usable
Manifest checklistLink to section
Validate in Chrome DevTools:
Application
→ ManifestConfirm:
- app name is correct
- short name is correct
displayisstandalone- theme color is visible
- background color is visible
- icons are detected
- screenshots are detected
- no installability warning appears
Asset checklistLink to section
| Asset | Expected |
|---|---|
icon-192.png | 192x192 |
icon-512.png | 512x512 |
maskable-icon-512.png | 512x512 with safe padding |
apple-icon.png | 180x180 |
dashboard-desktop.png | 1280x720 |
dashboard-mobile.png | 390x844 |
Screenshot rule
Use real dashboard or workspace screenshots. Avoid using only login screens because they do not communicate the full SaaS value.
Offline checklistLink to section
Validate offline behavior:
Application
→ Service Workers
→ OfflineThen reload the app.
Expected result:
/offlinerenders- page keeps PyColors styling
- app does not crash
- reload action is present
- no sensitive stale data is shown
Mobile checklistLink to section
Validate on real devices when possible:
- iPhone Safari
- Chrome Android
- installed standalone mode
- mobile dashboard
- mobile billing page
- mobile settings page
- mobile offline page
Prefer / avoidLink to section
Validate
- production build tested with
pnpm build && pnpm start - real screenshots in
public/pwa - service worker activated in DevTools
- offline fallback confirmed
- iOS and Android install behavior checked
Do not ship with
- testing only in development mode
- placeholder screenshots
- oversized manifest images
- offline billing or auth assumptions
- unclear service worker cache behavior