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 like blog.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/settings page 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.pub and preserves the original Host header.
  • 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, not example.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 ALIAS or ANAME record 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.