Skip to main content
Updated October 19, 2026 Serve a website or API on your own domain, such as app.example.com. You add two DNS records; Raff checks them and sets up the HTTPS certificate for you, at no extra cost. The app keeps its Raff address as well, so it stays reachable while your DNS changes spread.

Before you start

  • A live app of the type Website or API. Other app types have no public address.
  • Access to the DNS settings of your domain, at your registrar or DNS provider.

Steps

1

Open Domains

Open the app and go to the Connect tab. Find Domains.
2

Add the domain

Type the domain, for example app.example.com, and click Add domain. It shows as Waiting for DNS.
3

Create the two DNS records

At your DNS provider, create both records Raff shows. Each has a Name / Host and a Value / Points to you can copy:
TODO: Domains section with the TXT and CNAME records to copy
4

Wait for verification

Raff checks the records every 30 seconds. To check now, click Check now. The domain moves through Verifying DNS, DNS verified and Issuing certificate to Active.

Verify

When the domain shows Active, open https:// and your domain. It serves the app with a valid certificate. If the domain shows Error, its message says what is wrong. Fix the record and click Check now.

Good to know

  • Cloudflare: set both records to DNS only (grey cloud, not orange). A proxied record hides the CNAME and blocks the HTTPS certificate.
  • Root domains such as example.com: most providers cannot put a CNAME on the root. Use your provider’s CNAME flattening or ALIAS record, or an A record to the same IP as the CNAME target.
  • Remove a domain with the trash icon next to it. Deleting the app also frees its domains.

Use the API

Add the domain. The response has the records to create, cname_target, verification_txt_name and verification_txt_value:
Follow its status (pending_dns, verifying, dns_verified, issuing_cert, active or error) and check again after you change DNS:
See Add custom domain, List custom domains, Retry domain verification and Delete custom domain.

Use the CLI

Next steps

Deploy from GitHub

Deploy on every push.

Troubleshooting

Common issues and recovery.
Last modified on October 19, 2026