A project on a lovable.app subdomain looks like a demo. The same project on your own domain looks like a company. Connecting the two takes about ten minutes of work and then a wait that you cannot speed up, which is exactly why people panic halfway through and change settings that were already correct.
Short answer: publish the project first, add the domain in project settings, copy the records Lovable shows you into your DNS provider, then leave it alone while DNS propagates and the SSL certificate is issued. Most failures are impatience, a duplicate old record, or proxying turned on at the registrar.
Before you start
You need three things. A published project, since an unpublished project has nothing to point at. A domain you control, bought from a registrar such as Namecheap, GoDaddy, Cloudflare or Squarespace Domains. And access to that registrar's DNS panel, which is sometimes called DNS management, advanced DNS, or nameserver settings.
A note on plans. Custom domains are a paid feature on most builders, Lovable included. Check the current plan details before you buy a domain for a project you intend to keep on the free tier. The pricing breakdown covers what each tier includes.
Step 1: publish the project
Hit Publish in the editor. This builds the production version of your app and puts it on a lovable.app address. Open that address in a private window and click through the whole app before you touch DNS. Anything broken on the published version will still be broken on your domain, and debugging two problems at once is miserable.
Step 2: add the domain inside the project
In Lovable, open your project's domain settings and follow the connection flow for the exact domain you want to use. You will be shown the records for that domain or subdomain. Add the root domain and the www version together if the panel allows it, because visitors will type both and search engines will find both.
Step 3: create the DNS records
For standard manual setup, copy the A record and verification TXT record shown by Lovable into your DNS provider. Other connection modes, such as proxy mode, may use different records, so follow your project's instructions rather than a generic DNS recipe. The official steps live in the Lovable custom domain docs.
Always copy the values from your own project settings rather than from a blog post, including this one. Hosting targets change, and a stale IP address copied from somewhere else is the most annoying possible way to lose an afternoon.
Set TTL to automatic or to the lowest value offered while you are setting things up. A low TTL means a mistake gets corrected faster.
Step 4: wait properly
DNS changes propagate. It can take up to 72 hours, although many connections complete sooner. After DNS resolves, a certificate has to be issued for HTTPS, which usually takes a few more minutes. During that window you may see a security warning in the browser. That is normal and it fixes itself.
Check progress with a DNS lookup tool rather than by reloading your own browser, because your browser and your operating system both cache DNS aggressively. If a global lookup tool shows the right value and your machine does not, the problem is your cache, not your setup.
The four errors that cause most failures
1. Old records still pointing somewhere else
If the domain was ever parked, used for a previous site, or set up with a website builder, there is probably an existing A record or CNAME for the same host. Two conflicting records for @ or www will produce random results depending on which one resolves. Delete the old ones before adding the new ones. This is the number one cause of a domain that works for you and not for a friend on another network.
2. Proxy or CDN turned on at the registrar
Cloudflare users hit this constantly. If the orange cloud is on, Cloudflare terminates the connection itself, which breaks certificate issuance and often produces a redirect loop or a 525 error. Set the record to DNS only while you connect the domain. You can revisit proxying later once the certificate exists, with SSL mode set to full and strict rather than flexible.
3. The certificate never gets issued
Certificate issuance needs DNS to resolve correctly first. If the domain has been pending for more than a few hours, verify the records with an external lookup, check that there is no CAA record blocking issuance. If Lovable shows the setup as Stalled or Failed, use the Retry option in your domain settings first, as described in the official docs. Removing and re-adding the domain is a later step, not the first fix.
4. www works but the root does not, or the reverse
You connected one version and not the other. Connect both in Lovable's domain settings, and have one redirect to the other so you have a single canonical address. Pick www or the root, be consistent everywhere, and make sure your canonical tags and sitemap use the same version. Splitting your traffic across two addresses splits your search signals too.
After the domain is live: the SEO cleanup nobody does
A new domain is a fresh start for search engines, so spend twenty minutes on the basics while it is easy.
- Update canonical tags and Open Graph URLs so they use the new domain, not the lovable.app address.
- Update your sitemap so every URL uses the new domain.
- Point the sitemap directive in robots.txt at the new location.
- Verify the domain in Google Search Console and submit the sitemap.
- Share the new URL once from wherever you already have an audience.
Ask Lovable to do the first three for you in a single prompt: "Update canonical tags, Open Graph URLs, the sitemap and robots.txt to use my new domain." It is a two minute change that saves weeks of the wrong URL being indexed.
Email on the same domain
Connecting a domain to your app does not set up email on it. If you want an address at your own domain, that is a separate service and separate DNS records, usually MX plus SPF and DKIM entries. Adding those records will not affect your website records as long as you do not overwrite the A and TXT entries you just created.
Frequently asked questions
How long does a custom domain take to work?
Up to 72 hours, although many connections complete sooner. Check with an external DNS lookup before changing anything.
Can I use a subdomain such as app.mysite.com?
Yes. Add the subdomain in your project's domain settings and copy the records Lovable shows for that exact subdomain into your DNS provider.
Do I need to buy the domain through Lovable?
No. Any registrar works. You keep ownership of the domain and you can point it elsewhere later.
Will my lovable.app address stop working?
It keeps working as the underlying address. Use your custom domain everywhere publicly so search engines settle on one canonical version.