LOVABLE · MANIFEST
Lovable app manifest: where it is, and how to add one
Updated September 23, 2026
- Free test
- No account needed
- Result in 10s
- Your code stays yours
What we measured, on real Lovable apps
These are not estimates. Between 10 June and 22 September 2026, people pasted their own URLs into the checker above. Deduplicated by host, keeping the most recent analysis of each and dropping preview links, that is 56 published Lovable sites:
| Measured on the live site | Lovable sites (56) | Everything else (297) |
|---|---|---|
| Has a web app manifest | 20 — 36% | 42% |
| Has a service worker | 3 — 5% | 11% |
| Installable as a PWA | 3 — 5% | 7% |
Two out of three Lovable apps have no manifest at all, and nineteen out of twenty have no service worker. The twenty that do have a manifest were not given it by Lovable's own scaffolding. That is the whole answer to « where is my Lovable app manifest »: it is not anywhere yet.
Why /manifest.json looks like it half-works
This is the part that sends people searching. You read that a manifest lives at /manifest.json, you type it after your app address, and instead of a file or a clean « not found » you get your own app, rendered. It looks like the file exists and the browser is just displaying it oddly.
It does not. Your Lovable app is a single-page app: every unknown path falls back to the same HTML entry point so client-side routing can take over. We requested /manifest.json on live Lovable deployments and got back HTTP 404 with an HTML body — a status that says « nothing here » wrapped in a page your browser happily draws. Any tool reading it sees HTML where JSON belongs, and reports, correctly, that there is no manifest.
What Lovable puts in your head, and what it leaves out
We read the served HTML of a published Lovable app. It ships a Vite module bundle, a stylesheet, your title, a description, and a full set of Open Graph and Twitter tags pointing at an auto-generated preview screenshot. What it does not ship:
- No manifest link tag — nothing tells the browser your app could be installable
- No icon link tag — no favicon in tabs, bookmarks, or the install prompt
- No theme-color — Android draws the system bars in default grey
- No service worker registration — no offline, and no install prompt on Android
None of this is a bug. Lovable builds web apps, and a web app needs none of it to work in a browser. It starts to matter the day you want the thing to install on a phone — or the day a tutorial tells you to « check your manifest » and you find there is nothing to check.
Add one that actually works
- 01 ·
Create public/manifest.json
Lovable builds with Vite, and everything inside public/ is copied to the site root as-is — so public/manifest.json is served at /manifest.json. Anywhere under src/ and it gets bundled under a hashed name, or ignored.
- 02 ·
Fill in real values, not the defaults
Five things decide whether the app is installable: name, start_url, display set to standalone, an icons array, and a 512x512 PNG among them. Use your real app name — we found live Lovable apps serving a manifest that still reads "name": "My App", which is the name that would reach the store.
- 03 ·
Link it from index.html — this is the step that gets missed
Add <link rel="manifest" href="/manifest.json"> inside the head. A manifest with no link tag is a file nobody reads. If you asked the assistant to « add a PWA manifest » and it still does not work, check this first: the file is usually there, and the tag usually is not.
- 04 ·
Put two real PNGs in the same folder
192x192 and 512x512, in public/, referenced by the paths they are actually served at. Give the 512 a maskable purpose so Android can crop it into its adaptive icon shape instead of dropping your square into a white circle.
- 05 ·
Publish, then check it from the outside
Manifests are read from the deployed site, not the editor preview. Publish, then paste the live URL into the checker at the top of this page: it fetches the page the way a browser does, follows the link tag, and reports what is actually reachable.
The four mistakes we see most
- The filename and the link disagree. A file called manifest.webmanifest and a tag pointing at /manifest.json. Both names are valid; they just have to match. This 404s silently — the app keeps working, it simply never becomes installable.
- start_url pinned to the preview address. If it reads https://preview--yourapp.lovable.app/, the installed app opens the preview forever. Use "/" — relative, so it follows your app wherever it lives, including onto a custom domain.
- Icons too small, or SVG. A 512x512 raster PNG is not optional for Android installability, and an SVG will not satisfy it. Our checker reports the 512 separately for exactly this reason.
- Expecting offline from a manifest. A manifest describes the app; a service worker is what caches it. Ship only a manifest and Chrome on Android will still refuse the install prompt.
Do you actually need one? Often, no
It depends entirely on what you are trying to reach.
| What you want | Manifest needed? | Also needed |
|---|---|---|
| Add to home screen on a phone | Yes | Service worker + 512x512 icon |
| Install from the Chrome address bar | Yes | Service worker with a fetch handler |
| A Trusted Web Activity on Google Play | Yes | Digital Asset Links on your domain |
| A signed Android app on Google Play | No | Just a published HTTPS URL |
| Windows, macOS or Linux installers | No | Just a published HTTPS URL |
The last two rows are why 95% of Lovable apps having no service worker does not stop them reaching a store. Publishing a Lovable app to Google Play through SaasToStore uses a Capacitor build when there is no service worker: it wraps your live URL in a real native shell, signs the Android App Bundle, and keeps the keystore so your updates are never rejected for a key mismatch. The manifest is still worth adding — it makes your app installable straight from the browser, which is free reach. It is simply not the thing standing between you and the Play Store.
Frequently asked questions
Where is the manifest in a Lovable app?+
There usually is not one. Lovable builds a Vite + React app and serves it from a CDN, but it does not generate a web app manifest for you and does not add a <link rel="manifest"> tag to your page. Of 56 published Lovable sites we ran through our PWA checker between June and September 2026, 20 had a manifest. Lovable does not put one there by default, so on those twenty it had been added deliberately.
Why does /manifest.json show my app instead of a JSON file?+
Because your app is a single-page app. Any unknown path falls through to the same HTML entry point, so the browser renders your app at /manifest.json rather than showing a file or a clean error. It looks like something is there. Nothing is. A tool reading that response gets HTML where it expected JSON, and correctly reports no manifest.
Where do I put the manifest file in a Lovable project?+
In public/manifest.json. Lovable builds with Vite, and everything inside public/ is copied to the site root untouched, so public/manifest.json is served at /manifest.json. Do not put it under src/ — Vite will either bundle it under a hashed filename or ignore it entirely.
I asked Lovable to add a manifest and it still does not work. Why?+
The most common reason by far is the missing link tag. The file gets created, but index.html never gets <link rel="manifest" href="/manifest.json"> added to its head, so no browser ever looks for it. The second most common reason is icons: a manifest with no 512x512 PNG will not make an app installable, and Lovable will not generate those images for you.
Do I need a manifest to publish my Lovable app to Google Play?+
No. A manifest is required for a Trusted Web Activity, the lightest Android build. But SaasToStore falls back to a Capacitor build, which wraps any HTTPS URL into a native Android shell with no manifest and no service worker. That is why the 95% of Lovable apps with no service worker still build and publish fine.
Does a manifest alone make my app installable?+
Not on Android or desktop Chrome. Installability needs HTTPS (Lovable gives you that), a manifest with a name, a start_url, display set to standalone and a 512x512 icon, plus a registered service worker with a fetch handler. Three of the 56 Lovable sites we checked met all of it — about 5%.
manifest.json or manifest.webmanifest — which one?+
Either works, as long as the href in your link tag matches the filename exactly. .webmanifest is the name in the spec and gets the correct application/manifest+json type from most hosts; .json is more common in practice. What breaks apps is a mismatch: a file named manifest.webmanifest and a link pointing at /manifest.json is a 404 nobody notices.
Related guides
Skip the manifest entirely?
Google Play does not need one. Paste your Lovable URL and get a signed Android App Bundle back.
Build my app