Deploy + Custom Domain in Lovable
From the lovable.app app to your dashboard.yourcompany.com. SSL, custom domain, Supabase in production.
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.appURL “pollutes” the image of the internal product - You’ll use transactional email from the app (needs custom domain for SPF/DKIM)
Prerequisites
- Lovable Pro plan (Free doesn’t support custom domain)
- Custom domain purchased (Registro.br, Namecheap, GoDaddy — any)
- Access to the domain DNS panel
- 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?
| Scenario | Use |
|---|---|
| Internal app accessed by the team | Subdomain dashboard.yourcompany.com |
| Main company product | Root yourcompany.com |
| Several separate apps | Different subdomains (crm., dashboard., portal.) |
Recommendation: for an internal dashboard, always subdomain. Keep the root for the marketing site.
2 · Configure in Lovable
- Open your project in Lovable
- Settings → Domains
- Click Add Custom Domain
- Enter the full subdomain:
dashboard.yourcompany.com - 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):
- Access the domain’s DNS panel
- Add record:
- Type:
CNAME - Name:
dashboard(just the prefix) - Value: what Lovable provided (usually
cname.lovable.app)
- Type:
- 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
- Back in Settings → Domains
- Click Verify
- When it goes green: SSL is provisioned automatically (Let’s Encrypt)
- In 1-3 minutes,
https://dashboard.yourcompany.comopens your app with green padlock
5 · Update internal references
- Transactional email: if you used
noreply@lovable.app, switch tonoreply@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:
| Item | Free | Pro (US$ 25/month) |
|---|---|---|
| Automatic backup | 1 day | 7 days |
| Point-in-Time Recovery | ❌ | ✅ |
| Disk size | 500MB | 8GB+ |
| Pause on inactivity | Yes (7 days) | No |
| Support | Community |
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):
| Item | Monthly cost |
|---|---|
| Lovable Pro | US$ 25 |
| Supabase Pro | US$ 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.
- Wrong subdomain breaks silently. If you create a CNAME record for
dashboard.yourcompany.combut type onlydashboardin 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.
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).
URL with your domain (not lovable.app) loading with valid HTTPS. Green padlock in the browser.