We read 386 PWA manifests. One was complete.

Short answer

We fetched the web app manifest of all 386 apps in the discovered catalogue: 373 responded. Of those, 41% declare a maskable icon, 11% declare an id, 8% declare shortcuts, and only 11% ship any screenshot at all. Exactly one manifest in 386 filled in every field we checked. The median manifest declares 3 icons, tops out at 512px, has no screenshots, no id, no shortcuts, and no language — which is enough to install, and not enough to look like software anyone maintains.

What we counted

For every app in the catalogue we requested the manifest the browser would use, parsed it, and recorded what it declares. 373 of 386 responded; the other 13 point at a file that no longer exists, which is itself a finding — those apps still install, using whatever the browser can infer.

The results, on the 373 that answered: **158 declare a maskable icon** (41%), **44 declare an id** (11%), **32 declare shortcuts** (8%), **42 ship at least one screenshot** (11%), and **105 declare a language** (28%). One manifest satisfied every check.

What each missing field actually costs

**No maskable icon** — Android crops your icon into whatever shape the launcher uses. Without a maskable variant the system pads it into a white circle, which is why so many installed web apps look like a sticker on a plate next to native apps. 215 apps here ship that.

**No id** — the manifest id is what lets a browser recognise your app across a URL change. Without it, moving your start URL can register as a different app: the user ends up with two icons, or an update that never reaches the installed copy.

**No screenshots** — Android's install dialog shows a richer card when screenshots are present. Without them the user gets a bare name and icon at the exact moment they decide whether to install. 331 of 373 give them nothing.

**No shortcuts** — long-pressing the icon offers nothing. Cheap to add, invisible when absent, and the difference between an icon and an app that behaves like one.

Why almost nobody fills these in

Because none of them block anything. The install prompt appears with three icons and a name; every field above is optional, and no tool refuses to ship without them. The consequence arrives later and somewhere else — in a launcher, in an install dialog, on a device the developer does not own.

It is the same shape as the offline failure we measured separately: 243 of 578 apps keep working with the network off, and the ones that fail look perfectly healthy to the person who built them. Optional fields and untested states have the same property — nothing tells you.

Check yours

We built a checker that does to your app what we did to these 386: opens it in a real browser, waits for the service worker to activate, cuts the network, reloads, and reports what is still served — plus what your manifest declares and what it leaves out.

It takes a URL and about thirty seconds. If your app is in the 41% with a maskable icon and the 42% that survive offline, you will know. If it is not, you will know which field to add first, which is the more useful outcome.

Frequently asked

Does a missing manifest field stop my PWA from installing?

No. A name, a start URL and one icon are enough for most browsers to offer installation. Everything measured here is optional — which is exactly why it goes missing. The cost is not a failed install; it is a worse-looking icon, a duplicated app after a URL change, and a bare install dialog at the moment of decision.

What is a maskable icon and why does it matter so much?

It is an icon drawn with a safe zone, so a launcher can crop it into a circle, a squircle or a rounded square without cutting off content. Without one, Android pads your icon inside a white shape. 59% of the manifests here have no maskable variant, which is the single most visible difference between an installed web app and a native one.

Is one complete manifest out of 386 really representative?

It is representative of this catalogue, which skews toward independently built apps found on Reddit, GitHub and Product Hunt. A corpus of large commercial PWAs would score better. What the number shows is the state of the format where most of it is actually written — by one developer, shipping something that works.

Apps mentioned

Keep reading

One email a month. Only the apps worth your time.

What they do, what they don't, and whether they actually work offline — we check. No roundup of everything we listed, no affiliate links.

Double opt-in — nothing is sent until you confirm. Unsubscribe any time.
Looking for more apps that work offline?

592+ Progressive Web Apps, each checked by hand — installable from your browser, no app store.

Browse the directory →