Custom Domains
Serve your whiz.pub blog from your own domain, such as blog.example.com or example.com.
Prerequisites
- A verified email address on your whiz.pub account.
- A working blog at your subdomain (e.g.
yourname.whiz.pub). - Access to your domain's DNS settings.
Step 1: Add Your Domain
Register the domain with whiz.pub using any of the following methods.
Dashboard
Go to /app/settings and enter your domain in the Custom Domain field. Click Add Domain.
CLI
whiz domain add example.com
API
curl -X POST https://whiz.pub/api/v1/domains \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "example.com"}'
The response includes your tenant_id, which you need for the DNS verification record.
Step 2: Configure DNS
Add two DNS records at your domain registrar or DNS provider.
CNAME Record
Point your custom domain to the Whiz custom-domain edge:
| Type | Name | Value |
|---|---|---|
| CNAME | example.com |
proxy.whiz.pub |
proxy.whiz.pub is the DNS-only custom-domain edge. It terminates TLS and serves rendered pages from the Whiz edge cache.
If you use Cloudflare DNS for your own domain, set this CNAME record to DNS only (grey cloud). Do not proxy it through Cloudflare; Whiz Edge handles HTTPS automatically.
Note: Some DNS providers do not support CNAME records on the apex domain (
example.com). In that case, use a subdomain likeblog.example.com, or check if your provider supports CNAME flattening (Cloudflare, for example, does this automatically).
TXT Record (Verification)
Prove domain ownership by adding a TXT record:
| Type | Name | Value |
|---|---|---|
| TXT | _whiz-verify.example.com |
<YOUR_TENANT_ID> |
Where to find your tenant ID:
- Dashboard: Shown on the
/app/settingspage after adding the domain. - API: Returned in the response body when you add the domain via
POST /api/v1/domains.
DNS Examples
For a subdomain like blog.example.com:
| Type | Name | Value |
|---|---|---|
| CNAME | blog.example.com |
proxy.whiz.pub |
| TXT | _whiz-verify.blog.example.com |
<YOUR_TENANT_ID> |
Step 3: Verify Your Domain
After DNS records have propagated, verify the domain.
Dashboard
Go to /app/settings and click Verify Domain.
CLI
whiz domain verify example.com
API
curl -X POST https://whiz.pub/api/v1/domains/example.com/verify \
-H "Authorization: Bearer YOUR_API_KEY"
Once verified, your blog is served at https://example.com.
Removing a Domain
Dashboard
Go to /app/settings and click Remove Domain.
CLI
whiz domain remove
You will be prompted for confirmation. Use -f to skip:
whiz domain remove -f
API
curl -X DELETE https://whiz.pub/api/v1/domains \
-H "Authorization: Bearer YOUR_API_KEY"
How It Works
- Whiz Edge receives traffic for custom domains through
proxy.whiz.puband preserves the originalHostheader. - The edge checks that the custom domain is verified in Whiz, then serves rendered pages from the Whiz edge cache.
- If a rendered page is missing or stale, the edge falls back to the main Whiz app, which renders and refreshes the cache.
- After verification, your subdomain (
yourname.whiz.pub) redirects to your custom domain. All links and SEO metadata use the custom domain as the canonical URL. - HTTPS is issued automatically by Whiz Edge using Let's Encrypt. No certificate setup is needed on your end.
Troubleshooting
DNS propagation delay
DNS changes can take up to 48 hours to propagate, though most providers complete within minutes. Use a tool like dig to check:
dig TXT _whiz-verify.example.com
dig CNAME example.com
Wrong TXT value
The TXT record value must be your tenant ID exactly, with no extra spaces or quotes. Double-check the value shown on your settings page.
Domain still showing as unverified
- Confirm both the CNAME record and TXT record are in place.
- Confirm the CNAME record points to
proxy.whiz.pub. - Confirm the TXT record is on
_whiz-verify.example.com, notexample.com. - If you use Cloudflare DNS, confirm the CNAME is DNS only (grey cloud), not proxied.
- Wait for DNS propagation and try verifying again.
CNAME on apex domain not supported
Some DNS providers do not allow CNAME records on the root domain (example.com). Options:
- Use a subdomain instead (e.g.
blog.example.com). - Use a provider that supports CNAME flattening (Cloudflare, DNSimple, NS1).
- Some providers offer an
ALIASorANAMErecord type that works the same way.
Blog loads but shows the wrong content
The CNAME record may be pointing to the correct server, but the TXT record is missing or incorrect. The server cannot identify your tenant without a verified TXT record.