Skip to main content
Publishing turns your Lovable project into a live web app by deploying a copy of it to a URL you can share. Lovable hosts the published app for you: no servers to set up, and HTTPS included. The live site keeps showing the version you published, and later changes stay off it until you publish again.

Quick start: publish your first project

Publishing takes two clicks, and the defaults work for most projects:
1

Click Publish

In your project, click the Publish button in the top-right corner of the editor, next to Share. On narrow windows it collapses to an icon without a label.
2

Click Publish again

The dialog suggests a website address ending in lovable.app and runs a quick security scan. Keep the defaults and click Publish, or adjust the address and audience first. When the deploy finishes, Lovable shows your live link.
To push later changes, open the same dialog and click Publish changes. The rest of this page covers publishing from the project chat, every dialog option, republishing and unpublishing, and who can publish. To choose who can visit the live app, see Control who can visit your published app. To change how your site looks in browser tabs, search results, and link previews, see Change your site title, favicon, and social preview. To put the app on your own domain, follow Launch your site on a custom domain.

Publish from the project chat

Instead of opening the Publish dialog, you can ask Lovable in the project chat to publish for you. From Chats you can do the same for any project you can edit. Try prompts such as:
To request a specific Lovable subdomain:
Lovable respects all publish-related workspace settings and permissions. It runs the Quick scan checks on the version it publishes, then schedules the deploy. Lovable asks for approval before publishing unless you have set the publish tool to auto-approve. You can also ask Lovable in the project chat to change who can see your site or connect a custom domain. It applies visibility changes before publishing and asks you to confirm before connecting a domain. To unpublish, use one of the options in the UI. Publishing from the project chat is treated as standard build usage and consumes credits.

Publish step by step

The quick start covers the defaults. This section walks through every option in the dialog: your website address, who can see the website, and a security check.
1

Open the Publish dialog

In your project, click the Publish button in the top-right corner. By default, editors and above can publish projects.When the publish dialog opens, Lovable automatically runs a Quick scan in the background. The scan checks your database access rules, including row-level security (RLS) policy mistakes, your dependencies, and any connectors you have linked. The scan also flags an app that exposes an MCP server without authentication.
2

Set your website address

  • When you publish for the first time, edit the suggested URL directly in the Website URL field, or keep it as is. By default, your app is published to your-app.lovable.app, using your project’s URL subdomain.
    On Business and Enterprise plans, you can publish apps under a workspace-branded pattern instead, such as app-name.workspace-subdomain.lovable.app. See Publish apps with branded URLs to set this up.
  • When published, you can add a custom domain (available on paid plans), or change the subdomain later in Project settings → URL subdomain.
  • On the Enterprise plan, if your workspace has a publishing domain, projects without a custom domain get a suggested address under it.
  • While Lovable is still setting up a custom domain, the dialog shows that domain under the Website URL field. A note says the setup is not finished. Lovable publishes your app to the lovable.app address until the domain shows Active in Project settings → Domains. When the setup stays unfinished, see My custom domain is connected, but it never becomes live.
3

Choose who can see the website

Select the visibility row below the URL to open the audience picker. The row names the current audience, and reads Visible to anyone with the link while the site is public. Depending on your plan, you can choose:
  • Public: anyone with the URL can visit the published app
  • Your organization (Enterprise workspaces in an organization, shown with the organization’s name): members of every workspace in the organization, after logging in
  • Workspace (Business and Enterprise plans): only logged-in workspace members can visit the published app
  • Custom, named Invite only on Free and Pro plans: the people you add by name or invite by email. Business and Enterprise plans can also add the whole workspace and groups, and an Enterprise workspace in an organization can add the organization
The row shows the audience the project already uses, so you can leave it as it is and finish publishing. Audience edits take effect when you select Publish (or Publish changes on a published project), which is also when Lovable sends any invite emails.See Control who can visit your published app for who each option lets in on your plan, for inviting people by email, and for answering access requests.
4

Check the security scan result

The dialog shows the outcome of the Quick scan on a single line: Running quick security scan while it runs, No security issues found when it passes, or the number of findings to review. Critical findings and lower-severity findings each show as a count, for example 2 critical security issues found or 3 security findings. The count includes findings from your latest Deep scan as well. When Lovable has no scan result for the project, because the scan has never run or you do not have permission to run it, the line offers to run the scan instead.
  • If the scan finds issues, click the line to open the Security view, where you can review and fix them. Findings do not block publishing by default, but you should resolve critical issues before making your app available.
  • The line covers the Quick scan. For an in-depth review of your application code, run the Deep scan from the Security view before you publish.
See Security overview and Project security view for scanner details.If your project uses the built-in backend and has unresolved critical findings, Lovable opens the Review security findings dialog when you click Publish. The dialog lists up to three of the findings and how many more there are. From there, you can:
  • Review: open the Security view to check the findings yourself.
  • Publish anyway: publish with the findings unresolved. On a published project, the button reads Update anyway.
  • Try to fix: send every unresolved critical finding to Lovable in one request. Lovable works on the fixes in the project chat and does not publish your project. The request draws from your account’s 10 free fixes.
Publishing controlsWorkspace admins and owners can enforce stricter publishing rules in Workspace settings → Security → Privacy & security → Publishing. Block publishing with critical issues prevents publishing while critical findings are unresolved. When it is enabled and the scan finds critical issues, the publish dialog lists Resolve findings under Before you publish until you resolve them. The Review security findings dialog does not open. New Enterprise workspaces that Lovable creates start with it enabled. See Block publishing with critical issues.
5

Publish your project

When ready, click Publish. The dialog shows a progress bar while Lovable deploys your project. You can close the dialog and keep working. To see the progress again, click Publish in the editor.When the deployment is complete, the dialog confirms Your website is live, or Your website was updated when you publish changes. The dialog also shows Visit site and your site’s address with a copy button. For a public site, Share it opens sharing options.During and after publishing, the dialog also shows a card that previews how your site appears in search results. Click Edit next to your site’s title in the preview to check or change any page’s social and search appearance. The card can also show next steps for your site:
  • Get visitors, on a public site: opens tools that help you bring people to your site.
  • Get custom domain, when your project has no custom domain: opens the domain setup.
The dialog can also show notices before you publish, for example:
  • Fix build errors: your latest changes failed to build, so the dialog shows Try to fix instead of the publish button. Fix the build errors, then publish.
  • Your app is under high load: your built-in database is running low on resources. The notice does not block publishing. Click it to open Review project setup, then click Resolve to have Lovable find the likely cause and suggest query or code changes. See Check your database’s resource health.
After publishing your project, you can continue to iterate on it. To push updates later, open the dialog again and click Publish changes.
After publishing publicly, rerun your SEO review to unlock live checks for indexing, AI-search readiness, and Google Search Console setup.If you connect a custom domain, rerun the review so Lovable can help verify your domain in Google Search Console and submit your sitemap.

Republish to make new changes live

Each time you publish, Lovable deploys a copy of your project to a live URL. The live site keeps showing that version, so when you keep working on a published project, publish again to update it. To deploy new changes, click Publish, then Publish changes. Accepting a draft is not publishing. When you accept a draft, its edits join your project’s unpublished changes, and visitors see them only after you publish the project. A small dot appears on the Publish button when your published project has changes newer than the live version, so you can tell without opening the dialog. The dot clears when you publish. You do not see it when you have nothing new to publish, or when you do not have permission to publish.

Unpublish your project

You can take your live app offline in three ways: After you unpublish:
  • The live URL becomes inaccessible
  • Your project remains in the editor
Lovable can also unpublish a project in a Free workspace that has been inactive for about a year. See Does my published site expire? for the conditions it checks first.
This section is about unpublishing, which takes the live app offline while the project stays in your workspace. Looking for a way to remove the project itself? See Delete a project. The two are different actions.

Who can publish and unpublish projects

By default, editors and above can publish projects on all plans. Unpublishing takes the same permission, so anyone who can publish a project can also take it offline. You do not have to be the person who published it. Workspace admins and owners can publish and unpublish a project they were never invited to:
  • Owners: every project in the workspace, including Restricted ones.
  • Admins: every project except a Restricted one they were not invited to.
On Enterprise plans, admins and owners can set workspace policies that require approval before publishing or block it. See Request approval to publish for what you see when a policy applies. A policy never stops you from taking a live app offline.

Request approval to publish

On Enterprise workspaces, a workspace policy can require an admin or owner to approve before you publish, for example when the app uses a connector or when the app is public. The publish dialog shows Approval needed, and its tooltip says what the policy requires.
1

Request approval

Select Request approval and write a short note for the approvers: what the app is for and why it should go live now. Approvers see the note and a screenshot of the app, so a specific note speeds up the answer. The dialog shows how many workspace admins and owners receive the request.
2

Send the request

Select Send request. The dialog shows Awaiting review. Every admin and owner of the workspace receives a notification in Lovable and by email.
3

Wait for the decision

You get a notification in Lovable when an approver approves or denies the request. After a denial you also get an email with the reason. After an approval you get an email when the app is live.
While the request waits, you can keep editing and previewing the app. To add changes to the request, open it with View and select Update request. To withdraw it, select Cancel request. After an approval, Lovable publishes the app for you, and the dialog shows Approved by with the approver’s name. When publishing is done, the dialog shows Your website is live. If it does not, publish from the dialog yourself. You do not request approval again for each publish. The approval ends when something the policy checks changes, such as a new connector or a change in who can view the app. Under the policy for public apps, the approval also ends when the time set under Approval lasts runs out. That is 14 days unless your workspace changed it. See How approvals work. After a denial, the dialog shows Request denied. Select View to read the approver’s reason. Make the changes they asked for and select Request again. A request that no admin or owner approves or denies within 30 days expires, and the dialog shows Request expired. Nothing is published, and you can request again. If the dialog shows Approval unavailable, approvals are temporarily unavailable, and Lovable cannot send your request. Select Try again after a few minutes. If the dialog shows Publishing blocked instead, your workspace does not allow publishing this way. See Publishing blocked in Troubleshooting.

Trust center

Externally published apps can also have a Trust center: a security page Lovable generates on your app’s own domain, with verifiable facts about how the app is served and built. Enable Trust center in Project settings → Publishing. Lovable evaluates it again every time you publish, so the Trust center always describes the live deployment.

FAQ

Yes. Ask Lovable to publish, deploy, or go live, and it respects every publish-related workspace setting and permission, runs the Quick scan checks on the version it publishes, and schedules the deploy. You can also request a specific Lovable subdomain, such as my-todos.lovable.app. Lovable asks you to approve before it publishes, unless you have set the publish tool to auto-approve.Publishing from the project chat is treated as standard build usage and consumes credits. See Publish from the project chat for the prompts to use and for changing the audience or the domain this way.
Published sites have no fixed expiry date. Only share preview links expire, after 7 days by default. Apps that use the built-in backend or AI features do need available credits to serve requests.Lovable may unpublish a project in a Free workspace that has been inactive for about a year. It checks that all of these are true:
  • The app has had no visits for 12 months or more.
  • The workspace owner has not logged in for 12 months or more.
  • Nobody has edited or published the project for 12 months or more.
  • The project has no connected custom domain.
When Lovable unpublishes a project for inactivity, it emails the workspace owners and admins. Lovable also pauses the project’s built-in backend. The built-in backend is the database, login, and file storage Lovable runs for your app. Lovable does not delete your project, code, or data. The project keeps its lovable.app address.To bring the app back online:
  • Log in and open the project.
  • Click Wake up on the paused project card in More → Database. See Resume a paused project.
  • Publish the project again.
The Publish button sits in the top right of the editor. On narrow windows it collapses to an icon without a label, so look for it next to Share. You can also ask Lovable in the project chat to publish your app.
Not always. Publishing from the publish dialog costs nothing and works even when your credit balance is zero. Asking Lovable to publish in the project chat is treated as standard build usage and consumes credits. Hosting the published app and running its built-in backend consumes run credits as your app is used.
Your published app stays live. Downgrading or canceling does not unpublish your project.
  • Your published app stays restricted. An app you restricted to workspace members or to selected people on a Business plan keeps requiring login after a downgrade. Invited people, the project owner, workspace owners, and people the project is shared with directly keep their access. An app published to your whole workspace stays open to workspace members until you next publish changes from the publish dialog. A Custom audience behaves differently: its workspace and group entries stop granting access after the downgrade. After a downgrade you can still set website access to Public or Invite only.
  • Publishing changes switches the app to Invite only. Publishing to your workspace or to groups requires a Business or Enterprise plan. If you published an app that way before the downgrade, the next publish from the publish dialog switches it to Invite only. The dialog warns you first. Workspace members lose access to the website but keep their access to the project. Other ways of publishing, such as the project chat, do not work until you change the audience in the dialog. To keep the workspace audience, upgrade again before you publish changes. You can unpublish the app on any plan.
  • Connected custom domains keep serving your app. Connecting a new custom domain requires a paid plan, but domains that are already connected continue to work, and you can still disconnect them. Domains bought through Lovable are billed separately from your subscription, so their registration and renewal are not affected by a plan change. See What happens to my custom domain if I downgrade or cancel my plan?
  • Apps that use the built-in backend or AI features still need available credits to serve requests. See Credits and usage.
Publishing deploys a copy of your project as it was at that moment. Later changes do not reach your live app on their own.To publish updates, click Publish and then Publish changes.
Ask Lovable in the project chat. Describe the change, for example a new site title or a new favicon. Name the page when you mean one page rather than the whole site. Metadata edits are treated as standard build usage and consume credits.The change reaches your live site the next time you publish changes. See Change your site title, favicon, and social preview for everything you can change and how to check it.
You can change your project URL subdomain, which forms your lovable.app website address, in Project settings → URL subdomain: change the subdomain and click Update URL subdomain.When you publish for the first time, you can also edit the URL directly in the Website URL field of the publish dialog.Renaming the project does not change the project URL. It changes only the project display name.On paid plans, you can also add a custom domain.
When publishing fails, Lovable shows a Publishing failed message explaining what went wrong and what to do. Select Try again for a temporary issue, or Try to fix to have Lovable investigate an error in your app. See Troubleshooting for each failure type and how to resolve it.If the dialog blocks publishing instead, check these common causes:
  • The dialog shows Fix build errors and replaces the publish button with Try to fix. Your latest changes failed to build, so publishing them would fail the same way. Select Try to fix to have Lovable fix the build errors in the project chat, or fix them yourself, and publish again when the preview builds.
  • The button shows You don’t have permission to publish this project when you hover it: publishing needs editor access or above. See Who can publish and unpublish projects?
  • The dialog shows Approval needed or Publishing blocked. A workspace policy on your Enterprise workspace requires approval before you publish or blocks it. See Request approval to publish.
  • Your workspace admin or owner enabled Block publishing with critical issues in Workspace settings → Security → Privacy & security → Publishing. It prevents publishing while critical findings are unresolved, and the dialog lists Resolve findings under Before you publish. Select Review to open the Security view, fix the findings, and try again.
First check that publishing finished: the dialog confirms Your website is live when the deploy completes, and shows a Publishing failed message when it didn’t. See Troubleshooting for the failure types.Then check that you’re opening the exact published URL. The lovable.app address uses your project’s URL subdomain, which can differ from the project’s display name, and changing the subdomain moves your site to the new address. If you use a custom domain, DNS changes can take time to take effect.
Yes, especially if your site is public. Some SEO checks only run against the live published site, including indexing, AI-search readiness, and Google Search Console setup.After publishing, run an SEO review to check your live site. If you connect a custom domain later, run the review again so Lovable can re-check the new host, verify Google Search Console, and submit your sitemap.
Lovable builds web apps and publishing always deploys to a web URL (for example, yourproject.lovable.app or your custom domain). Lovable has no built-in flow that packages and submits your project to the App Store or Google Play, but you have two options if you want an installable, store-ready experience:
  • Progressive Web App (PWA): make your published app installable so users can “Add to Home Screen” and launch it like a native app, with offline support and a full-screen shell. This is the fastest path and works from any modern mobile browser.
  • Capacitor wrapper: wrap your published URL in a native shell with Capacitor outside of Lovable, then submit that shell to the App Store or Play Store. This is the right path when you need access to native device APIs (camera access, push notifications, or biometrics) or when a store requires a native binary.
Lovable does not generate projects in React Native, a developer framework for building native mobile apps. If you need a React Native app, use Lovable to prototype your app’s screens and flows in the browser, then rebuild them with React Native outside of Lovable.The separate Lovable mobile app is for building projects from your phone. It does not turn your project into a native app for end users.
Yes. Lovable can add an app you built to your team’s Slack workspace as its own Slack app, so teammates can mention it in a channel or send it a direct message. A workspace admin or owner authorizes your Slack workspace once from the Slack connector page, and after publishing you ask Lovable to add the app to Slack. See Add your app to Slack as an agent.

Troubleshooting

When publishing fails, a Publishing failed banner appears in the Publish dialog with a message explaining what went wrong and how to resolve it. When the failure is something Lovable can help with, it already knows the details, so you can ask for help in the project chat.
The publish failed because of a short-lived problem, such as a timeout or a rate limit on a connected service.What to do: Click Try again in the banner. Retries usually succeed.
The publish failed because of something in your app’s code, such as a build error or an edge function that couldn’t be deployed. When the cause is a build error, the banner shows a short summary of the build error instead of this message.What to do: Click Try to fix in the banner. Lovable investigates and applies a fix, and you can publish again when it’s done. You can also describe the issue in the project chat. If the fix request can’t be sent immediately, for example because you reached a rate limit, the banner stays visible so you can try again.
A configuration problem inside your project blocked publishing, for example a file that is too large to include.What to do: Click Try to fix in the banner. Lovable resolves the configuration problem, and you can publish again when it’s done.
The publish failed because of a connection or setting outside your project that Lovable can’t change for you, such as an expired Supabase connection or a connected service that reached its plan limits.What to do: Fix the underlying setting, for example reconnect the integration or update its plan or quota, then click Try again.
A database change you are publishing conflicts with data that already exists in your live app’s database.What to do: Click Ask Lovable in the banner. Because the fix affects real data, Lovable confirms with you before changing anything.
The failure happened on Lovable’s side and is not something you can resolve by changing your app or its configuration.What to do: Try publishing again after a few minutes. If the failure persists, contact support and include your project link.
This is intended. The request closed without a decision because the project or the publishing policy changed after you asked. The info icon next to the status says which one changed. Select Request again to send a new request for the app as it is now. See How approvals work.
This is intended. A workspace policy does not allow this kind of publishing. These policies can block publishing:When the sensitive data findings policy blocks publishing, the dialog lists Sensitive data under Before you publish instead, with a Review button. See Sensitive data scanning.Ask a workspace admin or owner if you think the policy should not apply to your app.
Publish failure messages never include raw logs or output from connected services, so secrets and connection details stay out of the UI. Build errors and conflicting database changes are the exceptions: the banner shows a summary of the build failure or the database’s own error message so you can act on it.