Skip to content

Web app manifest: the minimal one that works

Published Updated

The web app manifest is a JSON file that tells the browser how your site should behave when it is installed as an app. It declares the app’s identity (name, icons, id), its installation boundary (scope), how it renders once launched (display), and OS integration points such as shortcuts and share_target.

{
"name": "Weather Reports",
"short_name": "Weather",
"start_url": "/",
"display": "standalone",
"icons": [
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" }
]
}

Link it from every page you want installable:

<link rel="manifest" href="/manifest.webmanifest" />

The specification defines the manifest as an application manifest linked with rel="manifest"; every member below is optional in the format itself. What a given browser requires before it will offer installation is a separate, browser-specific question — see Install prompt rather than assuming the spec settles it.

  • A start_url outside scope — the app launches, then immediately leaves its own window.
  • Serving the manifest with the wrong content type, or from a path the page cannot reach.
  • Changing start_url without setting id, which some browsers treat as a different app.
  • Assuming a member is honoured everywhere; support varies per member and per platform.

Each linked page below carries its own browser-support table and cited sources.

  • Install prompt — what browsers require before offering installation.
  • Service Worker — the other half of an installable, offline-capable app.

← Back to the Reference overview.