# Custom Domain

Source: https://docs.skaz.io/guide/custom-domain

> Serve a Skaz story from your own subdomain like story.example.com: the DNS records to add, verification and the free certificate.

Any story can be served from a subdomain you own — `story.example.com` instead
of a link on `skaz.io`. The story still runs on Skaz; only the address changes.

## Setting it up

1. Open your story in the editor and find **Custom domain** in the story
   panel on the right.
2. Type the subdomain you want to use, e.g. `story.example.com`, and press
   **Save**. Skaz answers with the exact DNS records for your domain — a CNAME
   that routes visitors to us, and one or two TXT records that prove the domain
   is yours.
3. Add **every** record shown at your DNS provider, exactly as given. A missing
   TXT record is the usual reason a domain resolves but still shows an error.
4. Press **Check DNS**. Once all the records are visible, the domain goes live.

The certificate is issued automatically the first time someone opens the
address, so the very first visit can take a second or two longer than usual.

> DNS changes aren't instant. If the check fails right after you add the
> records, wait a few minutes and try again — most providers propagate within
> 5–30 minutes.

## If the check keeps failing

- **Cloudflare users:** set the CNAME to **DNS only** (grey cloud, not orange).
  Proxying replaces the record we look for with Cloudflare's own addresses, and
  the check can't see it.
- **Trailing dot.** Some DNS panels require values to be fully qualified, i.e.
  to end with a dot — `stories.skaz.io.` rather than `stories.skaz.io`. The
  editor has a button that copies the dotted form.
- **Name field.** Some panels want the whole hostname
  (`story.example.com`), others only the part in front of your domain
  (`story`). The editor shows both spellings.
- **An existing A record.** A CNAME can't share a name with an A or AAAA
  record. Delete the old one first.

## Why the TXT records

The **CNAME** points the address at Skaz, so visitors actually reach your
story. The **TXT** records prove the domain is yours — without them, anyone
could type someone else's domain into their editor and claim it.

## Limits

- **Subdomains only.** An apex domain like `example.com` can't hold a CNAME
  record under the DNS standard. Use `story.example.com`, `play.example.com`,
  or anything similar.
- **One story per domain.** A domain is taken by whoever saves it first, and
  released as soon as they remove it.
- **Not for stories that require signing in.** Sign-in — and with it every 18+
  story — works only on Skaz's own domain, so those stories can't use a custom
  one yet.
- The **Made with Skaz** badge stays on the player.

## Moving or removing it

Press **Remove** in the same panel to release the domain. Pointing the DNS
records somewhere else works too, but the claim stays with the story until you
remove it, which keeps anyone else from picking it up by accident.

## What's next

- [Publishing & Sharing](/guide/publishing) — getting your story in front of players.
