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

Most browsers' PWA installability criteria require either name or short_name, a start_url, a display value (one of fullscreen, standalone, minimal-ui, or browser), and an icons array containing at least one icon of 192x192 or larger. Missing even one of these can prevent the install prompt from appearing.

It's an icon entry marked with purpose: "maskable". Android devices mask home screen icons into shapes like circles or rounded squares, and a regular icon image masked this way can end up with its edges cropped. A maskable icon is designed with extra margin (a safe zone) in the center so it still looks correct no matter what shape it's masked into.

Use a width and height separated by an x, like "192x192". If a single icon file works at any size, such as an SVG, you can specify "any" instead. You can also list multiple sizes for one entry by separating them with spaces, like "192x192 512x512".

The W3C spec defines four values: fullscreen (uses the entire screen), standalone (hides the browser UI for an app-like look), minimal-ui (shows a minimal browser UI), and browser (opens as a regular browser tab). standalone is the most common choice for a PWA-like appearance.

This tool only performs a static check of whether manifest.json meets the spec. Actual installability also depends on other factors, such as serving the site over HTTPS and registering a Service Worker correctly, so it's best to confirm the final behavior with your browser's developer tools or on a real device as well.
ツールくん

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).