Embedded onboarding

Custom domains,
inside your product.

Give customers DNS instructions and live HTTPS status without exposing your API key or rebuilding the lifecycle UI.

30-minute tokenOrigin allowlistNo browser API key
Try the real component

One component, all three steps.

This demonstration uses the same Web Component customers embed. Demo mode is local and never creates a domain.

  • 01Enter the customer hostname
  • 02Copy the DNS records
  • 03See HTTPS become active
Two server calls

Your API key never reaches the browser.

Your backend creates a short-lived session restricted to the customer and browser origin. The widget then creates and follows only the domain bound to that session.

Browser
<script type="module"
  src="https://cdn.subdomain.to/widget/v1/subdomain-widget.js">
</script>

<subdomain-to-widget
  token="WIDGET_SESSION_TOKEN"
  api-base="https://api.subdomain.to">
</subdomain-to-widget>
Designed for embedding

A narrow browser capability.

Can the widget access other customer domains?

No. Created domains are bound to the signed widget session that created them.

Can I match my product theme?

Yes. Set the documented CSS custom properties on the component without reaching into its shadow DOM.

Does it support French?

Yes. English is the default; add lang="fr" for French.

What happens when the token expires?

The widget stops polling and emits a structured subdomain-to:error event.

Choose the integration boundary

Embed the flow or keep the UI in your application.

The widget is the shortest browser path. The API keeps every screen and transition in your product while preserving the same domain lifecycle.