Skip to content
Devgo

PWA (Progressive Web App)

A web app that works like a native app — installable, offline-capable, with push notifications. PWAs use service workers for caching and a manifest for install. No app store needed. Used by Twitter, Starbucks, Uber. A cheaper alternative to native apps.

Created by

Frances Berriman, Alex Russell · Coined 'Progressive Web Apps' in 2015

When to use
  • Content/utility apps that don't need native APIs.
  • Cross-platform reach without native cost.
  • Offline-first apps.
  • When app store approval is a barrier.
When not to
  • Apps needing full native API access (use native/React Native).
  • Heavy graphics/games.
  • iOS-focused apps (limited support).

Definition

A PWA is a website with a manifest.json (name, icons, theme) and a (offline caching, background sync, push notifications). Installable from the browser. . required. Works on any platform with a modern browser.

Why it exists

Native apps need separate codebases (iOS, Android) and app store approval. PWAs are one codebase, installable, and work offline — reaching users without the app store friction.

How it works

Add a manifest.json (app metadata). Register a (caches assets, handles offline, push). User installs via browser prompt. Service worker intercepts requests, serves cached content when offline. Push notifications via Push API.

Scaling limits

Limited iOS support (no push notifications until iOS 16.4, limited storage). No access to all native APIs (Bluetooth, NFC limited). App store discoverability is harder.

Cost shape

Free — it's just web tech.

Alternatives

  • Native app — Full API access, app store, but separate codebases.
  • React Native/Flutter — Native feel, cross-platform, but still app store.

Failure modes

  • iOS limitations.
  • No app store presence.
  • Limited native API access.
  • complexity.

, ,