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 via Cloudflare for SaaS — 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 → Custom Domain. Type your domain (e.g. myblog.com or blog.mybrand.com) and click 'Add domain'. VeloCMS initiates domain verification with Cloudflare. You will see a verification status panel with the DNS records to add.
Step 2: Add DNS records at your registrar
VeloCMS gives you one or two DNS records to add. For most setups: add a CNAME record pointing your domain (or www subdomain) to proxy.velocms.org. If you are adding an apex domain (e.g. myblog.com without www), some registrars do not support CNAME on the apex — use ANAME, ALIAS, or FLATTENING if available, or point the domain through Cloudflare which supports CNAME flattening natively.
DNS changes propagate in 5–60 minutes for most registrars. In rare cases it can take up to 24 hours. Verification status updates automatically — no need to re-submit.
Step 3: Wait for SSL provisioning
After DNS propagates, Cloudflare provisions an SSL certificate for your domain automatically. This takes 1–5 minutes after DNS is verified. The status panel in Admin → Settings → Custom Domain shows each step: DNS pending, DNS verified, SSL provisioning, SSL active. Once SSL is active, your blog is live at your custom domain.
Troubleshooting
Status stuck at 'DNS pending' after 30 minutes: use a DNS checker (dnschecker.org) to confirm the CNAME is resolving globally. If it is resolving but status is still pending, contact support. SSL stuck at 'provisioning': this usually resolves within 10 minutes. If it does not, ensure there is no conflicting CAA DNS record blocking Cloudflare from issuing a certificate. Domain shows a security warning: the SSL certificate is not yet active — wait a few more minutes. Do not use http:// as a workaround — it never loads (port 80 is not served).