# Connect a domain you own

> Point a domain you bought elsewhere at your Playcode site.
> Source: https://playcode.io/docs/publish/connect-a-domain - last reviewed 2026-10-09.
> Ask Playcode's agent: "Connect example.com to this project." It connects the domain and tells you the one setting to add at your provider.

Point a domain you bought elsewhere at your Playcode site. You change one setting at your DNS provider, or let Playcode run the domain's DNS. HTTPS turns on by itself.

## Do it yourself

1. Publish your project, open **Publish** and choose **Give it its own address**.
2. Choose **I already own an address**, type the name, for example `example.com`, and choose **Continue**.
3. Pick one of the ways Playcode shows. The first one is its pick for your provider.
4. Add the setting at your DNS provider exactly as shown. **Name** and **Value** each have a copy button.

> [!NOTE]
> A change at a DNS provider usually reaches Playcode in minutes, sometimes up to a day.

5. Choose **Check now**, or leave the window open. Playcode checks every minute and turns on HTTPS when it finds the setting. The window then shows **Live and secure**. For a Cloud app, Playcode also emails you "Your custom domain example.com is live on Playcode".

> [!COST]
> Custom domains need a Pro or Max plan. Connecting a domain you own adds no charge.

The setting you add depends on the project and the name. Copy the value from the card; it can change between projects and regions.

| Project and name | Type | Name |
|---|---|---|
| Static site, any name | A | `@` for `example.com`, or the label, like `shop` |
| Cloud app, a name like `shop.example.com` | CNAME | `shop`, or the full name, as the card shows |
| Cloud app, `example.com`, DNS not at Cloudflare | A | `@` |
| Cloud app, `example.com`, DNS at Cloudflare | CNAME | `@` |

### If you chose Let Playcode handle everything

This way moves the domain's DNS to Playcode. Your registration and its yearly bill stay where they are.

1. Check the settings Playcode found at your provider. Keep the ones your email and other services need, then choose the copy button. It names the number of settings, like **Copy 7 settings**.
2. At the registrar where you bought the domain, replace every nameserver with the two values Playcode shows. The window says "Paste these two values - both of them".
3. Choose **I've switched them**. Playcode shows what the world reports for each nameserver: **Switched**, **Not seen yet**, or **Still** with your old provider's name, like **Still GoDaddy**. Choose **Check again** to look again.
4. When both are switched, the window shows "Playcode runs example.com now". You then manage the domain's records in **Settings**, **Domains**: see [DNS records](/docs/publish/dns-records).

> [!WARNING]
> Replace all nameservers, not only one. A partial switch leaves your old provider answering for part of the internet.

## If it doesn't work

### It says Not seen yet.

Playcode has not found the setting. Check its Type, Name and Value at your provider, then choose **Check now**.

For a static site, Playcode checks every minute for the first day after you connect the name, then once a day. If you added the setting later than that, choose **Use a different address**, then connect the same name again.

### It says Points elsewhere.

Another record answers for this name. Replace its value with the one Playcode shows. If the card lists **Delete these first at** your provider, delete those records too: they would keep the new one from working.

### This domain is already used in another project.

A name belongs to one project at a time. Remove it from the other project first: open that project's **Settings**, then **Domain & publish**, and choose the remove button beside the name.

### It says Found · securing it, or Verifying.

Playcode found the setting and is getting the certificate for HTTPS. Nothing is wrong. Wait, then open the address again.

### It says Needs attention, or Action needed.

Playcode could not finish. The reason shows under the status. See [My domain does not work](/docs/help/domain-does-not-work) for each reason and its fix.

### The app asks you to upgrade.

Custom domains need a Pro or Max plan. See [Plans](/docs/account-and-billing/plans).

## Limits

- The www address is optional: turn on **Also answer at www.example.com** to add it.
- Settings at another DNS provider are yours to change; the agent tells you what to add.
- Email for this domain is set up separately, under [Add to your app](/docs/add-to-your-app/sending-domain).
- A name can serve one project at a time.
- Under a domain bought at Playcode, or one whose DNS you moved here, you can connect the domain itself and one level below it, like `shop.example.com`.
- Wildcard names, like `*.example.com`, are not offered here. Names with an underscore are refused: no certificate can be issued for them.
- A Cloud app must be published before you can connect a domain to it.
- A domain registered at Cloudflare Registrar cannot move its nameservers away from Cloudflare. Use one of the other ways.
- For a Cloud app, a name like `shop.example.com` whose setting still does not point at Playcode 7 days after you connected it is released. Playcode emails you "example.com is no longer connected to Playcode".
- By default, a workspace can connect up to 5,000 domains to its Cloud apps.
