Prisma Next is in early access.Read the docs

Domains

Point a custom domain at a production app and the platform verifies DNS and provisions TLS for you.

Configure custom domains that point to your production app. You can't configure custom domains for preview apps.

Before you start

You'll need:

Domain commands target the production branch. Pointing them at any other branch fails with BRANCH_NOT_DEPLOYABLE.

Add a custom domain

1. Add a domain

bunx @prisma/cli@latest app domain add shop.acme.com --app web

The command registers the custom domain for your production app. If the CNAME record isn't visible yet, it prints the record name and value for you to create.

2. Create CNAME Record

Add the printed DNS record which looks like switchboard.{region}.prisma.build.

Example:

TypeNameValueTTL
CNAMEshopswitchboard.fra.prisma.build300

3. Wait for DNS propagation

Verify using:

bunx @prisma/cli@latest app domain wait shop.acme.com --app web

wait polls until the domain is active, up to 15 minutes. For a single status check, use --timeout 0:

bunx @prisma/cli@latest app domain wait shop.acme.com --app web --timeout 0 --json

In --json mode, wait streams newline-delimited status events, so an agent can track provisioning as it progresses.

Remove a domain

bunx @prisma/cli@latest app domain remove shop.acme.com --app web

Removing detaches the domain from the app; pass --yes to skip the confirmation prompt. Prisma can't touch your DNS, so the CNAME record stays behind: delete it at your provider once you no longer need it.

States

A domain moves through these states:

StatusMeaning
pending_dnsWaiting for your CNAME record to be visible
verifyingDNS found; ownership and routing are being verified
provisioning_tlsThe TLS certificate is being issued
activeThe domain is fully provisioned and routing traffic to your app
failedRegistration or provisioning failed; see the failure reason

Limits

  • Custom domains are only available on production apps.
  • DNS uses CNAME records.
  • Up to 3 custom domains per app; more returns DOMAIN_QUOTA_EXCEEDED.
  • There's no workspace-wide domain list in the CLI.

Troubleshooting

bunx @prisma/cli@latest app domain show shop.acme.com --app web
bunx @prisma/cli@latest app domain retry shop.acme.com --app web

show gives you the exact state, certificate details, and any DNS hints. retry restarts stuck provisioning; if a domain isn't in a retryable state, it returns DOMAIN_RETRY_NOT_ELIGIBLE.

Next steps

On this page