Custom domains

Serve a Quickish page at your own address — docs.acme.com instead of acme.quickish.space/docs — with an automatic HTTPS certificate.

A custom domain points your own host at a page you've published. Quickish gets a TLS certificate for it from Let's Encrypt on demand and serves your page there, applying the same access rules as the Quickish URL — a private page stays private at its custom domain too. Everything keeps working: quick.db, quick.fn, quick.sql, realtime.

Two records, one verification

Binding a domain returns the exact DNS to add. There are two pieces — point the host at us, and prove you own it:

RecordHostValue
CNAME (sub-domain)docs.acme.comquickish.website
TXT (ownership)_quickish-challenge.docs.acme.comquickish-domain-verify=<token>

A sub-domain (docs.acme.com) uses a CNAME to quickish.website. A root/apex domain (acme.com) can't be a CNAME, so it uses an A record to the Quickish IP instead — the bind response tells you which, with the exact value. Don't proxy the record through a CDN (e.g. set Cloudflare to “DNS only / grey-cloud”) so the certificate challenge reaches us.

The flow

  1. Bind the host to one of your pages. You get back a verification token and the two records above.
  2. Add the records at your DNS provider — the CNAME (or A) and the TXT.
  3. Verify. We check the TXT over public DNS; once it's there, the domain goes live. The certificate is issued automatically on the first request. DNS can take a few minutes to propagate.

Use whichever surface you like — both are owner/editor-gated:

Dashboard. Open your dashboard, hit Domains on the page's card, type the host, and follow the DNS records it shows. Click Verify once they're in.

CLI.

# bind docs.acme.com to the "docs" page → prints the DNS records to add
quickish domains add docs.acme.com --path docs

# after adding the records, verify ownership (then it goes live)
quickish domains verify docs.acme.com

quickish domains ls          # list your domains + their state
quickish domains rm docs.acme.com   # stop serving it
Under the hood both drive the same owner/editor-gated API — POST /_cli/domains with { host, site }, then POST /_cli/domains/verify — if you'd rather script it directly with your CLI token.

Good to know