PWA installation

On this page 7

PWA installation is the process by which a browser turns a progressive web app into an installed application on the device: it gets a home-screen or launcher icon, opens in its own window without browser controls and appears among the user’s apps. On the mobile web, installation is the step that lets a website behave like an app without passing through an app store.

Installation does not download a separate binary. The browser registers the web app with the operating system using information from the site’s web app manifest, while the code and data continue to come from the web, cached locally by a service worker.

What a site needs to be installable

A browser offers PWA installation only when the site meets its installability criteria. The exact rules differ between browsers, but the core requirements are shared.

RequirementDetailsWhy it is needed
HTTPSServed over a secure connection, localhost exceptedProtects code that runs like an app
Web app manifestLinked JSON file with name and iconsDefines identity and appearance
Name or short_nameLabel shown under the iconIdentifies the app in the launcher
IconsTypically 192 and 512 pixel PNGs, ideally maskableLauncher icon and splash screen
start_urlPage opened at launchDefines the entry point
display modestandalone, fullscreen or minimal-uiOpens without the browser interface
Service workerRegistered script, often with offline supportEnables caching and reliable launches
Core requirements for PWA installation

A service worker is not strictly required for installability in every browser today, but it is what makes an installed app reliable on poor connections. Without it, an installed PWA shows a browser error page when the network is unavailable, which undermines the app-like experience.

How installation differs across platforms

The installation flow depends on the browser and operating system. Chromium-based browsers offer an automatic install prompt, while Safari relies on a manual menu action.

PlatformHow users installResult
Chrome on AndroidInstall prompt or browser menuWebAPK registered as a real Android app
Safari on iOS and iPadOSShare menu, then Add to Home ScreenStandalone home-screen web app
Chrome and Edge on desktopInstall icon in the address barApp window, start menu or dock entry
Safari on macOSFile menu, then Add to DockDock app with its own window
Firefox on AndroidBrowser menu install optionHome-screen shortcut in app mode
PWA installation by platform

On Android, Chrome generates a WebAPK, a small signed package that lets the PWA appear in the app drawer, handle links to its own site and show in system settings like a native app. On iOS, installed web apps gained web push notifications from iOS 16.4, but only after they are added to the home screen.

Controlling the install experience

Developers can shape when and how users are invited to install. In Chromium browsers, the beforeinstallprompt event lets a site suppress the default banner and show its own install button at a better moment.

  • Defer the prompt until the user has shown engagement, such as completing a task or returning a second time.
  • Listen for `appinstalled` to track successful installs and hide install buttons afterward.
  • Detect standalone mode with the display-mode media query to adapt the interface when launched as an app.
  • Provide manual instructions for Safari, where no programmatic prompt exists.

Showing an install prompt on the first visit is the most common mistake. Users who have not yet experienced the site’s value tend to dismiss it, and some browsers then suppress further prompts for a period.

PWA installation is often confused with simple bookmarks and with store-distributed apps. The table clarifies the differences with add to home screen shortcuts and native app installs.

OptionWindowOffline capabilityDistribution
Installed PWAOwn standalone windowYes, through a service workerDirectly from the website
Home-screen bookmarkRegular browser tabNoDirectly from the website
Native app from a storeOwn appYesStore review and download
PWA packaged for a storeOwn app wrapperYesStore listing for a web app
PWA installation and neighboring options

Installed PWAs update without user action: the next time the app launches online, the browser fetches the new service worker and assets. There is no store review, which speeds up releases but also means quality control rests entirely with the site owner.

Limitations and pitfalls

PWA installation brings websites close to apps, but platform support remains uneven. The table lists issues that appear most often in real projects.

IssueCauseRemedy
No install option appearsManifest missing fields or not linkedValidate the manifest in developer tools
Blurry or cropped iconIcon not marked maskable or too smallProvide 512 pixel maskable icons
Blank screen when offlineNo cached start pagePrecache the app shell
Storage cleared on iOSBrowser eviction of unused dataTreat local data as a cache, sync to a server
Wrong page at launchstart_url outside the scopeAlign start_url with the manifest scope
Common PWA installation issues

Understanding it simply

PWA installation lets you keep a website on your phone as if it were an app. You tap install or add it to your home screen, and an icon appears. When you open it, there is no address bar.

Nothing big is downloaded from an app store. The app still comes from the website, but your phone remembers it and can keep parts of it ready to work without a connection.

Applied in practice

A regional public transport operator wants riders to check departures and buy tickets without building separate store apps. The team adds a web app manifest with maskable icons, a standalone display mode and a service worker that caches the timetable and the user’s saved tickets.

Instead of prompting on the first visit, the site shows an install button after a rider buys a second ticket. On Android the PWA installs as a WebAPK, and the site adds short Add to Home Screen instructions for iPhone users. Riders can now show saved tickets in tunnels without a signal, and the operator releases timetable changes the same day without any store review.