Request access
Custom domains are invite-only during beta. Claim the site → project Domains → request access. Once approved you can add hostnames.
DNS
Add the hostname in the Domains tab, then at your DNS host:
CNAME app.example.com → cname.aft.page
The *.aft.page URL keeps working. Private sign-in
still uses that subdomain for cookies / sessions.
HTTPS
Certificates issue after DNS is live. Watch progress on the same Domains tab (status moves to Live when ready).
Apex
Bare example.com needs ALIAS / ANAME / CNAME
flattening to cname.aft.page (plain CNAME at apex is
not valid DNS). Prefer a subdomain (app. /
www.) when unsure.
API
curl https://api.aft.page/v1/sites/{slug}/domains -H "Cookie: …"
curl -X POST https://api.aft.page/v1/sites/{slug}/domains \
-H "Content-Type: application/json" -H "Cookie: …" \
-d '{"hostname":"app.example.com"}'