Progressive Web Apps — When and When Not to Build One
A PWA isn't a compromise. Done right, it beats native for most use cases. Here's what a PWA actually gives you, where it falls short, and how to decide if it's right for your product.

Progressive Web Apps (PWAs) have been "the future" for a decade. In 2026, that future is finally here — for the right use cases.
A PWA is a web app that behaves like a native app: installable, offline-capable, push-notification-enabled. It's still a website, but with superpowers.
What a PWA gives you
Installability — Users can install your web app to their home screen
Offline support — Service workers cache assets and data
Push notifications — Web push works on Android and iOS
Fast loads — Cached assets load instantly on repeat visits
Cross-platform — One codebase, all devices
Where PWAs shine
Content-heavy apps — News, blogs, docs
E-commerce — Product browsing, cart, checkout
Utility apps — Calendars, note-taking, task managers
Internal tools — Dashboards, admin panels
Marketing-led products — SEO + mobile presence
Where PWAs fall short
Heavy native features — Bluetooth, NFC, complex camera, background location
High-performance games — WebGL is close, but still not native
iOS quirks — Push notifications and install prompts work but are limited vs. native
App store presence — PWAs don't live in stores (though this is changing)
Technical building blocks
Manifest (manifest.json) — Defines app name, icons, theme color, display mode
Service worker — Caches assets, intercepts network requests
Push notifications — Web Push API + a push service (Firebase, OneSignal)
HTTPS — Required for service workers
Offline strategy
Not all content needs to be offline. Prioritize:
App shell (nav, layout, static assets)
Recently viewed content
User data (drafts, cart, preferences)
Use cache-first for static, network-first for fresh data, stale-while-revalidate for hybrid.
Install and update
Show install prompt after engagement (not immediately)
Use custom install UI (not the default browser prompt)
Handle updates gracefully (show "new version available" banner)
Test updates on iOS and Android separately
Common mistakes
Caching everything (bloats storage)
Caching nothing (defeats the point)
No install prompt
No update strategy
Ignoring iOS limitations
Testing only on Android
Key takeaways
- PWAs are production-ready for content, commerce, utilities
- Not ideal for heavy native features or high-perf games
- Manifest + service worker + HTTPS are the foundation
- Cache strategically, not everything
- Test on both iOS and Android
Further reading
About the author
Senior Web Engineer →Senior Web Engineer · Quality Assurance Labs



