Glossary

Definition

start_url (manifest field)

Short definition

start_url is the manifest field that sets the exact URL loaded when a user taps the installed app icon. It is resolved relative to the manifest URL, so "start_url": "/?source=pwa" launches the origin root with a query string you can use to distinguish installed-app sessions from browser-tab sessions in analytics.

Reviewed July 20, 2026

Adding a query parameter such as ?utm_source=pwa_home_screen to start_url is the standard way to measure how much traffic comes from the installed icon versus the open web, since no other signal survives a fresh launch.

start_url must be same-origin as the manifest, or within scope; the Chromium install criteria explicitly reject a start_url outside the declared scope.

If start_url is omitted, the browser defaults to the URL of the document that linked the manifest, which is rarely what you want for a multi-page site.

Because the URL is cached by the OS launcher, changing start_url after users have already installed the app will not move their existing shortcuts — only new installs pick up the change.

Related terms
scope (manifest field)
scope is a manifest field, for example "scope": "/app/", that defines the URL prefix the browser considers part of the installed app. Navigating within scope keeps the app in standalone mode; navigating outside it (such as to an external payment page) typically opens a normal browser tab or an in-app browser bar.
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.
appinstalled event
appinstalled is a window event, listened for with window.addEventListener("appinstalled", () => { ... }), that fires after the browser has finished installing the PWA — regardless of whether the install was triggered via the native beforeinstallprompt flow or a browser menu item. It fires exactly once per successful install and carries no event detail beyond the fact that installation completed.
display (manifest field)
display is the manifest field that chooses the browser chrome level for the installed app. Accepted values are fullscreen, standalone, minimal-ui and browser. "display": "standalone" is the most common choice because it hides the address bar and tab strip while keeping the OS status bar visible.
display_override (manifest field)
display_override is a manifest array, for example "display_override": ["window-controls-overlay", "standalone"], that lets a site opt into newer or experimental display modes such as window-controls-overlay on desktop, while still declaring a safe fallback. The browser walks the list in order and uses the first mode it understands.
theme_color (manifest field)
theme_color is a manifest field, e.g. "theme_color": "#0f172a", that tints the Android status bar, the task-switcher card header and, on some platforms, the browser toolbar while the site is open. It accepts any valid CSS colour value.