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

# Custom domain

> Connect your own domain to a Rocket.new app with automatic HTTPS. Rocket can configure DNS automatically for supported providers, or you can add records manually.

export const LlmsDirective = () => <blockquote className="llms-directive">
    For the complete documentation index, see <a href="/llms.txt">llms.txt</a>.
    For a lightweight markdown version of this page, append .md to the URL.
  </blockquote>;

<LlmsDirective />

Connect any domain you own to your Rocket app so it is reachable at your custom address with automatic HTTPS.

If you do not own a domain yet, you can [buy one directly through Rocket](/build/launch-web/buy-domain) (paid plan required).

<Note>
  Connecting a custom domain requires a paid plan (Pro or above). You also need a Rocket task that has been [deployed to the web](/build/launch-web/launch-your-site) and access to your domain provider account.
</Note>

Rocket tries to configure DNS automatically by default. For supported providers, it logs into your domain account with one-time permission and updates the records for you. If automatic setup is not available for your provider or fails, you can fall back to the manual method where Rocket gives you the exact records to add yourself.

<Tabs>
  <Tab title="Web Browser">
    ## Automatic setup (default)

    Rocket uses an automated flow to log in to your domain provider and configure DNS automatically with your permission. This works for supported providers.

    <Steps>
      <Step title="Open the Production tab in the Launch panel">
        Click the **Launch** button in the top-right corner of your project, then click the **Production** tab.

        <Frame caption="Click the Production tab in the Launch panel">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/click-production-light.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=22f50f7921193d406434219d4c27124b" alt="Launch panel with the Production tab selected." className="theme-image light-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/click-production-light.webp" />

          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/click-production-dark.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=6075ebc5811fd18a9fb37727bdfdd490" alt="Launch panel with the Production tab selected." className="theme-image dark-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/click-production-dark.webp" />
        </Frame>
      </Step>

      <Step title="Select a version and enter your domain">
        Choose which version of your app to publish from the version dropdown. Once you select a version, type your domain in the **Custom domain** field (for example, `example.com`) and click **Next**.

        <Frame caption="Select a version from the dropdown">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/select-version-light.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=bf0a8106d67440947c72d6a488c2583d" alt="Version dropdown open in the Launch panel showing available versions." className="theme-image light-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/select-version-light.webp" />

          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/select-version-dark.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=e4e53a4c794860fad104ec5fcf20580b" alt="Version dropdown open in the Launch panel showing available versions." className="theme-image dark-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/select-version-dark.webp" />
        </Frame>

        <Note>
          Once you publish on a version, you can only move forward to newer versions. To go back to an earlier version, you need to unpublish and publish again from that version.
        </Note>

        <Frame caption="Enter your domain and click Next">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/next-click-after-version-light.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=f2520b6026e7be2028da49363e95440c" alt="Launch panel with a version selected and a domain name entered, ready to click Next." className="theme-image light-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/next-click-after-version-light.webp" />

          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/next-click-after-version-dark.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=215ec6794ee864786086fb8736ac864a" alt="Launch panel with a version selected and a domain name entered, ready to click Next." className="theme-image dark-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/next-click-after-version-dark.webp" />
        </Frame>
      </Step>

      <Step title="Set up the Production Environment">
        Rocket prompts you to configure your Production Environment. Click **Setup now** to add any required environment variables. If you have no environment variables to add, click **Skip & continue**.

        <Frame caption="Production Environment setup prompt">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/set-up-now-light.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=e36ae6f004ce84042ffe7e55a9481299" alt="Rocket prompt to set up the Production Environment with Setup now and Skip & continue buttons." className="theme-image light-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/set-up-now-light.webp" />

          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/set-up-now-dark.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=c7cf33aed6a1090d595a7d59e6bfdcd6" alt="Rocket prompt to set up the Production Environment with Setup now and Skip & continue buttons." className="theme-image dark-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/set-up-now-dark.webp" />
        </Frame>
      </Step>

      <Step title="Add environment variables and click Done">
        Add your required environment variables in the Production environment settings, then click **Done** to continue.

        <Frame caption="Add environment variables and click Done">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/click-done-light.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=a4e3e5aa077e37742767cda21788b3c8" alt="Production environment settings with variables added and the Done button highlighted." className="theme-image light-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/click-done-light.webp" />

          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/click-done-dark.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=6277483c41ccb19023cb37939cfff83e" alt="Production environment settings with variables added and the Done button highlighted." className="theme-image dark-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/click-done-dark.webp" />
        </Frame>
      </Step>

      <Step title="Continue with automatic setup">
        Rocket opens a popup explaining that it will configure your domain automatically. Click **Continue**.

        <Frame caption="Automatic setup popup, click Continue">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/continue-auto-setup.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=9686eaaf419e8c5d385f92aca80325ae" alt="Automatic domain configuration popup with Continue button highlighted." className="theme-image" width="1106" height="1100" data-path="images/build-docs/launch-web/custom-domain/web-browser/continue-auto-setup.webp" />
        </Frame>
      </Step>

      <Step title="Authorize with your domain provider">
        Rocket shows a login screen for your domain provider. Enter your credentials and click **Continue** to grant one-time permission to configure DNS.

        <Frame caption="Log in to authorize your domain provider">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/authorize-provider.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=6233815fe17d586b2d45c04f3f8e4b7e" alt="Provider login screen asking for credentials to grant one-time DNS configuration permission." className="theme-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/authorize-provider.webp" />
        </Frame>
      </Step>

      <Step title="Confirm the DNS update">
        Your provider shows the existing DNS records and the new ones Rocket wants to add. Review them and click **Okay, continue** to approve the change.

        <Frame caption="Confirm the DNS records to update">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/confirm-provider.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=9d0071920e4ed04baf6b16d4feb3bae6" alt="Provider confirmation screen showing existing and new DNS records with Okay, continue button." className="theme-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/confirm-provider.webp" />
        </Frame>
      </Step>

      <Step title="Done">
        Your domain is confirmed as configured. Click **Done**. DNS propagation can take up to 48 hours, after which your app is live at your custom domain.

        <Frame caption="Domain configured successfully">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/done-auto.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=8dfe366de3c6567d49c047433bb59306" alt="Success screen showing your domain is now configured with Done button." className="theme-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/done-auto.webp" />
        </Frame>

        Once live, the Launch panel shows your domain URL. You can click it to open your app.

        <Frame caption="Your app is live at your custom domain">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/domain-live-light.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=2beb5e0065406960ba6b3be2ef222147" alt="Launch panel showing the custom domain is live and the URL is active." className="theme-image light-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/domain-live-light.webp" />

          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/domain-live-dark.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=686503cd15ba5a19dbfb69bd23efd21c" alt="Launch panel showing the custom domain is live and the URL is active." className="theme-image dark-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/domain-live-dark.webp" />
        </Frame>
      </Step>
    </Steps>

    <Divider />

    ## Manual setup (fallback)

    Use this method if automatic setup is not available for your provider or did not complete successfully. Rocket shows you the exact DNS records and you add them directly in your domain provider's dashboard.

    <Steps>
      <Step title="Open the Production tab and select a version">
        Click the **Launch** button, select the **Production** tab, choose your version, enter your domain, and click **Next**. Complete the [Production Environment step](#set-up-the-production-environment) as described above.
      </Step>

      <Step title="Switch to manual setup">
        If automatic setup did not work or your provider is not supported, click **Go to our manual setup** on the automatic setup screen. Rocket shows you the exact DNS records to add.

        <Frame caption="Manual DNS records provided by Rocket">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/manual-dns-records.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=ed0395ce78a72e4002bb06bcfa771102" alt="Rocket manual DNS configuration screen showing record type, host name, and required values to copy." className="theme-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/manual-dns-records.webp" />
        </Frame>

        <Warning>
          Remove any existing A and AAAA records for your domain before adding the new ones. Conflicting records will prevent your domain from connecting.
        </Warning>

        Copy each record (Type, Host Name, Required Value). In a new browser tab, open your domain provider's DNS settings and add them exactly as shown.
      </Step>

      <Step title="Confirm you have added the records">
        Once you have added all records in your provider's dashboard, click **I have added all records above to my domain's provider** in Rocket. Rocket starts monitoring for the DNS changes.

        <Frame caption="You're all set">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/L6S5ohB-yG8sKjeh/images/build-docs/launch-web/custom-domain/web-browser/done-manual.webp?fit=max&auto=format&n=L6S5ohB-yG8sKjeh&q=85&s=7042a67d06275e009c938574686eca79" alt="You're all set screen after confirming DNS records have been added." className="theme-image" width="2880" height="1624" data-path="images/build-docs/launch-web/custom-domain/web-browser/done-manual.webp" />
        </Frame>

        DNS propagation can take up to 48 hours. Once Rocket detects the records, your domain goes live automatically.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Mobile App">
    <Steps>
      <Step title="Open the More tab">
        Open your app in the Rocket mobile app and tap the **More** tab at the bottom of the screen.

        <Frame caption="More tab in the navigation bar">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/V8n5a5SD5I4rMm7t/images/build-docs/launch-web/custom-domain/mobile-app/more-tab-in-rocket-app.webp?fit=max&auto=format&n=V8n5a5SD5I4rMm7t&q=85&s=9bda84b62ec8bd1f97c260cf78b12fd8" alt="More tab highlighted in the navigation bar at the bottom of the screen." className="theme-mobile-image" width="600" height="1304" data-path="images/build-docs/launch-web/custom-domain/mobile-app/more-tab-in-rocket-app.webp" />
        </Frame>
      </Step>

      <Step title="Select Launch on custom domain">
        In the settings modal, tap **Launch on custom domain**.

        <Frame caption="Project settings modal with Launch on custom domain option">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/V8n5a5SD5I4rMm7t/images/build-docs/launch-web/custom-domain/mobile-app/select-custom-domain-option-in-rocket-app.webp?fit=max&auto=format&n=V8n5a5SD5I4rMm7t&q=85&s=e2f81949d741dde3f8748924b0b8f805" alt="Project settings modal showing Launch on custom domain option highlighted." className="theme-mobile-image" width="600" height="1304" data-path="images/build-docs/launch-web/custom-domain/mobile-app/select-custom-domain-option-in-rocket-app.webp" />
        </Frame>
      </Step>

      <Step title="Add your domain">
        Tap **+ Add domain**, type the domain you own (for example, `example.com`), and tap **Add Domain**.

        Rocket adds the domain to your project and shows the DNS records you need.

        <Frame caption="Enter your domain">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/V8n5a5SD5I4rMm7t/images/build-docs/launch-web/custom-domain/mobile-app/adding-custom-domain-in-rocket-app.webp?fit=max&auto=format&n=V8n5a5SD5I4rMm7t&q=85&s=87b0cb6743a8b288ea168c1340621841" alt="Text input for adding your domain to Rocket on mobile." className="theme-mobile-image" width="600" height="1304" data-path="images/build-docs/launch-web/custom-domain/mobile-app/adding-custom-domain-in-rocket-app.webp" />
        </Frame>
      </Step>

      <Step title="Update DNS settings at your domain provider">
        Copy the DNS records that Rocket shows you.

        <Frame caption="Copy your DNS records">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/V8n5a5SD5I4rMm7t/images/build-docs/launch-web/custom-domain/mobile-app/dns-records-in-rocket-app.webp?fit=max&auto=format&n=V8n5a5SD5I4rMm7t&q=85&s=1b5df2d04ea26788c372969982690916" alt="DNS records provided by Rocket for domain verification on mobile." className="theme-mobile-image" width="600" height="1304" data-path="images/build-docs/launch-web/custom-domain/mobile-app/dns-records-in-rocket-app.webp" />
        </Frame>

        Open your domain provider's dashboard (you may need a web browser for this step) and add the records exactly as shown.

        **What to add:**

        * **Root domains** (e.g., `example.com`): Add two A records, one with host `@` (root) and one with host `www`, both pointing to the IP address provided by Rocket.
        * **Subdomains** (e.g., `app.example.com`): Add one A record with the subdomain as the host (e.g., `app`), pointing to the IP address provided by Rocket.
      </Step>

      <Step title="Verify your domain">
        Return to the Rocket mobile app and tap **Refresh** next to your domain. The status shows **Verification in process** at first.

        When Rocket detects the correct DNS records, the status changes to **Live**. Your app is now accessible at your custom domain.

        <Frame caption="Verification status">
          <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/V8n5a5SD5I4rMm7t/images/build-docs/launch-web/custom-domain/mobile-app/verification-status-in-rocket-app.webp?fit=max&auto=format&n=V8n5a5SD5I4rMm7t&q=85&s=0eb3f1ccae4a595ff7a83389593fe323" alt="Rocket showing your domain verification status on mobile." className="theme-mobile-image" width="600" height="1304" data-path="images/build-docs/launch-web/custom-domain/mobile-app/verification-status-in-rocket-app.webp" />
        </Frame>
      </Step>
    </Steps>
  </Tab>
</Tabs>

<Note>
  DNS changes can take up to 48 hours to propagate. Your domain may not work immediately after setup.
</Note>

## Fix conflicting DNS records

If your domain is not connecting after 48 hours, you likely have conflicting DNS records.

<Steps>
  <Step title="Check your DNS records">
    Go to [dnschecker.org](https://dnschecker.org/), enter your domain, and select **A** as the record type.
  </Step>

  <Step title="Remove conflicting records">
    If you see multiple different IP addresses, log in to your domain provider's dashboard and remove any A records that do not point to the IP address Rocket provided.
  </Step>

  <Step title="Wait for propagation">
    Wait up to 24 hours for the changes to propagate, then check the domain status in Rocket again.
  </Step>
</Steps>

<Warning>
  Multiple A records with different IP addresses cause your domain to intermittently point to the wrong server. Keep only the Rocket IP address configured.
</Warning>

## What's next?

<CardGroup cols={2}>
  <Card title="SEO & discoverability" icon="magnifying-glass-chart" href="/build/polish/seo">
    Optimize meta tags and sitemaps so search engines find your site.
  </Card>

  <Card title="Analytics" icon="chart-mixed" href="/build/measure/analytics">
    Track visits, pageviews, and traffic sources from your dashboard.
  </Card>

  <Card title="Privacy compliance" icon="shield-check" href="/build/polish/compliance">
    Set up cookie consent, GDPR banners, and a privacy policy page.
  </Card>
</CardGroup>
