The app you build in Lovable is published on Lovable's own hosting. If you take your code as a zip and upload it to Ai to App, the same app also opens at your-project.aitoapp.com. You do not need an assistant to prepare the zip: you can upload the zip Lovable gives you as it is.

Get the Code From Lovable

Lovable gives you the code in two ways. Either way, the whole project downloads as a single zip file.

Download Codebase

On paid plans, open the Code tab in Lovable and press the Download codebase button at the very bottom of the file list. The same button is also in the Project settings → Git section.

your-project.zip

Via GitHub

On any plan, connect a repository from the Project settings → Git → GitHub screen; Lovable writes the code to a private repository in your account. Open the repository on GitHub and choose Code → Download ZIP.

your-project-main.zip

If you will update the app often, choose the GitHub route: every change in Lovable is written to the repository, and you download the new zip from there each time. Drop the downloaded zip into the box on the home page; the pre-check runs without an account.

What Happens to the Files in the Zip

A Lovable zip contains some files that cause problems on other hosting services. You do not need to delete or change them:

What You See in the ZipWhat Ai to App Does
bun.lockb or bun.lockInstalls the packages with npm. You do not need to install Bun or delete the file.
.envDoes not store the file. It takes values such as VITE_SUPABASE_URL and VITE_SUPABASE_PUBLISHABLE_KEY that carry the VITE_ prefix into the build; these appear in the dashboard as "From your zip".
src, index.html, vite.config.tsBuilds the project on the server and publishes the resulting site. All addresses are routed to the app so that refreshing a page does not return a 404.
The supabase folderDoes not publish it. Edge Functions and the database keep running on Supabase or Lovable Cloud.
node_modules, .gitDiscards them. If you want a smaller zip, you can remove them beforehand.

We tested this table on November 2, 2026 with real Lovable projects on GitHub. A zip containing bun.lockb and .env went live without any changes.

Which Structure Your Project Uses

Since May 13, 2026, Lovable sets up new projects with a different structure. You can tell which one you have from the package.json file.

React and Vite

Projects created before that date. They are published as a website. In the .env file, the VITE_ values are enough; you do not need to enter anything in the dashboard.

TanStack Start

package.json contains @tanstack/react-start. It is published as a server application. The server code also reads the SUPABASE_URL and SUPABASE_PUBLISHABLE_KEY values; because they have no prefix, enter them separately in the dashboard.

The secret keys used by server functions are kept in Lovable's Secrets section and do not go into the zip. To enter the values, press Environment Variables on the app card on the My Apps page, then press Save and Republish.

Apps With a Sign-In System

In an app where users sign in with email or Google, you need to add the new address to the sign-in settings. If you do not, the link in the confirmation email goes to localhost:3000 and sign-in is not completed.

If You Use Lovable Cloud
Lovable updates the redirect list only for its own publishing addresses. In More → Users → Settings → Advanced → Redirect URLs, add https://your-project.aitoapp.com/, or ask Lovable in the chat to add this address.
If You Connected Your Own Supabase Project
In Supabase, on the Authentication → URL Configuration screen, enter your live address in the Site URL field and add the same address to the Redirect URLs list.
If Google Sign-In Runs on Your Own Google Cloud Project
In Google Cloud, add your live address to the Authorized JavaScript origins field.

Common Problems

The site is live but the page is blank

If the browser console says supabaseUrl is required, the build did not see the Supabase address. If the .env file was excluded from the repository by .gitignore, it is not in the zip downloaded from GitHub either. Enter the VITE_SUPABASE_URL and VITE_SUPABASE_PUBLISHABLE_KEY values in the dashboard and press Save and Republish.

The build stops with a "Could not resolve" error

A file imported in the code is not in the zip. We saw this in a real Lovable project on GitHub: the ./i18n file had never been pushed to the repository. Check whether the file is in Lovable's Code tab; if it is not, ask Lovable to recreate it and download the new zip.

Confirmation or password reset emails go to localhost

Your live address has not been added to the sign-in settings. Follow the step that matches your setup in the Apps With a Sign-In System section above.

A change I made in Lovable does not show up on the live site

Ai to App publishes the copy of your code from the moment you uploaded it. After making a change in Lovable, download the new zip and upload it from the same app's card.

Later Versions

Make the change in Lovable, download the zip again and upload it from the same app's card. Your address stays the same. The version published on Lovable and the one published on Ai to App are separate copies; updating one does not change the other.