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 →