Connect customer domains from your product
Give Domain0 the DNS records your product needs. Your customer gets a guided provider connection flow.
Your product already knows which DNS records a customer domain needs. Create a connection with that domain and those records, then open Domain0 Connect. Your customer chooses their provider, authorizes the change, reviews it, and sees when the domain is ready.
Quickstart
Pass a domain and DNS records, then open the customer flow.
Connect dialog
Embed and customize the flow your customer sees.
DNS records
Define supported DNS records with validated fields.
Next.js guide
Use the recommended server and browser integration.
Troubleshooting
Resolve authorization, provider, and propagation problems.
Go live
Test the complete customer connection path before production.
You define the DNS intent
DNS records come from your application code. Domain0 Connect never asks your customer to invent a host, record type, value, TTL, or priority.
const { connection } = await domain0Platform.createConnection({
intent: {
domain: 'customer.example',
records: [
{ host: '@', type: 'A', value: '192.0.2.10', ttl: 300 },
{ host: 'www', type: 'CNAME', value: 'edge.your-product.com', ttl: 300 },
],
},
})The embedded flow reads this saved intent and owns provider detection, authorization, change review, application, and propagation checks.
What your customer sees
- Their domain and the exact changes requested by your product.
- Automatic DNS provider detection with a provider picker fallback.
- Provider authorization when an automatic connection is available.
- A review step before Domain0 writes any DNS change.
- Guided provider-specific instructions when automatic setup is unavailable.
- A verified success state only after the records are visible in DNS.
Your API key stays on your server
The browser receives short-lived access to one connection. It never receives your Domain0 API key.
Choose your integration
| Application | Start here |
|---|---|
| Next.js App Router | Complete Next.js guide |
| React with any backend | React integration |
| Framework-free browser UI | Vanilla JavaScript integration |
| Other backend languages | Server HTTP API |
All browser integrations use the same trust boundary: your server creates the connection and issues exact-origin access, then the browser opens that saved connection through Domain0 Connect.