Glossary

Definition

categories (manifest field)

Short definition

categories is an optional manifest array, for example "categories": ["shopping", "business"], drawn loosely from a W3C-maintained list of common app-store category names. It has no effect on install eligibility or on-page behaviour and is purely metadata consumed by platforms that list PWAs alongside native apps.

Reviewed July 24, 2026

The W3C keeps a non-normative reference list of expected category strings, but the field accepts any string — unknown values are simply ignored by consumers rather than causing a manifest validation failure.

Platforms such as Microsoft Store use categories when a PWA is submitted for listing there via PWABuilder, helping the store place the app in the right browse section.

Because categories carries no runtime behaviour, omitting it never affects installability or Lighthouse's PWA checks — it is purely a discoverability aid for third-party app catalogues.

Keep the list short and accurate; padding it with unrelated categories to appear in more browse sections is against most app-store submission guidelines and can get a listing rejected.

Related terms
Web App Manifest
A Web App Manifest is a JSON file (usually manifest.webmanifest) that declares your app's name, icons, start URL, theme colour and display mode. The browser reads it to render the install prompt and the home-screen icon.
Related applications
related_applications is a manifest array such as [{"platform": "play", "id": "com.example.app"}] listing native app store equivalents of the PWA. The companion boolean field prefer_related_applications, when true, tells Chromium to prefer directing the user to install the native app instead of showing the web install prompt.
name (manifest field)
name is a required-in-practice string field in the Web App Manifest that gives the full, human-readable title of the app. Browsers show it on the install dialog, the splash screen and in the OS app switcher. It can be up to 45 characters before some UIs truncate it.
protocol_handlers (manifest field)
protocol_handlers is a manifest array such as [{"protocol": "web+music", "url": "/play?track=%s"}] that registers the installed app as a handler for a URL scheme. Clicking a web+music: link anywhere in the OS, after the user confirms a one-time permission prompt, opens the app at the given URL with %s replaced by the encoded link.
share_target (manifest field)
share_target is a manifest object, for example {"action": "/share", "method": "POST", "enctype": "multipart/form-data", "params": {"title": "title", "text": "text", "url": "url", "files": [{"name": "media", "accept": ["image/*"]}]}}, that adds the installed PWA as a destination in the operating system's native share sheet.
install event (service worker)
The install event fires on the ServiceWorkerGlobalScope the first time a browser registers a new or updated service worker script. Handlers typically call event.waitUntil(caches.open(...).then(cache => cache.addAll([...]))) to pre-cache the app shell before the worker is allowed to move to the "installed" state.