← Back to blog

How to host your Lovable app on a custom domain (free, 10 minutes)

Jonathan Geiger·
lovablecustom domainsverceltutorialfree hosting

You built something on Lovable and want it live on yourbrand.com instead of something.lovable.app. Lovable charges to host on a custom domain. You don't have to pay it.

Here's the path the rest of us take. Free, ten minutes, and your app keeps deploying automatically every time you ship a change in Lovable.

What you get at the end

  • Your Lovable app on a domain you control (apex or subdomain).
  • TLS handled automatically. Renews forever.
  • Auto-deploy: every Lovable export pushes a fresh commit, Vercel rebuilds.
  • $0 due today. No card.

Step 1. Export your Lovable app to GitHub

In Lovable: top-right menu → Export to GitHub. Authorize the connection if it's the first time. Lovable pushes the full frontend code to a new repo under your account.

The repo is just a normal Vite or Next.js project from here on. Anything you change in Lovable, re-export to push updates.

Step 2. Deploy the repo to Vercel

Go to vercel.comSign in with GitHubNew Project → pick the repo Lovable just created.

Leave every setting on its default. Vercel auto-detects the framework and the build command. Hit Deploy.

You get a working preview URL within 60 seconds, looks like your-repo-abc123.vercel.app. App is live. Domain next.

Step 3. Add your custom domain

Vercel project → SettingsDomains → enter yourbrand.com (or whichever).

Vercel shows you the DNS records to add at your registrar:

  • Apex domain (yourbrand.com): an A record pointing at 76.76.21.21.
  • Subdomain (app.yourbrand.com): a CNAME pointing at cname.vercel-dns.com.

Open your DNS provider (Cloudflare, Namecheap, GoDaddy, whoever) and add the record. Save. Within a couple of minutes Vercel detects it, issues a Let's Encrypt cert, and your app is live on the branded URL.

If you're on Cloudflare, set the proxy status to DNS only (the gray cloud) for these records, otherwise Cloudflare wraps Vercel's TLS in its own and the handshake breaks.

Step 4. Auto-deploys, forever

Nothing to set up for this. Vercel watches the GitHub repo. Every Lovable re-export creates a new commit, Vercel rebuilds, the new version is live a few minutes later.

You can ignore Vercel entirely from here on. Make changes in Lovable, hit export, done.

What if your Lovable app needs to support YOUR users' custom domains?

The flow above is for one custom domain. Yours.

If your Lovable app is a SaaS where YOUR USERS want to bring THEIR OWN domains (think Shopify letting each store live at its own store.com, or a portfolio builder where each customer lives at their-brand.com), Vercel doesn't scale to that. They charge per-domain on Pro and you'd be manually wiring DNS for every new customer.

That's what Domainee Custom Domains API is for. One POST /v1/domains per customer hostname, they add one CNAME at their registrar, and we handle the cert, the renewal, and the DNS monitoring. 50 customer domains free, forever, no card.

The integration is about ten lines:

// When a customer adds their domain in your Lovable app's dashboard:
const res = await fetch("https://api.domainee.dev/v1/domains", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.DOMAINEE_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    hostname: "shop.customer.com",
    originUrl: "https://your-lovable-app.vercel.app",
  }),
});

const { domain } = await res.json();
// Show domain.dnsRecords to the customer.
// They add one CNAME at their registrar.
// We fire a webhook when DNS lands + cert issues.

Customer's traffic resolves through our edge to your Vercel origin. Cert renewals happen forever. You never touch ACME or the customer's registrar.

If your Lovable app might grow into that, grab an API key now. Free tier covers your first 50 customers, so you can build the feature on Domainee before you have any reason to pay.

The recap

For YOUR app on YOUR domain → Lovable → GitHub → Vercel → DNS → done. Free.

For YOUR users on THEIR domains in your Lovable SaaS → use Domainee. Free up to 50 domains.

Ten minutes either way.