> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rork.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom domains: put your Rork web app on your own domain

> Connect a domain you own or buy a new one, and Rork sets up DNS and HTTPS for your published web app. Covers subdomains, statuses, notifications, Cloudflare DNS, CAA records, and removing a domain.

A published Rork web app lives at its own address on `rork.app`. A custom domain puts the same app on a name you choose, like `ember-roast.com`. Connect a domain you already own, or buy a new one inside Rork. Rork sets up the DNS records and the HTTPS certificate for you. The `rork.app` address keeps working next to the custom domain.

Custom domains are for [web apps](https://docs.rork.com/web/rork-web.md). iPhone and Android apps go through the App Store and Google Play instead. See what Rork builds for the browser on the [Rork Web page](https://rork.com/web?utm_source=docs\&utm_medium=referral\&utm_campaign=docs-cta\&utm_content=custom-domains).

## What you need

* **A published web app.** Open **Publish**, then press **Publish to web**. Until the first publish, the custom domain row is off and the panel says "Publish the project first to add a custom domain."
* **A Rork subscription.** Adding a domain, finishing its setup, and connecting it to a project need an active paid subscription. Without one, Rork opens the plans with the title **Subscribe to use custom domains**.
* **The project's creator.** Only the person who created the project can add a domain to it or connect one. Collaborators see the domains, with the note "Only the project creator can add custom domains."
* **A domain.** Bring one from any registrar, or buy a new one in the setup window.

> [!NOTE]
>
> If your subscription ends, the domains you already connected keep working. You can still see them, check them, disconnect them, and remove them. You cannot add or connect new ones until you subscribe again.

## Where domains live

Domains belong to your account, not to one project. One panel manages them, and you reach it from two places:

* **Settings → Domains.** Open the account menu, press **Settings**, then **Domains**. This lists every domain on your account.
* **Publish → Add a custom domain**, inside a project. The same panel opens in a dialog called **Custom domains**. What you set up there connects to this project on its own.

![The Domains panel with an Add a new domain card and the domain ember-roast.com, whose two addresses ember-roast.com and www.ember-roast.com are marked Live and In use by Ember Roast Website project](https://mintcdn.com/rork/wAkLTXEkOeCz25CA/images/web/domains-panel.png?fit=max\&auto=format\&n=wAkLTXEkOeCz25CA\&q=85\&s=f2bc6fce3aeb613a443da5c74022f379)

The Domains panel: Add domain on top, then each domain with its addresses and their status.

Each domain is a card. The card lists the domain's addresses, such as `ember-roast.com` and `www.ember-roast.com`. Each address row shows its status and, once connected, which project it serves: **In use by** a project, or **In use by this project** inside that project.

## Connect a domain you own

**1. Open Publish in the project**

Open the project and press **Publish**. If the project has more than one app, select the web app first: the domain row is on the web app's panel.

**2. Press Add a custom domain**

The **Custom domains** dialog opens. Press **Add domain**.

**3. Choose Connect a domain**

Rork hands this step to **Entri**, its domain partner. The first screen asks if you want to buy a new domain or connect one you already own.

![The Entri window titled Add a domain to Rork, offering Buy a new domain and Connect a domain](https://mintcdn.com/rork/VBOo8HIHyb4Wq4jS/images/web/domains-add-fork.png?fit=max\&auto=format\&n=VBOo8HIHyb4Wq4jS\&q=85\&s=ce95ed35956e633afe7a4ea17e0c99ef)

The setup window: buy a new domain, or connect a domain you already own.

**4. Sign in to your DNS provider**

When the window asks, sign in to the company that runs your domain's DNS. Entri writes Rork's records there for you. The setup covers the root domain and `www`.

If your provider does not support automatic setup, the window shows the exact records to add by hand. Add them at your provider. Rork picks them up on its own, and **Check now** on the domain checks sooner.

**5. Wait for Live**

The new addresses connect to the project on their own. Their rows read **Connecting**, then **Securing**, **Finishing**, and **Live**. This usually takes a few minutes. You do not need to keep the page open.

You can also start from **Settings → Domains**. Then the addresses show as **Available** until you connect them to a project. See [Connect an address to a project](#connect-an-address-to-a-project).

## Buy a new domain

Press **Add domain**, then choose **Buy a new domain**. Search for a name and buy it in the same window.

* The domain is registered with **GoDaddy, in your own name**. Rork is not the registrar and does not bill you for the domain.
* Right after checkout, the window can show the records to add by hand. The new domain's DNS can take a few minutes to become available. Add the records, or wait and press **Check now** on the domain.
* A new domain can take a few hours to activate. When it is ready, Rork sends a **Your domain is ready** notice. Connect it to a project from that project's **Publish** panel.

Billing, renewals, renewal reminders, WHOIS and contact details, and transfers stay with GoDaddy. Ask [GoDaddy support](https://www.godaddy.com/help) about them. Rork handles the DNS records the setup wrote and the hosting. If a bought domain stops working near its renewal date, check its registration at GoDaddy first.

## Add a subdomain

A domain starts with the root and `www`. To add another address, like `app.ember-roast.com`:

**1. Press Add a subdomain**

The row sits at the bottom of the domain's card. It reads **Add more subdomains** once the domain has an address. It appears after the domain is verified.

**2. Type the subdomain**

Type only the first part, like `app`, then press **Continue**.

**3. Finish the setup window**

The setup window opens for that one address. It writes the subdomain's record and leaves the domain's other records alone, so a site on the root keeps working.

Rork supports the root domain and one level of subdomain. `app.ember-roast.com` works. `beta.app.ember-roast.com` and wildcards like `*.ember-roast.com` do not.

## Connect an address to a project

An address on your account serves nothing until it connects to a project. An address that is set up but not connected reads **Available**. Until you connect it, visitors see Rork's "app could not be found" page.

* **Set up from inside the project.** New addresses connect to this project on their own. There is nothing to press.
* **Set up earlier, or in Settings.** Open **Publish → Add a custom domain** in the project. On the **Available** row, press **Connect to this project**.

If the project has more than one website, Rork asks **Choose a website** and lists them. Only a published website can serve a domain.

Connecting changes no DNS, so it takes effect right away. Moving an address to another project is just as fast: press **Disconnect** on it, then connect it in the other project.

One address serves one project. An address that another project uses reads **In use by** that project, and has no **Connect to this project** button. Disconnect it there first, or add a subdomain for the second project.

After you close the dialog, the connected addresses sit under the `rork.app` address in the **Publish** panel, each with its status. The icon on the row, **Manage**, opens its **Setup and status**. The last row now reads **Add more custom domains**.

![The publish panel showing the rork.app address and two custom addresses all marked Live, an Add more custom domains row, the note An older version is live, and Publish latest version and Unpublish buttons](https://mintcdn.com/rork/W3UN2c4Ua2vl1tou/images/web/publish-custom-domains.png?fit=max\&auto=format\&n=W3UN2c4Ua2vl1tou\&q=85\&s=119d57c3faabfea3f3295c271f8b4159)

The Publish panel with two custom addresses live. This project also has a newer version waiting to go out.

## Check the setup and status

Every address has a **Setup and status** view. In the domains list, press the chevron on the row. In the **Publish** panel, press **Manage** on the row.

![The Custom domains dialog with ember-roast.com expanded, showing Certificate issued by Google Trust Services, DNS pointing at Rork, Traffic routed to your app, and a Check now button](https://mintcdn.com/rork/W3UN2c4Ua2vl1tou/images/web/custom-domains-dialog.png?fit=max\&auto=format\&n=W3UN2c4Ua2vl1tou\&q=85\&s=539a1c356d8179412244b45b4fc5ea2f)

Setup and status, unfolded for one address in the Custom domains dialog.

The view has three lines:

| Line | What it tells you |
| - | - |
| **Certificate** | Who issued the HTTPS certificate, and that Rork renews it. |
| **DNS** | If a live DNS lookup finds the address pointing at Rork. |
| **Traffic** | If requests to the address reach your published site. |

When something needs a fix at your DNS provider, the view shows the exact records to add, keep, or replace, with copy buttons. Press **Check now** after you change them.

> [!NOTE]
>
> Rork never removes records at your DNS provider. Disconnecting or removing an address only changes what Rork serves.

## What each status means

| Status | What it means | What to do |
| - | - | - |
| **Available** | Set up, not connected to a project yet. | Connect it in a project. |
| **Connecting** | Rork is attaching the address to this project. | Nothing. |
| **Securing** | Rork is issuing the HTTPS certificate. | Nothing. |
| **Propagating** | The records are written but not visible everywhere yet. | Nothing. Usually a few minutes. |
| **Finishing** | All checks passed. Rork is routing traffic to the app. | Nothing. |
| **Live** | The address serves your published site. | Nothing. |
| **Live via proxy** | The site works, but a proxy hides the DNS records. | Optional: set the record to **DNS only**. See [Cloudflare DNS](#if-your-dns-is-at-cloudflare). |
| **Site offline** | The project is not published. The connection is kept. | Publish again. |
| **DNS moved** | The DNS no longer points at Rork. | Add back the record shown in **Setup and status**, then **Check now**. |
| **DNS conflict** | Other records also send the address somewhere else. | See [Fix a DNS conflict](#fix-a-dns-conflict). |
| **Taking longer** | The certificate is still missing after a day. | Follow the **Certificate** line, or [contact support](https://docs.rork.com/faq/support.md). |
| **Incomplete** | Setup stopped before the address was fully registered. | Press **Retry setup** in **Setup and status**, or **Check now** on the domain. |
| **Needs review** | The address needs a manual review. | [Contact support](https://docs.rork.com/faq/support.md). |
| **Error** | The last step failed. | Retry it. Contact support if it keeps failing. |

Hover over a status to read the same explanation in the product.

## If the setup does not finish

The setup window can close before it is done: you close it, your provider needs manual records, or the records are still spreading. The domain then stays in the list, not verified yet, and its card says what Rork waits for. Rork keeps checking it on its own for seven days, so records you add later by hand finish without you coming back.

Two buttons on the domain card speed this up:

* **Check now** checks the records right away.
* **Finish setup** opens the setup window again to write the records.

If the window says the domain is registered to another Rork account, that account verified it first. [Contact support](https://docs.rork.com/faq/support.md) to move it. If the other account started but never finished, the domain goes to the account whose DNS has Rork's verification record.

## HTTPS

Rork issues an HTTPS certificate for every connected address, and renews it, at no extra cost. You never upload, buy, or renew a certificate. A certificate from your registrar or your old host is not used.

The setup records are enough for the certificate, so there is usually nothing to add. Three cases need a change at your DNS provider. **Setup and status** says which one applies.

### Fix a DNS conflict

The address shows **DNS conflict** when other records send it to a second service. This usually comes from a parked page, domain forwarding, or a website builder at the registrar. It is common on GoDaddy.

1. Keep the records shown in **Setup and status**.
2. Delete the other A and AAAA records for the address, or turn off the parking, forwarding, or website builder.
3. Press **Check now**.

For `www`, the view can show one CNAME record to set instead. Do not delete MX (mail) or TXT records. They are not part of the problem.

### Allow the certificate authorities in CAA

A CAA record limits which companies can issue certificates for your domain. If it blocks issuance, the **Certificate** line reads **Blocked by the domain's CAA policy**. Allow all three of these in the domain's CAA records, then check again:

* Google Trust Services: `pki.goog`
* Let's Encrypt: `letsencrypt.org`
* SSL.com: `ssl.com`

All three are needed, because the certificate can come from any of them. CAA records on a domain your address points to through a CNAME count too.

### Add a validation record

In rare cases the certificate needs its own validation record. **Setup and status** shows the exact record to copy.

## If your DNS is at Cloudflare

Keep the records the setup wrote as **DNS only** (the grey cloud). If you turn on the proxy (the orange cloud) after the address is live, the site still works. The row then reads **Live via proxy**, and Rork can only check that visitors reach the site, not the records. Set the record back to **DNS only** for full monitoring.

Do not put another CDN in front of the address.

## Notifications

Rork tells the domain owner when something changes. The notices appear in the notification center. Collaborators do not get them.

| Notice | When | Action |
| - | - | - |
| **Your domain is ready** | A domain finished setting up after you left, often a new purchase. | **View domains** |
| **Your domain is live!** | The address serves your app. | **Domain settings** |
| **Domain DNS changed** | The address no longer points at Rork. | **Check DNS** |
| **DNS is back on track** | The address points at Rork again. | **Domain settings** |
| **HTTPS certificate blocked** | A CAA record blocks the certificate. | **Fix DNS** |
| **Domain also points elsewhere** | Extra records keep the certificate from being issued. | **Fix DNS** |

Every notice except **DNS is back on track** also comes by email, if your account email notifications are on. Turning off emails does not turn off the in-app notices. The two certificate problems repeat in the app at most once a day, and by email at most once every 30 days per address.

Check the current status before you act on an older notice. Rork reports DNS changes. It does not restore records that someone changed at your provider.

## Unpublish, disconnect, or remove

* **Unpublish the project.** Its addresses read **Site offline**. The connection is kept, and the addresses come back the next time you publish.
* **Disconnect an address.** It stops serving the project right away. It stays reserved for your account, ready to connect again.
* **Remove an address.** Disconnect it first. Removing discards its HTTPS certificate, and the address is no longer reserved for your account.
* **Remove a domain.** Press the bin on the domain's card. If its addresses still serve projects, the confirm lists them, each with its own **Disconnect** button. **Remove domain** unlocks once every one is disconnected. Nothing is disconnected for you.

Removing deletes the domain from Rork only. The records the setup wrote stay at your provider, and you can delete them there when you no longer need them. If you add the same domain again later, the setup writes a fresh verification record. Old `_rork` values left at your provider do no harm, and you can delete them or leave them.

## What custom domains cannot do

* Only the root domain and one level of subdomain. No wildcards, and no deeper subdomains like `beta.app.ember-roast.com`.
* One address serves one project.
* No other CDN in front of the address.
* IP addresses and domains Rork itself runs, like `rork.app`, cannot be added.
* A domain verified by another Rork account cannot be added until support moves it.
* Rork does not restore DNS records that change at your provider. It tells you, and you add them back.

## FAQ

> [accordion] Does my rork.app address keep working?
>
> Yes. The custom domain serves the same published app, and the `rork.app` address stays live next to it.

> [accordion] What does a custom domain cost?
>
> Adding and connecting domains needs a Rork subscription. The HTTPS certificate costs nothing extra. A domain you buy in the setup window is billed by GoDaddy, not by Rork.

> [accordion] Can two projects use the same address?
>
> No. An address serves one project. Add a subdomain, like `app.ember-roast.com`, for the second project.

> [accordion] Will the setup touch my email records?
>
> The setup adds Rork's records for the website. Rork never removes records at your provider. When you fix a DNS conflict, delete only the extra A and AAAA records, never MX or TXT.

> [accordion] The address shows Propagating for a long time. Is something wrong?
>
> Most DNS providers publish changes within minutes. Some take up to a day. Rork keeps checking on its own. Open **Setup and status** to see which records it still waits for.

> [accordion] I published a new version. Do I have to reconnect the domain?
>
> No. The domain always serves the latest published version. Publish again from the **Publish** panel, and the domain follows.

## Next steps

> [card] [Web apps](https://docs.rork.com/web/rork-web.md)
>
> Build, preview, and publish a web app with Rork.

> [card] [Add another platform](https://docs.rork.com/import/convert-between-platforms.md)
>
> Grow the web app into iPhone and Android apps.

> [card] [Add a backend](https://docs.rork.com/backend/rork-cloud.md)
>
> Accounts, data, and files for your web app.

> [card] [Get support](https://docs.rork.com/faq/support.md)
>
> Reach the Rork team when a domain is stuck.

Build your app with Rork today.

Ship iOS, Android, and web apps by chatting with AI.

[Try Rork for Free](https://rork.com?utm_source=docs\&utm_medium=referral\&utm_campaign=docs-cta\&utm_content=cta-banner)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.