Skip to content

Deploy + Custom Domain in Lovable

From the lovable.app app to your dashboard.yourcompany.com. SSL, custom domain, Supabase in production.

10 min · Intermediate · 3 of 3

TL;DR

Buy a domain: 1x (~$ 12/year). Point it to Lovable: 5 minutes. Automatic SSL. From then on, your team accesses it at dashboard.yourcompany.com, not your-project.lovable.app.

When it’s worth doing

  • App is going to the entire team (not just you)
  • You want to share the URL with a customer/partner
  • The lovable.app URL “pollutes” the image of the internal product
  • You’ll use transactional email from the app (needs custom domain for SPF/DKIM)

Prerequisites

  1. Lovable Pro plan (Free doesn’t support custom domain)
  2. Custom domain purchased (Registro.br, Namecheap, GoDaddy — any)
  3. Access to the domain DNS panel
  4. Supabase Pro plan if the app uses sensitive production data (Free has backup limits and no PITR)

Step by step (10 min)

1 · Decide: subdomain or root?

ScenarioUse
Internal app accessed by the teamSubdomain dashboard.yourcompany.com
Main company productRoot yourcompany.com
Several separate appsDifferent subdomains (crm., dashboard., portal.)

Recommendation: for an internal dashboard, always subdomain. Keep the root for the marketing site.

2 · Configure in Lovable

  1. Open your project in Lovable
  2. Settings → Domains
  3. Click Add Custom Domain
  4. Enter the full subdomain: dashboard.yourcompany.com
  5. Lovable shows a DNS record for you to create — something like:
    Type: CNAME
    Name: dashboard
    Value: cname.lovable.app
    TTL: 3600

3 · Point DNS

In your domain provider (e.g. Registro.br, Cloudflare, Namecheap):

  1. Access the domain’s DNS panel
  2. Add record:
    • Type: CNAME
    • Name: dashboard (just the prefix)
    • Value: what Lovable provided (usually cname.lovable.app)
  3. Save

Propagation time: 2 minutes to 48h. Almost always ready in 10-30 minutes. Use whatsmydns.net to check.

4 · Return to Lovable and verify

  1. Back in Settings → Domains
  2. Click Verify
  3. When it goes green: SSL is provisioned automatically (Let’s Encrypt)
  4. In 1-3 minutes, https://dashboard.yourcompany.com opens your app with green padlock

5 · Update internal references

  • Transactional email: if you used noreply@lovable.app, switch to noreply@yourcompany.com (also configure SPF/DKIM in the domain DNS)
  • Google Login/SSO: if you authorized OAuth for the old URL, add the new one as an allowed URI
  • Old shares: notify whoever had the old link

Supabase in production

If the app stores real customer data, don’t run on Free Plan:

ItemFreePro (US$ 25/month)
Automatic backup1 day7 days
Point-in-Time Recovery
Disk size500MB8GB+
Pause on inactivityYes (7 days)No
SupportCommunityEmail

The Pro plan pays for itself in 30 days if the app is critical to operations.

Minimum Supabase Pro checklist:

  • ✅ Daily backup enabled
  • ✅ PITR (Point-in-Time Recovery) enabled
  • ✅ Row Level Security (RLS) configured on all tables with sensitive data
  • ✅ Service role key NOT used in frontend (only in edge functions/backend)
  • ✅ Anon key with minimal scope

Total production costs

Typical internal dashboard stack (5-20 users, real data):

ItemMonthly cost
Lovable ProUS$ 25
Supabase ProUS$ 25
Custom domain (prorated)~US$ 1
Total~US$ 51/month

About $ 50/month to have your own internal app, no dev, no agency, with backup.

Pegadinhas
  • Wrong subdomain breaks silently. If you create a CNAME record for dashboard.yourcompany.com but type only dashboard in Lovable, it gets misaligned. Make sure both match.
  • Wildcard SSL doesn't work. Each subdomain needs to be explicitly added in Lovable.
  • Cloudflare proxy breaks SSL. If using Cloudflare in front, mark the record as DNS only (gray cloud, not orange). Otherwise Let's Encrypt fails.
  • Old DNS is slow. If you already had a CNAME pointing elsewhere, it can take 24-48h to actually change. Not a Lovable bug.
  • Transactional email needs SPF + DKIM in DNS — pointing CNAME alone isn't enough. Otherwise emails go to spam.

Next step

App in production, on custom domain. Time to protect it: Aikido setup in 10 minutes.

Entrega da lição
30 min

Tarefa

Publish your Lovable app on a custom domain (subdomain works: dashboard.yourdomain.com). Paste the final URL + screenshot of the home working with active SSL (green padlock).

Como saber que entregou

URL with your domain (not lovable.app) loading with valid HTTPS. Green padlock in the browser.

Auto-validável · você sabe se entregou
Compartilhar resultado ↗
Fontes oficiais