Quality Assurance Labs
Web Development

Progressive Web Apps — When and When Not to Build One

Senior Web Engineer7 min readPublished Updated

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.

Laptop and phone with an offline cloud
#PWA#service-workers#offline-web#web-push

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

Notes from the lab.

Testing, engineering and growth — delivered to your inbox.

Need a PWA audit? Book a call

Let's talk →