Introduction
What Connect Domain is, the connect → secure → serve → monitor loop, and where to go next.
Open-source custom-domain onboarding for multi-tenant SaaS — DNS auto-configuration, automatic SSL, and a reverse proxy, in one self-hostable stack. It's an open alternative to Entri: let your customers point their own domain at your product in minutes, with a drop-in widget and a REST API.
What it does
- Connect — a customer enters their domain; the system detects their DNS provider and either writes the records automatically (delegated credential) or hands them exact records to add, then watches propagation.
- Secure — the edge issues a TLS certificate on demand during the handshake, but only for hostnames you've authorized.
- Serve — the edge reverse-proxies the custom domain to your origin.
- Monitor — webhooks, a developer console, usage metering, and drift detection keep you informed after go-live.
The two planes
The system is two independent planes that share one database and talk over HTTP:
- Connect plane (the control-plane) — the REST API, ownership verification, DNS auto-write, quotas, webhooks, and background workers.
- Edge plane — on-demand TLS termination + reverse proxy, gated by a single
internal
askcall to the control-plane.
See Concepts for the full model and Self-hosting for how to run both planes.
Start here
| If you want to… | Read |
|---|---|
| Connect your first domain end to end | Quickstart |
| Understand connections, ownership, and states | Concepts |
| Authenticate API calls and the widget | Authentication |
| Embed the connect modal | The widget SDK |
| Set up email (MX/SPF/DKIM/DMARC) | Email DNS |
| Call the API | API Reference |
| React to events | Webhooks |
| See which DNS providers auto-configure | DNS providers |
| Run the stack yourself | Self-hosting |
| Understand the security model | Security |
| Configure plans and quotas | Billing & Quotas |
| Look up enums, env vars, error codes | Reference |
| Fix a stuck connection | Troubleshooting |
For AI agents
A machine-readable index of this documentation is at
/docs/llms.txt, with a full-text version at
/docs/llms-full.txt. Every page is also available as
raw Markdown at /llms/<page-slug>.