> **Building with AI coding agents?** If you're using an AI coding agent, install the official Scalekit plugin. It gives your agent full awareness of the Scalekit API — reducing hallucinations and enabling faster, more accurate code generation.
>
> - **Claude Code**: `/plugin marketplace add scalekit-inc/claude-code-authstack` then `/plugin install <auth-type>@scalekit-auth-stack`
> - **GitHub Copilot CLI**: `copilot plugin marketplace add scalekit-inc/github-copilot-authstack` then `copilot plugin install <auth-type>@scalekit-auth-stack`
> - **Codex**: run the bash installer, restart, then open Plugin Directory and enable `<auth-type>`
> - **Skills CLI** (Windsurf, Cline, 40+ agents): `npx skills add scalekit-inc/skills --list` then `--skill <skill-name>`
>
> `<auth-type>` / `<skill-name>`: `agent-auth`, `full-stack-auth`, `mcp-auth`, `modular-sso`, `modular-scim` — [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Domain Customization

Custom domains enable you to offer a fully branded experience. By default, Scalekit assigns a unique endpoint URL, but you can replace it via CNAME configuration. The custom domain also applies to the authorization server URL shown on the OAuth consent screen during MCP authentication — users will see your branded domain instead of the auto-generated `yourapp-xxxx.scalekit.com`.

| Before | After |
|--------|-------|
| `https://yourapp.scalekit.com` | `https://auth.yourapp.com` |

- **Environment:** CNAME configuration is available only for production environments
- **SSL:** After successful CNAME configuration, an SSL certificate for your custom domain is automatically provisioned

## Set up your custom domain

![](@/assets/docs/guides/custom-domains/1.png)

To set up your custom domain:

1. Go to your domain's DNS registrar
2. Add a new record to your DNS settings and select **CNAME** as the record type
3. Switch to production environment in the Scalekit dashboard
4. Copy the **Name** (your desired subdomain) from the Scalekit dashboard > Settings > Custom domains and paste it into the **Name/Label/Host** field in your DNS registrar
5. Copy the **Value** from the Scalekit dashboard > Settings > Custom domains and paste it into the **Destination/Target/Value** field in your DNS registrar
6. Save the record in your DNS registrar
7. In the Scalekit dashboard, click **Verify**
CNAME record changes can take up to 72 hours to propagate, although they typically happen much sooner.

## Troubleshoot CNAME verification

If there are any issues during the CNAME verification step:

- Double-check your DNS configuration to ensure all values are correctly entered
- Once the CNAME changes take effect, Scalekit will automatically provision an SSL certificate for your custom domain. This process can take up to 24 hours

You can click on the **Check** button in the Scalekit dashboard to verify SSL certification status. If SSL provisioning takes longer than 24 hours, please contact us at <a href="mailto:support@scalekit.com" target="_blank">support@scalekit.com</a>

## DNS registrar guides

For detailed instructions on adding a CNAME record in specific registrars:

- <a href="https://www.godaddy.com/en-in/help/add-a-cname-record-19236" target="_blank">GoDaddy: Add a CNAME record</a>
- <a href="https://www.namecheap.com/support/knowledgebase/article.aspx/9646/2237/how-to-create-a-cname-record-for-your-domain" target="_blank">Namecheap: How to create a CNAME record</a>

---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
