Emits

Docs

Custom domains

On the Pro plan ($5/mo) you can bind a custom domain to your account. A bound domain is an account-wide alias: once it is active, every page you host also serves at your-domain/<slug>, with a TLS certificate issued for you. Domains bind to the account, not to a single page.

You can do everything on this page from the console too: Settings → Domains at emits.app runs the same bind flow, shows the DNS record to create, and rechecks it for you.

Bind a domain

emit bind-domain pages.example.com

Binding requires the domains:bind scope, which your login credential does not carry by default. The CLI detects this and re-runs the device-flow login to request the elevated scope for this one operation; it is used for the bind and not persisted into your stored credential.

Bind lifecycle

A bind moves through these states, reported on each bind-domain / approve-domain call and by domains:

pending-human -> queued <-> pending-cert -> active
                                          -> failed
  • pending-human: waiting on an operator/human approval gate.
  • queued / pending-cert: provisioning and certificate issuance.
  • active: live; pages now serve at your-domain/<slug>.
  • failed: provisioning did not complete (the result carries a reason).

Approve a pending domain

A domain sitting at pending-human is released with:

emit approve-domain pages.example.com

List your domains

emit domains
# pages.example.com   active

Add --json for machine-readable output, the same as every other verb.