Custom domains
On this page
Run your public roadmap on your own domain. feedback.yourproduct.com looks better in tweets, ranks separately in search, and lets you keep the roadmap inside your brand surface area. Automatic TLS via Let's Encrypt. No nginx config to write.
Setup
- Go to Settings → Domains in your dashboard.
- Click Add custom domain, enter the subdomain you want to use (for example
feedback.yourproduct.com). - ShipPulse displays one DNS record:
TYPE NAME VALUE
CNAME feedback custom.shippulse.dev- Add that CNAME at your DNS provider (Cloudflare, Route 53, Namecheap, wherever the apex lives).
- Click Verify in the dashboard. Verification typically completes in under sixty seconds; DNS propagation may take up to a few minutes depending on your provider's TTL.
- Once verified, ShipPulse provisions a Let's Encrypt certificate automatically. Your roadmap is live on the custom domain within two to three minutes.
What gets served
By default, the custom domain serves:
/— your public roadmap index/roadmap/<item-id>— individual roadmap items (deep-linkable, indexable, OG-image per item)/changelog— the changelog/sitemap.xml— your project's sitemap, scoped to this domain
The marketing site, login, and dashboard stay on shippulse.dev — your custom domain is a clean read-only surface for visitors.
TLS and renewal
Certificates auto-renew thirty days before expiry. If renewal fails (usually because the CNAME was changed or removed) the dashboard surfaces the error and falls back to the shippulse.dev URL with a redirect — your roadmap never goes offline; it just temporarily routes through our domain.
Multiple domains
Custom domains are available on the Team plan; the Agency plan adds a custom domain per project, so each of your clients gets their own roadmap surface.
CDN and caching
All public-roadmap routes are cached at the edge for sixty seconds (s-maxage=60, stale-while-revalidate=300). Visitors get fast initial paint; your votes-and-shipped counts stay near-realtime.
Removing a domain
Settings → Domains → Remove. The CNAME stops resolving on our end immediately; you can delete the DNS record at your provider on your own schedule.
Troubleshooting
- Verification fails with
CNAME mismatch— the DNS record points somewhere other thancustom.shippulse.dev. Check for typos, especially trailing dots. - Verification succeeds but the cert never issues — your DNS provider may have CAA records that block Let's Encrypt. Add
letsencrypt.orgto the allowlist. SSL_ERROR_NO_CYPHER_OVERLAPin browser — your domain has HSTS set without including subdomains. Either remove HSTS preload or add the subdomain to the preload list.