Skip to content

Custom Domains (White-Labeling the App)

A custom domain lets you host the entire app on a domain you own. Instead of pointing clients to dashboard.localvisibilitylab.io/storefront/your-slug, they see app.youragency.com everywhere — sign-in, storefront, customer portal, approval pages, the works. The platform's branding is replaced by yours.

Quick facts

WhereSettings → Branding → White Label section (owner only, agency-partner orgs only)
CostBilled monthly per domain (added as a line item to your subscription)
Setup time10–30 minutes for DNS verification + SSL provisioning
What changes for usersThe URL, the logo, the colors. App behavior is identical.

What customers see

After setup:

  • They visit app.youragency.com (instead of dashboard.localvisibilitylab.io).
  • The sign-in page shows your logo and colors.
  • All emails the platform sends ("Your post is ready for approval") link to app.youragency.com.
  • The browser tab shows your favicon and the page title format you set.
  • The storefront homepage is app.youragency.com/storefront/<your-slug> — or, if you set the apex as the storefront, just app.youragency.com.

The agency-side dashboard is identical to the non-white-label version; just the URL and branding swap.

Setup walkthrough

Step 1 — Pick a domain

Most agencies use a subdomain like:

  • app.youragency.com
  • clients.youragency.com
  • portal.youragency.com

You can also use the apex (youragency.com) but only if you don't have a main site on it.

Step 2 — Add it in the platform

Settings → Branding → White Label section → Add Domain. Type the hostname (app.youragency.com). Click Add.

The domain enters the pending_dns state. The platform shows you the CNAME you need to add to your DNS.

Step 3 — Configure your DNS

In your DNS provider (Cloudflare, Route53, GoDaddy, etc.):

  • Type: CNAME
  • Name: app (or whatever subdomain)
  • Value: saas-target.simpleseo.biz (or whatever the platform shows you)
  • Proxy / orange-cloud (Cloudflare only): DNS-only / gray cloud is fine — Cloudflare custom hostnames handle SSL upstream.
  • TTL: 5 minutes is fine while testing.

Save. DNS propagation takes 1–10 minutes typically; the platform polls every 10 minutes and updates the status.

Step 4 — Wait through the state transitions

The platform automatically advances the domain through six states:

  1. pending_dns — waiting for your CNAME to propagate.
  2. dns_verified — CNAME found; provisioning Cloudflare custom hostname.
  3. ssl_pending — Cloudflare is issuing the SSL certificate.
  4. ssl_active — SSL cert issued; provisioning the auth satellite (so sign-in works on your domain).
  5. active — done. Domain is live.
  6. failed — something went wrong. The platform shows a clear error and a Retry button.

You can refresh the page; it auto-updates. From pending_dns to active typically takes 10–30 minutes.

Step 5 — Update your storefront URL

Once active, share app.youragency.com (instead of dashboard.localvisibilitylab.io/storefront/your-slug) with new prospects. Existing storefront links keep working — they redirect to the custom domain automatically.

Billing

  • A line item is added to your platform subscription for each custom domain.
  • Pro-rated for the partial month when you add or remove.
  • Removing a domain immediately stops billing.

Removing a domain

Settings → Branding → White Label section → row → Remove.

  • Cloudflare custom hostname is deleted.
  • Clerk satellite domain is deleted.
  • The domain stops resolving to your workspace immediately.
  • Existing client bookmarks fall back to dashboard.localvisibilitylab.io.
  • Billing line item is removed.

Limitations

  • Email sender domain is separate. Custom-domain branding does not automatically change the From: email address for platform-sent emails. To send emails as support@youragency.com, set up your sender identity in Settings → Email Sender Identity (each org can configure its own SPF / DKIM verified domain).
  • One custom domain per org for the auth surface. You can add multiple domains for redirects / vanity URLs, but only one is the primary white-label.
  • Custom domains lock the org context. A user signing in at app.youragency.com cannot switch to a different organization while on that domain. They'd need to go back to dashboard.localvisibilitylab.io.

Troubleshooting

Status / SymptomWhat's happening
Stuck in pending_dns > 1hrCNAME not detected. Re-check the record value, lower TTL, try a DNS-propagation checker.
ssl_pending > 1hrCloudflare issuance delay (rare). Click Retry.
failedError message tells you what — usually a CNAME / proxy misconfiguration.
Custom domain loads but sign-in failsClerk satellite domain isn't ready. Look at the state — should be active, not ssl_active.
302 redirect loopCloudflare proxy (orange cloud) is on with default settings. Switch the record to DNS-only.

Next: The Service Marketplace