Domain setup

Set Up A Domain

Keep DNS and websites wherever they already are. LiteMX asks you to add mail and verification records; it does not require a nameserver move.

Default CLI Flow

domain-setup.sh
litemx domains register project.dev --mailbox ops --alias hello --display-name Ops --plan
litemx domains register project.dev --mailbox ops --alias hello --display-name Ops
litemx domains dns-plan project.dev
litemx domains verify project.dev
litemx domains smoke project.dev --mailbox ops --inbound-query "unique subject" --to founder@example.com --timeout 120 --interval 5

domains register creates the LiteMX domain, mailbox, alias, and catchall records, then returns the DNS setup plan. The default path is DNS-plan-first. Cloudflare zone creation is not part of normal onboarding.

domains dns-plan prints provider-agnostic records: inbound MX, ownership verification, DKIM CNAMEs, SPF, DMARC guidance, and bounce/MAIL FROM records. For AWS SES domains with configured provider state, it emits concrete SES records. Missing provider values are marked pending.

Readiness

domains verify reads LiteMX status and provider readiness evidence: DNS records present, inbound route or receipt active, outbound sender or domain verified, and DKIM active. Inbound and outbound readiness are separate.

Some outbound providers require account-level production approval. A verified domain can receive mail and still be unable to send to arbitrary external recipients until the outbound provider approves production sending.

Vercel DNS Publishing

vercel-dns.sh
export VERCEL_API_TOKEN=<vercel-token>
litemx domains dns-plan project.dev --publish --confirm-publish --dns-provider vercel
litemx domains dns-plan project.dev --publish --confirm-publish --dns-provider vercel --include-inbound-mx

The Vercel publisher checks existing records, skips exact matches, refuses conflicting same-name/type records, and supports CNAME, MX, and TXT. It publishes safe records by default and skips the root inbound MX so live mail is not redirected before the inbound bridge is ready.

Use --include-inbound-mx only after the selected inbound provider is ready to accept production mail for that domain.

Provider Direction

  • Inbound: AWS SES Email Receiving through MX records at the existing DNS provider.
  • Outbound: AWS SES with sender-domain verification, DKIM, and account-level production access.
  • Runtime/storage: Cloudflare Workers, D1, R2, Durable Objects, Queues, and Cron Triggers.

LiteMX does not ask customers to change web hosting. Hosting a website or dashboard on Vercel is different from running an outbound SMTP and reputation stack.

Optional Cloudflare Commands

cloudflare-debug.sh
litemx domains cloudflare-account
litemx domains cloudflare-zone project.dev --cloudflare-account-id <account-id> --run --confirm-create-zone --record
litemx domains cloudflare-setup project.dev --run

These are provider-specific debug/prototype commands, not the default product path. Use them only when testing the legacy Cloudflare provider path or when a domain already uses Cloudflare DNS and that provider path is intentionally selected.

Smoke Test

domain-smoke.sh
litemx domains smoke project.dev --mailbox <mailbox-local-or-address> --inbound-query "unique subject" --to founder@example.com --timeout 120 --interval 5
litemx domains smoke project.dev --mailbox <mailbox-local-or-address> --self-send --self-to <alias-local-or-address> --to founder@example.com --timeout 120 --interval 5

Smoke should prove provider-ingested receive and provider-accepted send. Simulated inbound remains only for regression checks.