Web App Manifest (manifest.json)
A web app manifest is a JSON file (usually manifest.json or site.webmanifest) linked from the page head that tells browsers how your site should behave when installed to a home screen or launcher. It supplies the app name, the icon set, the theme and background colours, and the display mode. Without one, a browser won't offer to install the site as a PWA.
What the manifest declares
The manifest is a small JSON document linked with <link rel="manifest">. When a user installs the site, the browser reads it to name the app, choose an icon, colour the splash screen, and decide how much browser chrome to show.
It only matters for installability and home-screen behaviour. A normal browser tab never needs it (the favicon link tags cover that), which is why plenty of sites have no manifest at all.
A minimal manifest
{
"name": "My App",
"short_name": "App",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#111111",
"icons": [
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" }
]
}Key fields
| Field | Purpose |
|---|---|
| name / short_name | The full and home-screen labels |
| icons | The install and home-screen icon set |
| display | How much browser UI an installed app shows |
| theme_color | Colours the OS UI around the app |
| background_color | The splash screen colour on launch |
| start_url | The page the installed app opens to |
Web app manifest FAQ
Do I need a web app manifest?
Only if you want the site to be installable as a PWA or to control its home-screen appearance. A plain website with just a favicon doesn't require one.
What's the difference between manifest.json and site.webmanifest?
Nothing but the filename. Both are the same web app manifest; the browser uses whichever file your <link rel="manifest"> points at.
Where do I link the manifest?
In the page head, with <link rel="manifest" href="/site.webmanifest">. One link on every page that should be installable.