PWA checker: make my site installable
Paste your site and see the “Install app” sheet and home-screen icon your visitors would get, what’s stopping it, and a ready manifest to fix it.
Free from Darnly. Spot a bug in the app you're building? Darnly hands it to Claude Code, Codex or Cursor in one key.Add to Chrome
Try:
Install app
The manifest we made for you
Save it as public/manifest.webmanifest, then add these lines to your page’s <head>:
The new icon paths don’t exist yet. Make them with the app icon generator and the favicon generator, or let your agent make them from your logo.
What we found
More free tools
See all 89 tools- Launch checkerIs your site ready to launch? Title, share preview, favicon, sitemap, 404 and more, with fixes.
- Tech stack finderSee what any website is built with, where it’s hosted and which analytics it uses.
- Privacy policy generatorA plain-English privacy policy and terms for your app, naming the services you use. Not legal advice.
How it works
- Paste your site’s address, or try one of the examples.
- We read the page, its web app manifest, its icons and its own JavaScript, the way a phone does before it offers “Install app”.
- See the install sheet and home-screen icon your visitors would get. Anything missing comes back as a ready
manifest.webmanifestto download and one prompt for Claude Code, Cursor or Codex.
Questions
What makes a site installable?
Chrome on Android and desktop offers “Install app” when the site is on https and has a web app manifest with a name, a 192×192 and a 512×512 icon, a start_url, and a display of standalone, fullscreen or minimal-ui. This checker tests each of those.
Do I still need a service worker?
Chrome no longer requires one before offering to install, but without it your app shows the browser’s offline error when there’s no signal. Tools that wrap a site into a Play Store app, like PWABuilder, also expect one. We look for a navigator.serviceWorker.register call in the page and its own scripts.
Why does my iPhone show a screenshot instead of my icon?
Safari on iPhone ignores the manifest’s icons for the home screen. It uses <link rel="apple-touch-icon">, a 180×180 PNG. Without it, iOS shrinks a screenshot of the page. The favicon generator makes one.
What is a maskable icon?
Android crops app icons into a circle, a squircle or a rounded square depending on the phone. A maskable icon has extra padding around the logo so nothing important is cut off. Without one, Android shrinks your icon onto a white circle.
Where do I put the manifest file?
In the folder your framework serves as-is: public/ for Vite, Next.js, Astro and most others. Then add <link rel="manifest" href="/manifest.webmanifest"> to the page head. The agent prompt tells your coding agent to do both the way your project is set up.
Can I check a site on localhost?
No. We check from the internet, so the site needs a public address. Deploy a preview (Vercel, Netlify and Cloudflare all make one per branch), then paste that.