$ curl -s https://yourapp.com/ | grep -o 'src="[^"]*.js"'White screen after deploy, no error anywhere
Nothing failed on the server, which is why the server log has nothing to say.
Seen in apps built with Lovable, Bolt, Replit.
Vite projects set a `base` in their config, so the other 76 assume they live at the root of a domain.
100 public Lovable repositories, read 2026-08-03 · method and scripts in the measurements
What is actually happening
The HTML arrives, so the server is working. The HTML asks for a JavaScript file at a particular path. If that path is wrong, nothing runs and nothing paints — a white page with a clean server log.
The usual reason is a subdirectory. A build made for the root of a domain writes absolute paths, and serving it from `/app/` makes every one of them point at nothing.
Confirm it in one command
curl -s https://yourapp.com/ | grep -o 'src="[^"]*.js"'
Take that path, request it directly, and see whether it returns the script or something else.
Fixing it yourself
- Open the browser console and look at the network tab rather than the console tab. A red line on a `.js` file is the whole diagnosis.
- If you are serving from a subdirectory, set `base` in the Vite config to that subdirectory and build again.
Where it stops being a small job
When the paths are right and the file loads but the page is still blank — then something is failing during startup, and the browser console will usually say so in a way that needs reading rather than guessing.
If the file loads and the page is still blank, the answer is in the console rather than in the network tab, and it usually needs reading rather than guessing.
Send us the app