The custom-domain layer for SaaS

Custom domains,
without the infrastructure.

Your customers connect portal.client.com. We handle DNS verification, certificates and HTTPS routing to your application.

Free for now · Set up in minutes

Live domain simulator Live
https://

Try the complete domain lifecycle.

01
Customer domainportal.acme.eu
DNS verified
HTTPS
subdomain.to edgeTLS active
Routing
443
03
Your destinationapp.yoursaas.com
200 OK
Certificate renews automatically Last checked just now
One continuous lifecycle

From a DNS record
to a live route.

One path, observable end to end. Your customer sees a simple instruction while the infrastructure keeps moving.

  1. 01
    Verify DNSOwnership confirmed
  2. 02
    Issue TLSCertificate managed
  3. 03
    Route HTTPSRegistered hostnames only
  4. 04
    Operate in EuropeLifecycle statuses
01

Add the customer’s domain.

Create it from the dashboard, the API or an embedded flow in your product.

Input
Dashboard · REST API
State
Pending DNS
Returns
Exact CNAME record
02

Show one DNS record.

Your customer adds the record at their DNS provider. We detect it automatically and report a precise status.

Check
Automatic
State
DNS verified
Status
dns_status: valid
03

Serve it over HTTPS.

Once DNS is valid, we provision TLS and activate the route. Certificates renew without intervention.

TLS
Managed + renewed
Route
Strict host match
Status
Poll domain resource
subdomain.to
DOMAIN ROUTING

Customer domains

Connect customer-owned domains to your application.

1Configure your destinationhttps://app.acme.euReady
2Connect a customer domainAdd it from the dashboard or API24 routes
Customer domainsOnly registered hostnames can reach your application.24 domains
DomainDestinationDNSTLSRoute
Aportal.acme.euapp.acme.euVerifiedIssuedLive
Ncloud.northstar.ioapp.northstar.ioVerifiedIssuedLive
Mworkspace.meridian.frconsole.meridian.frCheckingWaitingWaiting
A faithful preview of the customer domains dashboard.

One endpoint. Every stack.

Create the customer domain and receive the exact DNS instruction in the same response. Idempotency and lifecycle states are built in.

Open the API guide
server.js

$ npm install @subdomainto/node

const domain = await client.domains.create(
  'portal.acme.eu',
  'acme-portal',
  { destinationId: 'dst_main' }
);
Returns DNS instructions immediately
201 CREATEDIdempotent write
{
  "hostname": "portal.acme.eu",
  "status": "pending_dns",
  "dns_records": [{
    "type": "CNAME",
    "value": "in.subdomain.to"
  }]
}

Infrastructure included

The difficult parts stay behind the API.

01

Certificate lifecycle

Issuance, secure storage and renewals are handled automatically.

02

Strict hostname routing

Only registered hostnames reach your HTTPS destination.

03

Operational visibility

See DNS, certificate and routing statuses separately—in the UI or API.

04

European control plane

Domain metadata and certificate operations stay in Europe.