How to Publish a Lovable App on Your Own Custom Domain
You built something in Lovable and it works in the preview. Now you want it at yourdomain.com instead of something.lovable.app. This guide walks through exactly that, using the options and labels from Lovable’s own documentation.
Quick facts before you start
- Publishing works on every Lovable plan. Custom domains need a paid plan.
- You need editor access or higher on the project to publish and connect a domain. Buying a domain through Lovable needs workspace admin or owner.
- DNS changes are usually live within a few hours, but can take up to 72 hours.
Step 1: Check security before you go public
Opening the Publish dialog automatically runs Lovable’s Quick scan. It checks your database access rules (row level security), your npm dependencies and MCP server exposure. There’s also an optional Deep scan that reviews your app code for things like exposed secrets, unsafe input handling and authorization gaps. You run it from the project’s Security view. It usually takes a few minutes. (Lovable: Security overview)
Findings don’t block publishing by default. Fix anything marked Critical before you share the link anyway. Two quick checks of your own:
- API keys: backend secrets (Stripe secret key, AI provider keys) belong in More → Cloud → Secrets, which Lovable injects into Edge Functions and never sends to the browser. Anything prefixed
VITE_ends up in the browser bundle, so only public values likeVITE_SUPABASE_URLshould use that prefix. (Lovable: Secrets) - Database: every table should have row level security on. Our Supabase RLS beginner’s guide explains what that means.
Step 2: Publish to a lovable.app address
- Click Publish in the top-right corner of the editor, next to Share. On narrow windows it collapses to an icon.
- On a first publish you can edit the suggested Website URL (it ends in
lovable.app). - Choose who can see the site. On Free and Pro plans the options are Public and Invite only.
- Read the security scan line. If it shows findings, click it to open the Security view.
- Click Publish. When it finishes, Lovable shows Your website is live.
The thing that trips everyone up: later edits are not pushed live automatically. Each time you want changes on the live site, open the dialog and click Publish changes. A small dot on the Publish button means you have unpublished changes. (Lovable: Publish your project)
Step 3: Pick how you’ll get a domain
You can reach domain setup from Project → Settings → Domains, from Publish dialog → Add domain, or from Workspace settings → Workspace domains. You’ll see two choices:
| Your situation | Choose | What you do |
|---|---|---|
| You don’t own a domain yet | Buy new domain | Pay in checkout. Lovable registers it and sets up DNS and SSL for you |
| You already own one (Namecheap, GoDaddy, Cloudflare…) | Connect existing domain | Add an A record and a TXT record at your DNS provider |
You can set a domain up any time, but it only starts serving your site once the project is published.
Option A: Buy the domain in Lovable
- Click Buy new domain, search, and pick one.
- Review the term length and keep Auto-renew on unless you have a reason not to.
- Enter the ICANN registration details and click Save.
- Click Confirm purchase and finish the Stripe checkout.
Lovable then registers the domain, creates the DNS records, issues an SSL certificate and connects both yourdomain.com and www.yourdomain.com. Watch your inbox. If the registrant email doesn’t match your verified Lovable email, you’ll get a verification link. If you miss the deadline, the domain can be Suspended.
Option B: Connect a domain you already own
- Under Connect existing domain, click Connect domain.
- Enter your domain (
yourdomain.com) or a subdomain (app.yourdomain.com) and click Continue. - Choose Root domain or Subdomain. For a root domain, the Redirect
www.yourdomain.com→yourdomain.comoption is on by default. Leave it on. - Click Connect domain. If you connected a root domain with the www redirect, both entries show Action required. Click Complete setup next to each one.
- Choose automatic setup (Entri logs into your DNS provider and adds the records) or manual setup.
For manual setup, add these at your DNS provider. Copy the values from the Lovable setup window rather than typing them:
| Type | Host / Name | Value |
|---|---|---|
A | @ for the root domain, or the label (e.g. app) for a subdomain | 185.158.133.1 |
TXT | _lovable for the root, or _lovable.app for subdomain app | the lovable_verify=… value Lovable shows you |
Some providers want the host left blank, or set to the full domain name, instead of @. Amazon Route 53 is one example.
Click Done, then wait. The status moves through Verifying → Setting up → Live. (Lovable: Set up a custom domain)
Step 4: Avoid the four classic DNS mistakes
- Old records left behind. If the domain still has
A,AAAAorCNAMErecords from a previous host, your old site may show up. Delete them so only Lovable’sArecord and theTXTrecord remain.AAAA(IPv6) records in particular interfere with setup. - Deleting the wrong records. Leave
MXrecords alone. They run your email. - Cloudflare’s orange cloud. If your DNS is on Cloudflare, set the Lovable records to DNS only (grey cloud) while verifying. Proxying the
Arecord keeps the domain stuck on Verifying. If you really want to stay behind Cloudflare’s proxy, reconnect with Advanced → Uses Cloudflare or similar proxy, which gives you aCNAMEinstead. - CAA records blocking SSL. If the domain sits on Setting up, Stalled or Failed and you have
CAArecords, they must allow one of the certificate authorities Lovable uses (Google Trust Servicespki.goog, Let’s Encryptletsencrypt.orgor SSL.comssl.com). Then click Retry.
Step 5: Primary domain and redirects
The first custom domain you add becomes the primary domain automatically (for domains added after October 29, 2025). Other connected addresses redirect to it once it’s Live. To change it, open the three dots menu next to a Live domain and click Set as primary. Lovable uses 302 (temporary) redirects between connected domains and doesn’t support 301s there. You can’t remove the lovable.app address, but with a primary domain set, visitors get sent to your branded URL.
Step 6: Fix sign-in on the new domain
This is the most common “it worked yesterday” bug after a domain switch. Your auth provider has to know about the new address.
- Lovable Cloud (built-in backend): Lovable adds the custom domain to the auth redirect URLs automatically when it goes Live. If sign-in still fails, add it under More → Cloud → Users → Auth settings → Advanced, or ask Lovable in the project chat.
- Your own Supabase project: in Supabase’s Auth URL Configuration, change the Site URL to
https://yourdomain.comand add it to the Redirect URLs allow list. (Supabase: Redirect URLs) - Google sign-in with your own OAuth credentials: also add the new redirect URL in Google Cloud Console.
Step 7: Test like a stranger
Open the live domain in a private window, on your phone, signed out. Then:
- Sign up with a brand-new email and confirm that the confirmation and password-reset emails link to your domain, not localhost or
lovable.app. - Try visiting a private page while signed out. It should redirect or refuse.
- Open DevTools → Network and look at what your app sends to the browser. You shouldn’t see any secret keys.
Then go through the pre-launch security checklist before you post the link anywhere.
Official sources used: Publish your project · Set up a custom domain · Secrets · Security overview · Supabase Redirect URLs. Checked October 2026.
Want the whole launch path in one place?
The Ship It Kit bundles copy-paste prompts, step-by-step deploy guides and a pre-launch checklist for Lovable, Bolt, Cursor and Replit apps. One-time $19.