Custom Domains·7 min read·

Connecting a custom domain to your VeloCMS blog

Step-by-step guide to pointing your own domain at your VeloCMS blog on the Pro plan or above.

Custom domains are available on the Pro plan and above. With a custom domain, your blog is served at yourdomain.com instead of yoursite.velocms.org. SSL is provisioned automatically — no manual certificate configuration needed.

Before you start

You need: a domain you own (from any registrar — Namecheap, GoDaddy, Google Domains, etc.), an active Pro or higher VeloCMS plan, and access to your domain's DNS settings at your registrar.

Step 1: Add the domain in Admin

Go to Admin → Settings → Branding and find the Custom Domain section. Type your domain (e.g. myblog.com or blog.mybrand.com) and click 'Add Domain'. VeloCMS registers the domain and shows you the exact DNS records to add — a CNAME target that is unique to your domain, plus a TXT record that proves you own it.

Step 2: Add DNS records at your registrar

Add a CNAME record pointing your domain (or subdomain such as www or blog) at the target shown in the Custom Domain panel — copy it exactly as displayed. If you are adding an apex domain (e.g. myblog.com without www), many registrars do not support CNAME on the apex — use ANAME, ALIAS, or CNAME flattening if your DNS provider offers it, or move DNS to a provider that does.

DNS changes propagate in 5–60 minutes for most registrars. In rare cases it can take up to 24 hours. Use the 'Verify Now' button in the Custom Domain panel to re-check after your DNS change instead of waiting for an automatic re-check.

Step 3: Wait for SSL provisioning

After your DNS record resolves, the certificate for your domain is provisioned automatically. The Custom Domain panel shows the status: pending (DNS record not detected yet), verifying (check in progress), active (live), or failed (something went wrong — the panel shows the error). Once the status is active, your blog is live at your custom domain.

Troubleshooting

Status stuck at 'pending' after 30 minutes: use a DNS checker (dnschecker.org) to confirm the CNAME is resolving globally, then click 'Verify Now' in the panel. If it is resolving but verification keeps failing, contact support. Status 'failed': the panel shows the error message — a common cause is a conflicting CAA DNS record blocking certificate issuance; remove it or add the issuing authority, then click 'Verify Now'. Domain shows a security warning in the browser: the certificate is not yet active — wait a few more minutes and re-check the panel.