Pro

Custom Domain

Register and verify sending domains. Forms attach to verified domains individually.

Custom Domain in Workspace is where you register the domains your forms can send from. You set up DNS once per domain — then any form in the workspace can attach to it from its own Custom domain tab.

Two pages, one workflow

Register here (workspace-level DNS verification). Attach there (per-form). The separation lets one verified domain power many forms with different sender names.

Adding a domain

1

Click Add domain

The form expands to ask for the domain you want to send from (e.g. example.com or a subdomain like mail.example.com).
2

Static Forms generates DNS records

You'll see a list of records to add — typically TXT for SPF/DKIM and an MX record for DMARC reporting. Each row has a copy button.
3

Add the records at your DNS provider

Cloudflare, Route 53, Namecheap, GoDaddy — paste the records into your domain's DNS settings.
4

Wait for verification

The domain card polls your DNS for changes. Verification usually completes in minutes but can take up to 24 hours for slow providers. The status pill on the card updates as each record verifies.
5

Attach the domain to a form

Once verified, open any form's Custom domain tab and pick this domain from the dropdown.

View states

  • Upsell — visible to Free/Trial tiers. Shows what custom domains do and links to pricing.
  • Read-only — visible to team members who aren't the workspace owner. Lists domains and statuses, no edit actions.
  • Manage — visible to the workspace owner on Pro and above. Add, verify, and remove domains.

Verifying DNS records

Each domain card lists every required record with a copy button and a status pill (Pending / Verified / Failed). Hovering a record shows what it does (SPF, DKIM, DMARC). If verification fails:

  • Confirm the host/name field is correct (some providers want the leaf, others want the full FQDN).
  • Wait — DNS can take time to propagate.
  • Click Recheck to force a fresh poll.

Removing a domain

Removing a domain immediately stops any form attached to it from using it — those forms fall back to the default forms@staticforms.dev sender until you attach a different domain. Forms aren't broken, just defaulted.