What is a PWA
Progressive Web Apps: native-like experiences from the browser without going through app stores
Progressive Web Apps (PWAs) represent an evolution of traditional web applications. They combine the best of the web (accessibility, URLs, indexability) with capabilities that were once exclusive to native apps: offline functionality, home screen installation and push notifications.
Companies like Starbucks, Pinterest and Uber have adopted PWAs to reduce access friction and improve engagement metrics. Pinterest reported a 60% increase in interactions after launching its PWA. This guide explains how they work, what sets them apart and when they are the right choice.
How does a PWA work?
A PWA is, at its core, a web application built with HTML, CSS and JavaScript that incorporates three key technologies: Service Workers, Web App Manifest and mandatory HTTPS. These technologies allow the application to behave like a native app without compilation or distribution through app stores.
The Service Worker acts as a proxy between the application and the network. It intercepts requests, manages the cache and enables the app to work offline. The Web App Manifest is a JSON file that defines the name, icon, colours and display mode when the user installs the PWA on their device.
- Service Worker: background script that caches resources and manages network requests
- Web App Manifest: JSON file that configures the installed app’s appearance
- Mandatory HTTPS: secure communication is required to register a Service Worker
- Cache API: stores static and dynamic resources for offline access
Installation and user experience
One of the most distinctive features of PWAs is installability. When a user visits a PWA that meets certain criteria (HTTPS, registered Service Worker, valid Manifest), the browser can automatically offer an installation prompt. Once installed, the PWA appears as an icon on the home screen and runs in its own window without the browser address bar.
This experience is practically indistinguishable from a native app for the average user. The PWA launches in full screen, has its own splash screen, appears in the device’s app list and can receive push notifications (full support on Android, partial on iOS since version 16.4).
Offline support and caching
Offline support is what transforms a website into a real PWA. Through caching strategies like Cache First, Network First or Stale While Revalidate, the Service Worker decides when to serve resources from local cache and when to fetch them from the network.
For content applications (catalogues, news, documentation), the typical strategy is to cache static content on installation and update dynamic data when connectivity is available. Tools like Workbox (by Google) greatly simplify implementing these strategies.
- Cache First: serves from cache and updates in the background (ideal for static assets)
- Network First: tries the network first, falls back to cache on failure (ideal for dynamic content)
- Stale While Revalidate: responds immediately from cache while updating in the background
Advantages over native apps
PWAs eliminate the biggest barrier to entry for native apps: store installation. Users access them directly from a URL and can install the app with a single tap. This drastically reduces friction and increases adoption rates.
Updates are instant (no store review wait times), the footprint is much smaller than a native app (Starbucks: 233 KB for the PWA vs 148 MB for the native app), and search engine indexing is possible because the content remains web-based.
- No store installation needed: shareable URL with immediate access
- Minimal footprint: tens of KB versus hundreds of MB for a native app
- Native SEO: content is indexable by Google and other search engines
- Transparent updates: users always have the latest version
- Single codebase: the same build works on desktop and mobile web
Current limitations
PWAs are not the perfect solution for every scenario. On iOS, Apple has historically been restrictive with PWA capabilities: push notifications have only been available since iOS 16.4, there is no access to Bluetooth or NFC, and Service Workers are purged after two weeks of inactivity.
They are also not ideal for apps that require high graphical performance (3D games), deep hardware access (health, industrial IoT) or complex OS-level integrations. Additionally, not being listed in stores means missing the organic discovery channel that App Store and Google Play provide.
When does a PWA make sense?
PWAs are especially well suited for projects where the web channel is the primary touchpoint and mobile capabilities are needed without the cost of a native app. E-commerce, media, SaaS, product catalogues and internal tools are the most common use cases.
If your product already has a functional website, converting it to a PWA can be a natural step with relatively low investment. If you need store presence, full access to native APIs or GPU-intensive performance, a hybrid or native approach will be more appropriate.
- E-commerce with high mobile traffic that needs a fast, smooth experience
- Content platforms that want to offer offline reading
- Internal corporate tools where publishing to stores makes no sense
- MVPs that need to validate quickly across multiple devices
Tools and frameworks for PWAs
The PWA development ecosystem is mature. Frameworks like Next.js, Nuxt and Angular include PWA support through plugins or built-in configurations. Workbox, maintained by Google, is the de facto standard for managing Service Workers and caching strategies.
For testing, Lighthouse (built into Chrome DevTools) automatically audits PWA compliance. Microsoft’s PWABuilder allows packaging PWAs for the Microsoft Store and Google Play. Tools like Capacitor let you add native APIs to a PWA when needed.
- Workbox: Google’s library for advanced Service Worker and cache management
- Lighthouse: automatic audit of performance, accessibility and PWA compliance
- PWABuilder: packages PWAs for app stores
- Capacitor: adds native capabilities to web apps and PWAs
Key Takeaways
- A PWA is a web app with native capabilities: offline support, installation and push notifications
- Service Workers are the key piece for offline functionality and advanced caching
- Footprint and access friction are much lower than native apps
- iOS still has limitations compared to Android in PWA support
- They are ideal for e-commerce, content, internal tools and MVPs
Want to turn your website into a PWA?
We evaluate your current web application and help you implement PWA technologies that improve your users’ experience. No strings attached.