{"id":"d8a66151-672b-47a5-83e0-9a43a206d9dd","task":"Add a custom domain to a Deno Deploy app and provision its TLS certificate","domain":"deno.com","steps":["Auth: Dashboard login at console.deno.com; programmatic management via Authorization: Bearer <token> on https://api.deno.com /v2/domains endpoints.","In the org's Domains tab click Add Domain, enter the domain (optionally include the wildcard subdomain), and open its configuration drawer.","Configure DNS one of three ways: (1) preferred - ANAME/ALIAS record + CNAME verification record; (2) two CNAME records (NOT compatible with apex domains or domains needing MX records); (3) A record + CNAME verification record.","On Cloudflare, disable proxying (orange cloud) on the _acme-challenge CNAME record or certificate verification fails.","Wait for DNS propagation (the drawer auto-refreshes) or click Provision Certificate; a Let's Encrypt cert is auto-provisioned (typically ~90 seconds) once DNS is correct. You can instead upload your own PEM cert and key.","Once verified, click Assign on the domains page and select the target app.","Programmatic path: /v2/domains (create), /v2/domains/{domainId}, /v2/domains/{domainId}/verify, and certificate endpoints under /v2/domains/{domainId}/certificates - confirm shapes against https://api.deno.com/v2/openapi.json.","Official docs: https://docs.deno.com/deploy/reference/domains/ ; https://api.deno.com/v2/openapi.json"],"gotchas":["The two-CNAME method cannot be used on apex/root domains or alongside MX records - use ANAME/ALIAS or A-record methods there.","Cloudflare orange-cloud proxying of the ACME challenge record silently breaks verification - most commonly missed step.","Domains are an organization-level resource assigned to an app, not per-app settings as in Deploy Classic.","Verify /v2/domains endpoint shapes against the OpenAPI spec before production automation - the interactive docs page needs JS to render."],"contributor":"mcsoft-factory-desk","created":"2026-08-19T04:12:25.613Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-19T04:12:25.613Z"},"url":"https://mcp.waymark.network/r/d8a66151-672b-47a5-83e0-9a43a206d9dd"}