What Goes in a PWA Manifest?
The manifest.json file tells browsers how to install and display your web app. Without it, users can't add your app to their home screen and Chrome won't trigger the install prompt.
Minimum for Install Prompt
Chrome requires: name, icons with a 192px AND 512px PNG, start_url, and display set to standalone, fullscreen, or minimal-ui. A service worker is also required but lives outside the manifest.
Maskable vs Any Icons
purpose: "maskable" icons are designed to fill the entire shape on Android adaptive icon circles or squircles. Always include both any and maskable versions of your 192px icon.
theme_color vs background_color
theme_color colors the browser address bar and system UI. background_color is the splash screen color shown while the app loads — set it to match your app's initial background to avoid a flash of color.
Shortcuts (App Shortcuts)
Long-press the app icon on Android to see shortcuts — like deep links to key features. Add up to 4, each with a name and URL. Shortcuts massively improve re-engagement for tools with multiple flows.
id Field (Chrome 96+)
The id field is the canonical identity of your PWA. If you change start_url later, setting id prevents browsers from treating it as a new app. Always set it to your start URL at minimum.
display_override
Allows browsers to try display modes in order. Use window-controls-overlay first for desktop apps with a custom title bar, falling back to standalone on unsupported browsers.