# Custom domains

> Serve your changelog from your own subdomain.

By default your changelog is served at `https://launch.nordva.dev/log/<your-project-slug>` and your widgets at `https://widget.nordva.dev/...`. On the **Builder** plan you can point your own subdomain (for example `changelog.acme.com`) at us via CNAME.

## How it works

We use [Cloudflare for SaaS](https://developers.cloudflare.com/cloudflare-for-saas/) to terminate TLS for your hostname automatically. There is nothing to deploy on your side beyond a DNS record.

## Setup

1. In your DNS provider, create a CNAME:

```
changelog.acme.com.   CNAME   widget.nordva.dev.   3600
```

2. In the dashboard, go to `Project → Custom domains` and register the hostname:

```bash
curl -X POST https://api.nordva.dev/v1/projects/<project_id>/custom-domains \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "hostname": "changelog.acme.com" }'
```

3. Cloudflare issues an SSL certificate within a few minutes. The dashboard shows status `active` once it’s ready.

## Limits

| Plan | Custom hostnames per project |
| --- | --- |
| Free | 0 |
| Indie | 0 |
| Builder | 5 |

Reach `HOSTNAME_ALREADY_REGISTERED` (409)? The hostname is registered to a different Nordva Launch account. Use a different subdomain, or contact support if you believe it was registered in error.

## Removing a hostname

```bash
curl -X DELETE \
  https://api.nordva.dev/v1/projects/<project_id>/custom-domains/<hostname_id> \
  -H "Authorization: Bearer sk_live_..."
```

Cloudflare removes the hostname binding immediately. Your DNS CNAME will start failing with an `SSL_ERROR_NO_CYPHER_OVERLAP` once removed, so drop the record in your DNS provider too.

Source: https://docs.nordva.dev/custom-domains/
