What is a PWA? A practical guide to Progressive Web Apps
Learn what a Progressive Web App is, how installation and offline support work, which capabilities PWAs can use, and where they differ from native apps.
A Progressive Web App, or PWA, is a web application designed to behave reliably and feel at home on the device where it is running. It is delivered from a web address like any other site, but it can declare an app identity, be installed, launch in its own window and use selected browser and operating-system capabilities.
A PWA is a website that progressively gains app-like presentation and capabilities when the user's browser and device support them.
Why the word “progressive” matters
The most important part of the name is not “app.” It is “progressive.” A PWA should still provide a useful baseline experience when a particular capability is unavailable. A visitor can follow a link and use the application in a browser; a compatible environment may then offer installation, offline behavior, shortcuts, notifications or deeper system integration.
This is progressive enhancement applied to application experiences. The publisher does not ship one identical capability set to every device. Instead, the application detects and uses what the current platform safely exposes. That makes a PWA portable, but it also means that screenshots from one operating system should not be treated as a promise for every other platform.
The three practical building blocks
A secure web origin
PWAs are served over HTTPS. Encryption protects content in transit and gives the browser a trustworthy origin to which permissions, storage and an installed identity can be attached. Local development is the usual exception.
A web app manifest
The manifest is a JSON document that describes how the application wants to appear when installed: its name, icons, start URL, color, scope, orientation and preferred display mode. Modern manifests can also declare shortcuts, screenshots, related native apps and richer window behavior.
Application logic for resilience
A service worker can sit between the application and the network to manage requests, caching, background events and updates. It enables many offline strategies, but simply registering one does not make an application meaningfully usable without a connection.
What can a PWA actually do?
There is no single switch that unlocks a standard bundle of PWA features. Capabilities come from separate web platform APIs, manifest declarations and operating-system integrations. Each one has its own support matrix, security requirements and permission model.
Resilient loading
A service worker can cache an app shell, previously visited pages or task-specific data. Offline support is a product choice, not an automatic PWA feature.
Installation
A compatible browser can add the app to a launcher or home screen and open it in a dedicated window without traditional browser chrome.
Notifications
Some platforms allow web push after explicit permission. Availability and prompting rules differ significantly by browser and operating system.
Linkable by default
The application keeps the web's core distribution model: a URL can be shared, indexed and opened without installing a package first.
Depending on the platform, a web app may also access the camera and microphone, share targets, files, the clipboard, geolocation, Bluetooth devices, serial devices, credentials and background events. These integrations are deliberately gated. They may require a user gesture, explicit permission, an installed context or a browser-specific policy.
What happens when you install one?
Installing a PWA does not usually copy the whole service into a sealed package. The browser records an application identity based on the manifest and creates an operating-system entry with the declared icon and name. When launched, the app loads its web start URL in the requested display mode.
Because the live application remains on its publisher's domain, updates can arrive through the web rather than a store review cycle. That convenience needs careful engineering: cached code, active tabs and a newly deployed version can coexist, so update behavior should be designed and communicated rather than left to chance.
Does PWA mean offline?
No. “Has a service worker” and “works offline” are different claims. A reading app might cache saved articles, a drawing tool might work entirely on the device, while a live collaboration or banking service may need a network connection for its core operation.
A useful technical report should therefore describe evidence, not just display a green offline badge. At PWAs.app we distinguish manifest declarations, static service-worker signals and behavior that can be verified at runtime. The meaningful question is: which tasks still work when the network disappears?
PWA versus a native app
| Consideration | PWA | Native application |
|---|---|---|
| Distribution | Direct link, optional installation, sometimes stores | Usually an app store or managed package |
| Updates | Published on the web, with cache lifecycle to manage | Packaged release downloaded by the device |
| Reach | One web codebase across many browsers and devices | Platform-specific code or a cross-platform framework |
| System access | Broad but dependent on browser and OS support | Usually the deepest platform integration |
| Discovery | Searchable, linkable and usable before installation | Strong store presence, limited web preview |
Neither model is universally better. A PWA is compelling when immediate access, link-based distribution, cross-device reach and one deployment surface matter. Native development remains a stronger fit when a product depends on the newest platform APIs, intensive background execution, advanced graphics or a deeply platform-specific experience. Many teams use both.
The limitations worth knowing
- Browser support is uneven. The same manifest field or API can behave differently across Chromium, Safari and Firefox.
- Installation is not one universal button. The prompt, menu path and eligibility rules vary by browser and device.
- Storage can be cleared. Important user data should not rely on unprotected browser storage alone.
- Permissions still require trust. Installation does not make a service safe, endorsed or appropriate for sensitive data.
- Store wrappers add another layer. Android packages built around a PWA can help distribution, but domain verification and platform policies still matter.
How to recognize a well-made PWA
Start with the experience rather than a badge. The app should have a clear purpose, responsive interface and understandable behavior when connectivity changes. Its manifest should identify the application consistently, include suitable icons and keep installed navigation within a sensible scope. Updates should not silently break a running task.
Technical checks help make those qualities visible. A PWAs.app catalog profile exposes the original URL, manifest location, display mode, icon purposes and detected capabilities. The score is a compact health signal, while the evidence underneath it is what explains how the application is built.
A PWA is not a native app copied into a browser. It is the web using progressive enhancement to become more reliable, installable and integrated—without giving up URLs as its distribution layer.
