Skip to content
Tezmy Tools

PWA Manifest Checker

Paste your manifest.json and see whether browsers will offer to install your web app

Meets the basic install rules. 0 errors, 5 warnings, 7 passed.

Runs in your browser. Nothing is uploaded.

About the PWA Manifest Checker

PWA Manifest Checker reads a web app manifest and tells you whether it meets the basic rules browsers use to offer an install button. It checks the name, start_url, display mode, the 192 and 512 pixel icons, a maskable icon, theme and background colours, id, scope, orientation, shortcuts and screenshots, and marks each result as passed, warning or error. The manifest is checked in your browser and is not uploaded. It reads the file only, so it cannot test HTTPS or your service worker.

Updated October 2026

How to use the PWA Manifest Checker

  1. 1Open your manifest.json (or .webmanifest) file and copy its contents.
  2. 2Paste it into the box. The sample shows a manifest that passes.
  3. 3Read the verdict at the top, then fix every error.
  4. 4Work through the warnings that matter for your app.
  5. 5Paste the updated file again until it reports no errors.

The parts of a manifest

A manifest is a small JSON file that describes your web app to the browser. The required pieces are the name, the page that opens when the app starts, how the window should look and the icons. Optional parts add polish: colours for the browser bar and splash screen, shortcuts in the app menu, screenshots in the install dialog and an id that makes the app identity stable.

  • name and short_name: the full title and the label under the icon
  • start_url and scope: where the app opens and where it stays
  • display: standalone gives an app-like window
  • icons: 192 and 512 pixel PNGs, plus a maskable one

Icons that work everywhere

Provide a square 192×192 icon and a square 512×512 icon, both PNG, and list their sizes and type so the browser does not have to download them to find out. Add a third 512×512 icon with purpose maskable, designed so the important part of the picture sits inside a circle in the centre. Using any as well as maskable in one entry is allowed but gives worse results than separate icons.

Colours and the install experience

theme_color paints the address bar or title bar when the app is open, and background_color fills the splash screen while it loads. Pick colours that match your icon. Use hex values such as #1a73e8. Adding screenshots, a description and a lang lets Chrome show a richer install dialog on Android and desktop.

Fixing JSON mistakes

Manifests are strict JSON. Keys and text must be in double quotes, items need commas between them but not after the last one, and comments are not allowed. If the checker reports a syntax error, look near the place it describes. A JSON formatter helps to spot the problem quickly.

Beyond the manifest

After the manifest passes, serve the site over HTTPS, register a service worker that handles offline requests, and test in Chrome DevTools under Application, then Manifest. Related tools: the JSON Formatter tidies the file, the Favicon Generator makes icon sizes from one image, and the Meta Tag Generator writes the theme-color and viewport tags for your page head.

Features

  • Says whether the manifest meets the basic install rules
  • Checks 192×192 and 512×512 icons and a maskable icon
  • Validates display, orientation, colours, scope and start_url
  • Reports JSON syntax errors in plain words
  • Warnings for id, description, lang and screenshots
  • Copy or download the report

Frequently asked questions

What does a browser need to offer Install?

A manifest with a name, a start_url, a display of standalone, fullscreen or minimal-ui, and icons of 192 and 512 pixels; the page must also be served over HTTPS and, in some browsers, have a service worker. This checker covers the manifest part.

Does it test my service worker or HTTPS?

No. It only reads the text you paste. Use Lighthouse in Chrome DevTools or the Application panel to check the service worker and secure connection for your live site.

What is a maskable icon?

An icon designed with a safe area in the middle so Android can cut it into a circle, square or other shape without clipping the artwork. Mark it with purpose "maskable"; without one, a plain icon may be shrunk onto a white background.

Why does it say short_name is too long?

Home screens show only about 12 characters under an icon. A longer short_name gets cut off with dots. Use name for the full title.

What is the id field for?

id gives the app a stable identity. Without it, the identity comes from start_url, so changing the start page can make browsers treat it as a different app.

My start_url is outside scope. What happens?

The app would open as a normal browser tab, because browsers only treat pages within the scope as part of the app. Move start_url inside the scope or widen the scope.

Where is my manifest file?

Look in the page's head for a link with rel="manifest". It usually points to /manifest.json or /site.webmanifest. Open that address and copy the text.

Is my manifest uploaded?

No. It is read in your browser and nothing is sent anywhere.

Related tools