The short answer
Keep the app on Lovable unless you have a reason to move it. Lovable's
hosting page (read 7 October 2026) says
publishing to a lovable.app URL is free on all plans, HTTPS is automatic, and your plan
does not cap visitors or bandwidth. The one limit it names: on the Free plan, apps created
from 13 May 2026 get 1,000 server requests per project per 10 seconds. Custom domains need
a paid plan.
Move the app when you need something Lovable's setup does not cover, such as your own deployment pipeline, a rule about where the app must run, or a hosting policy at work.
Step 1: find out which kind of Lovable app you have
Lovable builds on two stacks, and they need different hosts. From Lovable's guide to hosting outside Lovable:
| Project | What you deploy | What the host needs |
|---|---|---|
| TanStack Start, created from 13 May 2026 | Server output plus static assets | A host that runs server code: server rendering, server functions, API routes |
| Older React + Vite | The static dist/ folder |
Any static host, with a fallback to index.html for app routes |
To check, open package.json in the Code tab. A TanStack Start project lists
@tanstack/react-start in its dependencies. Or ask Lovable in the project chat.
Step 2: get the code out
- Git sync, on all plans: connect the project to GitHub, GitLab or Bitbucket and Lovable keeps both sides in sync. Use this if the app will keep deploying from the repository.
- Download codebase, on paid plans: a one-time
.zipfrom the code editor (bottom of the file panel) or from Project settings, Git.
Neither copy includes the records in your database or the files in storage. If the app uses Lovable's built-in backend (Cloud), the frontend can stay pointed at it from a new host, or the data moves separately.
Step 3: pick a host
Netlify, Vercel or Cloudflare Pages (either stack). Lovable's docs say these platforms
detect a TanStack Start build automatically. Connect the repository, use the build command
npm run build with Node.js 22, set the output directory to dist on Netlify and
Cloudflare Pages (Vercel needs none), and add the environment variables from the
project's .env file, such as VITE_SUPABASE_URL and VITE_SUPABASE_PUBLISHABLE_KEY.
Then add the new address to your sign-in provider's allowed redirect URLs, or logins break.
For an older React + Vite app, also add a rewrite so every route serves /index.html.
Your own server or a container (either stack). Lovable documents building a TanStack
Start app with the Node.js server preset and running node .output/server/index.mjs, and
copying an older app's dist/ folder to Nginx with a fallback to index.html.
A static host such as Snapy (older React + Vite only). No repository and no build server: you build on your own machine and upload the result.
- Clone or download the project and run
npm ci, thennpm run build. - Zip the contents of
dist, soindex.htmlsits at the top of the zip. - Drop the zip on free HTML hosting, pick a name such as
my-appformy-app.snapy.page, and type the code Snapy emails you. Hosting a page needs a free account with a confirmed email. - Add
https://my-app.snapy.pageto your sign-in provider's redirect URLs if the app has logins.
What Snapy can and cannot do with a Lovable app
- It serves static files only. A TanStack Start app, or anything that needs server functions, cannot run on Snapy.
- No fallback to
index.html. Opening the home page and clicking through works. But someone who opens a deep link such as/dashboarddirectly, or refreshes on it, gets a 404, because nodashboard/index.htmlfile exists. Switch the app to hash routing if deep links matter, or use a host with a rewrite rule. - Limits: a zip of up to 400 files and 150MB unzipped, 20 live links at a time on the
free plan, and every hosted page sent with
noindexuntil you turn on "findable in search" for that link. A custom domain is part of Snapy Pro. - What it adds: every open counted with the country and referrer, an email on the first open, and a password or expiry date on the link, all free.
Who should just use Lovable's own hosting
- Your app was created from 13 May 2026 (TanStack Start) and you have no server of your own.
- You are still building: Lovable's preview and publish flow is built around that.
- The app uses the built-in backend, AI features or connectors, and you do not want to manage environment variables and redirect URLs yourself.
- You want a custom domain with no extra setup and are on a paid Lovable plan anyway.
Snapy makes sense for a small, older Lovable front end you want to hand someone as a link, password-protected or set to expire, and see when it was opened. For other AI-built pages see publishing an AI-made page.
