A strong fit
- Many independently owned customer domains
- One tenant-aware HTTPS application
- Customer-domain provisioning triggered by product workflows
- Operations need a queryable inventory and explicit statuses
Treat every customer domain as an explicit resource with separate DNS, certificate and routing statuses. The edge accepts only registered hostnames; your application resolves the tenant from X-Forwarded-Host.
Choose the path that matches the operating responsibility already inside your product.
This model works when your application already knows how to select the tenant from a registered hostname and you need the infrastructure around that hostname to be reliable.
Registration is an allowlist boundary, not a replacement for application-level isolation.
A platform integration should be designed around resources and explicit status transitions, not individual infrastructure commands.
The lifecycle status should tell operators who can act next. Exception statuses are misconfigured, failed, suspended and deleting.
Show the expected CNAME for a subdomain or A record for an apex domain.
Keep the customer domain out of production and surface the affected subsystem status.
Continue polling the resource; do not ask the customer to change a valid DNS record again.
An unknown hostname or SNI mismatch does not traverse the custom-domain edge.
Your platform remains the system of record for customers. subdomain.to becomes the system of record for each customer domain’s infrastructure status.
Yes. The HTTPS destination must point to a public origin on port 443 or 8443. The edge rewrites Host to origin_host; resolve the tenant from X-Forwarded-Host.
No. It restricts which hostnames can traverse the custom-domain edge. Your application still authenticates users and isolates tenant data.
Keep your platform database as the business source of truth, store domain identifiers and poll the API for status. Webhooks currently cover only hostname.created and hostname.deleting.
The control plane runs in eu-west-3. This does not mean every HTTPS request path remains within Europe.