Guide

How to Host a Lovable, Bolt or v0 App Without Paying for a Server

You built something with an AI app builder and want a link to send people. If the app runs in the browser, you can host it as a static site in a few minutes. Here is how to tell, and what to do.

In short: export the project, run npm install and npm run build, then zip what's inside the build folder (dist or out) and upload the zip. Apps that only talk to services like Supabase or Firebase from the browser work fine. Apps with their own server code need a server host.

First: does your app need a server?

Most AI-built apps are a front end that runs in the visitor's browser. Those can be hosted anywhere as plain files. Check for these signs of server code:

  • A folder called api, server or functions with code that reads secret keys
  • In a Next.js project (v0 exports are usually Next.js): route.ts files, server actions ("use server"), or pages that fetch data with secrets
  • A database password or a secret API key anywhere in the code

Supabase and Firebase are fine: their browser keys are meant to be public, and your data is protected by the rules you set in their dashboards. Secret keys (OpenAI, Stripe secret keys, database passwords) are not. Anyone can read a website's code, so never publish those.

Lovable

  1. Connect the project to GitHub from Lovable, then download the repository as a ZIP from GitHub (Code → Download ZIP) and unzip it.
  2. Install Node.js from nodejs.org if you don't have it. In a terminal inside the folder, run npm install and then npm run build.
  3. A dist folder appears. Open it, select everything inside it and zip those files, so index.html sits at the top of the zip.
  4. Upload the zip to Droply and pick a name.

Bolt

  1. Download the project from Bolt as a ZIP and unzip it.
  2. Run npm install and npm run build in the folder.
  3. Zip the contents of the dist folder (or build, depending on the template) and upload it.

v0 (Next.js)

  1. Download the code from v0 and unzip it.
  2. Open next.config and add output: "export". This tells Next.js to produce plain files.
  3. Run npm install and npm run build. Next.js writes the site to an out folder. If the build complains about server features, the app needs a server host.
  4. Zip the contents of out and upload it.

Pages that break when you refresh

Apps with several screens (like /dashboard or /settings) only have one real file,index.html. On many hosts, refreshing /settingsgives a 404. Droply sends any address without a file extension to your app's index.html, so refreshing works without extra setup.

Updating after more changes

Rebuild, zip the build folder again, and use Update on the project in your dashboard. The link stays the same, so testers and clients always see the latest version.

Common problems

  • Blank white page: you zipped the project folder instead of the build folder. The zip should contain index.html and an assets folder, not src and package.json.
  • Login doesn't work: add your new address (for example https://myapp.droply.page) to the allowed URLs in Supabase or Firebase authentication settings.
  • Images missing: files in public are copied into the build automatically; files referenced from elsewhere may not be. See 7 fixes for sites that break online.

Built folder ready? Give your app a link people can open.

Upload your build →