Web App Manifest (manifest.json) Validator
Paste your manifest.json to check whether it meets PWA installability requirements. Verifies required fields such as name, start_url, display, and icons, and flags missing maskable icons in a clear checklist.
Tips
- It's best to set both name and short_name. Without short_name, the label under the home screen icon is mechanically truncated from name, which can look awkward.
- Without an icon marked purpose: "maskable", some Android devices may crop the icon unnaturally or show the background color through it. Adding one maskable entry to your existing icons array usually fixes this.
- Include at least one icon of 192x192 or larger in icons, and ideally one of 512x512 or larger too. The former is used for the home screen icon, the latter for the splash screen.
- The PWA installability criteria actually enforced by browsers like Chrome can change over time, so treat this tool's results as guidance rather than a guarantee — it's worth double-checking with Chrome DevTools' Application panel as well.
- A relative start_url (e.g. "/?source=pwa") works fine. Adding a query parameter lets you distinguish PWA launches from regular browser visits in your analytics.
Frequently Asked Questions
Side Note — How the Web App Manifest relates to PWAs
The Web App Manifest is a JSON-based specification from the W3C that declares the information needed to add a website to the home screen and install it like a native app: the app name, icons, display mode at launch, theme color, and more. The term PWA (Progressive Web App) itself was coined by Google engineers in 2015, and manifest.json — together with the Service Worker that handles offline behavior — is one of the two core technical pieces behind it.
If manifest.json isn't configured correctly, the browser won't recognize the site as installable, and it won't show an install prompt (such as Chrome's "Install" banner). Issues like insufficient icon resolution or a mistyped display value are easy to miss because the JSON itself is still syntactically valid — they often go unnoticed until someone actually tries to install the app.
Maskable icons (purpose: "maskable") are a relatively recent addition, introduced around 2019 to support Android's "adaptive icons." Regular icons get masked into a circle, rounded square, or other shape depending on the device, so an icon with no built-in margin can end up with part of its logo cropped off. A maskable icon needs to be designed with a safe zone in mind, and is typically provided as a separate entry from the regular icons.
This tool focuses on static validation of manifest.json alone — it doesn't check other factors that affect actual installability, such as whether a Service Worker is registered or whether the site is served over HTTPS. For final confirmation in production, it's a good idea to also use your browser's developer tools (e.g. the Application panel in Chrome DevTools).