← Blog · Published Oct 18, 2026 · Updated Oct 19, 2026 · by the Vibefixr team

Lovable app shows a blank white screen after deploy? Here’s why

You built the app in Lovable, it works in the preview, and then you deploy it to Vercel, Netlify or your own server and get… nothing. A white page. No error message, no layout, just white.

The good news: a blank screen is almost never a mystery. The HTML loaded fine. What failed is the JavaScript that is supposed to draw your app, and it crashed before React could render anything, including your error screens. The cause is written down in one place: the browser console.

Step 1: read the console, not the page

Open the deployed site, press F12 (or right-click → Inspect), switch to the Console tab and reload. The first red line is your clue. The most common ones:

What the console saysWhat it usually means
supabaseUrl is required. or Invalid URLEnvironment variables missing at build time (cause 1)
404 for /assets/index-….jsWrong publish directory or wrong base path (causes 2 and 3)
Expected a JavaScript module script but the server responded with a MIME type of "text/html"The server returned an HTML page where a JS file should be: wrong path, or a stale tab after a redeploy (cause 3)
Nothing in the console, but the server returns HTML with no app in itA newer Lovable project that needs a server, deployed as static files (cause 5)

Cause 1: environment variables that never made it into the build

This is the big one. Most Lovable apps talk to Supabase through a client file (often src/integrations/supabase/client.ts) that reads values like VITE_SUPABASE_URL and VITE_SUPABASE_PUBLISHABLE_KEY (older projects use VITE_SUPABASE_ANON_KEY). Inside Lovable those are injected for you. Your .env file is not in Git, so when Vercel or Netlify builds the repo, those values are simply undefined, and creating the Supabase client throws while the bundle is still loading.

Two details trip people up:

Only ever put the publishable/anon key in a VITE_ variable. Anything with that prefix ends up in public JavaScript. A service_role or sb_secret_ key there is a data breach, not a config fix. See what to do if that already happened.

Cause 2: the host is serving the wrong folder

Classic Lovable projects are Vite + React apps. npm run build writes the finished site to dist/. If your host publishes the repo root, or a folder called build (the Create React App convention), it serves an index.html that points at files that don’t exist. On Netlify, check Build command = npm run build and Publish directory = dist. Vercel usually detects Vite on its own.

Cause 3: asset paths that point to the wrong place

If someone (or an AI prompt) set base in vite.config.ts, for example to deploy under a sub-path like GitHub Pages, every script URL gets that prefix. Deploy the same build to the root of a domain and the scripts 404. Unless you really host under a sub-path, base should be / or absent.

The “MIME type text/html” error has a second, harmless-looking cause: a tab that was open before you redeployed. It asks for an old file name (index-abc123.js) that no longer exists, and your SPA fallback answers with index.html. A hard refresh fixes it for you. Your users hit the same thing, so it’s worth handling in the app.

Not sure which of these is your problem? The free health check looks at your live app in seconds, or request a free scan and we’ll tell you what we find.

Cause 4: the home page works, but other pages are blank or 404

If / loads but refreshing /dashboard fails, the host doesn’t know that every route should be answered by index.html. That’s a routing rule, not a code bug. We cover it in detail in 404 on refresh after deploy; the same fix applies to Lovable.

Cause 5: a newer Lovable project deployed like an old one

According to Lovable’s own hosting docs, projects created from May 13, 2026 use TanStack Start instead of a plain Vite SPA. Those apps have a server part (server rendering, server functions, API routes), so uploading only static files to a CDN or object storage leaves you with a page that can’t do its job. Check package.json: if it lists @tanstack/react-start, you need a host that runs the server output (Lovable names Vercel, Netlify and Cloudflare Pages as auto-detected), plus the server-side variables such as SUPABASE_URL and SUPABASE_PUBLISHABLE_KEY.

It loads now, but login bounces you back

Not a blank screen, but it usually shows up right after. Supabase Auth only redirects to URLs it knows about. Add your new production domain to the Site URL and Redirect URLs in Supabase, and in Google/GitHub OAuth settings if you use social login.

A quick checklist

If you’ve been through all of that and the page is still white, the crash is somewhere in your own code, and the console stack trace tells you which file. That’s the point where a second pair of eyes saves hours.

Stuck? Get a free scan of your app

Send us your repo and a one-line description of what’s broken. We’ll email you the top issues we find and why they matter. If you’d rather not touch it yourself, the $199 Fix covers up to 5 issues, delivered as a pull request with tests — not fixed, full refund.

Get a free scanRun the free health check

FAQ

Why is my Lovable app a blank white page after deploy?

The HTML loaded, but the JavaScript that draws your app crashed before React could render anything. The first red line in the browser console tells you why.

I added the environment variables on Vercel or Netlify. Why is it still blank?

Vite bakes VITE_ variables in at build time, so nothing changes until you trigger a fresh build. The names also have to match exactly what the code reads.

What does “MIME type text/html” in the console mean?

The server returned an HTML page where a JavaScript file should be. Usually that is a wrong publish folder or base path, or a tab that was open before you redeployed.

Can I put the Supabase service_role key in a VITE_ variable to make it work?

No. Anything with the VITE_ prefix ends up in public JavaScript. Only the publishable (anon) key belongs there.

Related guides

Launching soon? Run through our launch checklist for AI-built apps: 14 checks, each linked to the full guide.

Information here is checked against official docs at the time of writing. Platforms change, so verify against the linked sources.