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

# Custom Domains

> Learn how to connect your own domain name to your published Replit app.

Custom domains let you assign your domain name, such as `www.my-incredible-app.com` to your Replit published app.
While Replit provides a free subdomain in the format `<your-live-app-subdomain-name>.replit.app`, using
a custom domain lets you create a more memorable address.

A custom domain name can help brand recognition and trust with your app's users.

Watch the following video for a quick overview of setting up Custom Domains:

<Frame>
  <iframe src="https://www.youtube.com/embed/rGYdyb58wJY" title="Custom Domains with Publishing" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen />
</Frame>

## Connect a domain with automatic setup

The simplest way to connect a domain is to let Replit set it up for you. When you link a domain you already own, Replit configures the required DNS records on your behalf. You no longer have to copy records into your domain provider by hand.

<Note>
  DNS records are the settings that tell the internet where your domain should point. Setting them up by hand used to be the trickiest part of connecting a domain. Replit now handles this step for you for most domains and providers.
</Note>

<Steps>
  <Step title="Open the Publishing tool">
    After publishing your app, open the <img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/deploy-icon.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=853c5ef39a8a7ac3648b3a2ce182fcb8" width="16" height="16" data-path="images/icons/deploy-icon.svg" /> **Publishing** tool and select the **Domains** tab.
  </Step>

  <Step title="Enter the domain you want to connect">
    Select **Link a domain** and enter a domain you already own, such as `www.my-incredible-app.com`.
  </Step>

  <Step title="Confirm and let Replit set up your DNS">
    Confirm the connection, and Replit sets up the DNS records for you. You may be asked to sign in to your domain provider so the change can be applied to your account.
  </Step>

  <Step title="Wait for your domain to verify">
    Your domain shows a **Verified** status once setup completes. This usually takes a few minutes. Load the domain in your browser to confirm it works.
  </Step>
</Steps>

<Tip>
  If your provider is not supported for automatic setup, or you prefer to add the records yourself, you can still connect your domain manually. See [Connect a domain manually](#connect-a-domain-manually) below.
</Tip>

## Features

Custom Domains are available for the following Deployment types:

* [Autoscale](/references/publishing/autoscale-deployments/)
* [Reserved VM](/references/publishing/reserved-vm-deployments/)
* [Static](/references/publishing/static-deployments/)

The following table compares Replit's subdomains with custom domains:

| Feature                         | Replit Subdomain   | Custom Domain            |
| :------------------------------ | :----------------- | :----------------------- |
| Hostname customization          | Subdomain only     | Any domain that you own  |
| DNS update time                 | Instant            | Up to 48 hours           |
| Security Certificates (TLS/SSL) | Provided by Replit | Provided by Replit       |
| Price                           | Free               | Pay your domain provider |

## Usage

<Accordion title="How to access Custom Domains">
  1. After publishing your app, open the <img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/deploy-icon.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=853c5ef39a8a7ac3648b3a2ce182fcb8" width="16" height="16" data-path="images/icons/deploy-icon.svg" /> **Publishing** tool.
  2. Select the **Domains** tab.
  3. Select **Link a domain** or **Manually connect from another registrar** as shown in the following screenshot.

  <Frame>
    <img src="https://mintcdn.com/replit/jSmYU1wBTvl8UMyc/images/deployments/custom-domains/01.png?fit=max&auto=format&n=jSmYU1wBTvl8UMyc&q=85&s=5dc58a0cab37877093e55c9a2b3b1367" alt="Domains tab" width="2422" height="1130" data-path="images/deployments/custom-domains/01.png" />
  </Frame>
</Accordion>

## Connect a domain manually

If your provider is not supported for automatic setup, or you prefer to add the records yourself, follow the steps below to set up your custom domain manually.

<Warning>
  You might experience setup issues if you have one of the following: - Multiple
  `A` records for the same domain name that point to different servers. - `A`
  and `AAAA` records co-exist for the same domain since Replit only supports `A`
  records. - Cloudflare proxied domain records since Replit cannot automatically
  renew security certificates for that type.
</Warning>

<Steps>
  <Step title="Add your custom domain">
    Enter your custom domain name in the text field. You can use a registered domain or include a subdomain.

    For example, `hat-tip.cc` is the registered domain and `my.hat-tip.cc` includes subdomain `my`.

    <Frame>
      <img src="https://mintcdn.com/replit/jSmYU1wBTvl8UMyc/images/deployments/custom-domains/02.png?fit=max&auto=format&n=jSmYU1wBTvl8UMyc&q=85&s=38485a8680fe6ae256ec2d7b0665a784" alt="screenshot of the DNS settings" width="1940" height="718" data-path="images/deployments/custom-domains/02.png" />
    </Frame>
  </Step>

  <Step title="Add the DNS records to your domain registrar">
    Replit generates DNS records that you must provide to your **domain registrar**.
    A domain registrar is the service that manages your domain name, such as GoDaddy or Namecheap.

    Copy the `A` and `TXT` record values from Replit and paste them into your domain registrar's
    DNS management section. If your domain registrar does not support `@` as a hostname, use your registered domain name.
  </Step>

  <Step title="Optional: Add a subdomain">
    To add a subdomain to your published app, add a new `A` record with the same IP address
    in your provider's DNS management section.
    For example, if you want to add `my-subdomain.hat-tip.cc`, you must:

    * Copy the `A` and `TXT` record values from Replit to your registrar
    * Add a new `A` record with a hostname value of `my-subdomain` using the same IP address as your primary domain
  </Step>

  <Step title="Wait for DNS propagation to complete">
    After adding the records, you must wait for them to propagate online.
    This can take between a few minutes and 48 hours.

    When the propagation completes, your Domains tab should show the "Verified" status next to the domain name as shown below:

    <Frame>
      <img src="https://mintcdn.com/replit/jSmYU1wBTvl8UMyc/images/deployments/custom-domains/domain-verified.png?fit=max&auto=format&n=jSmYU1wBTvl8UMyc&q=85&s=fe5c99d84ff0334119d2e94b2f07c99a" alt="screenshot of the verified domain status" width="1866" height="890" data-path="images/deployments/custom-domains/domain-verified.png" />
    </Frame>

    Load the domain in your browser to verify that it works.
  </Step>
</Steps>
