Custom domain
Put your status page on status.yourdomain.com — or yourdomain.com/status — with a valid TLS certificate Produl manages for you.
Overview
By default, every status page is served from produl.tech/s/<slug>. That works fine, but most teams prefer their own domain for brand continuity, SEO, and the simple reason that status.yourdomain.com looks more trustworthy to users in the middle of an outage.
Produl supports both subdomains (like status.acme.com) and apex domains (like acme-status.com), and issues a genuine TLS certificate automatically — no manual cert uploads, no Let's Encrypt scripts to maintain.
What happens under the hood
Walkthrough
- 1
Pick your domain
Subdomains are simplest (
status.acme.com). If you only own the apex, you can use that too — Produl will prompt for an A record instead of a CNAME. - 2
Enter it in Settings
Open your status page → Settings → Custom domain. Paste the domain (without
https://) and click Save changes. - 3
Add the DNS record at your provider
The DNS record card on the settings page shows exactly what to add:
- For subdomains: a CNAME record pointing at
cname.vercel-dns.com. - For apex domains: an A record pointing at
76.76.21.21.
- For subdomains: a CNAME record pointing at
- 4
Wait for DNS to propagate
Usually 1–5 minutes. Some providers (older caches, slow TTLs) take up to 30. You can check propagation with
dig status.acme.com CNAMEor any online DNS checker. - 5
Click Verify now
Produl runs three checks in order: DNS resolves to our target → domain is attached to Produl → a TLS certificate has been issued. Each shows a green check or a red X with the exact reason it failed.
- 6
Visit https://your-domain
Once all three turn green you're live. The URL renders your branded status page over HTTPS, and the internal slug URL still works as a backup.
DNS records reference
| Use case | Record type | Name | Value |
|---|---|---|---|
Subdomain status.acme.com | CNAME | status | cname.vercel-dns.com |
Apex acme.com | A | @ | 76.76.21.21 |
Any subdomain health.acme.io | CNAME | health | cname.vercel-dns.com |
Set a short TTL
Cloudflare note
Cloudflare wants to proxy every record by default (the orange cloud). That breaks Produl's setup — our certificate provider needs to see the real origin IP to issue the TLS cert. Fix:
- In your Cloudflare DNS dashboard, find the new record.
- Click the orange cloud next to it to turn it grey (“DNS only”).
- Save and click Verify again. Should go green within seconds.
Proxied = broken
Verification steps
The Verify button runs three checks in order. Understanding each makes troubleshooting trivial:
- DNS record matches. Produl does a live DNS lookup. For subdomains we ask for the CNAME; for apex domains we ask for A records. If the value matches the target shown in Settings, step 1 passes.
- Domain attached to Produl.Produl registers the domain with its routing layer. This is idempotent — if it's already attached (from a previous attempt), Produl just re-fetches its state.
- TLS certificate issued.Produl confirms that Let's Encrypt has issued a valid certificate and HTTPS is live on your domain.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| “No CNAME record found yet — DNS may still be propagating” | DNS hasn't propagated | Wait 2–5 more minutes, try again. Verify with dig +short status.acme.com CNAME. |
| “Expected CNAME cname.vercel-dns.com; got myapp.herokuapp.com” | Old CNAME still in place | Your DNS has an old record pointing elsewhere. Delete it, add the correct CNAME, wait for propagation. |
| “Domain already in use by a different project” | Domain is attached somewhere else | Detach it from the other project or provider first, then retry. |
| “TLS certificate not yet issued. Try again in ~30s.” | Cert provisioning in progress | Wait 30 seconds and click Verify again. First-time issuance can take up to ~60 seconds. |
| Step 3 fails repeatedly with “misconfigured” | Proxied DNS (Cloudflare) or CAA record blocks Let's Encrypt | Turn off Cloudflare proxy. Check for CAA records on your apex restricting issuers — add letsencrypt.org. |
Removing a domain
Clear the Custom domain field in Settings and save — Produl detaches the domain and flips verification state back to off. The slug-based URL keeps working; requests on the old domain will 404 within a few minutes (once DNS caches clear).