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

# Use a custom domain

> Buy a domain inside NanoCorp, or point a domain you already own to your business website.

<Info>
  Custom domains are included on both paid plans, **Light** and **Founder**. See [Plans and credits](/plans-and-credits) to upgrade.
</Info>

By default, your business's website is published at a `nanocorp.app` address. With a custom domain, your visitors see something like `yourcompany.com` instead.

There are two ways to get one, both in **Business Settings → Custom Domain**:

* **Buy a new domain** right inside NanoCorp: it goes live on your site within minutes, with zero DNS setup.
* **Attach a domain you already own**: you add one DNS record at your registrar and NanoCorp verifies it.

## Buy a new domain in NanoCorp

The **Buy a new domain** tab lets you search, pay by card, and go live without ever touching DNS.

<Steps>
  <Step title="Search for a name">
    Type a name (like `acme`) to see it across popular endings (`.com`, `.co`, `.ai`, `.io`, and more), or type a full domain (like `acme.beer`) to check that exact one. Each available domain shows its yearly price; taken ones are greyed out.
  </Step>

  <Step title="Pay by card">
    Click **Buy** and complete the secure Stripe checkout. The price you saw is re-checked at checkout. If it changed (rare, mostly premium names), you'll be asked to confirm the new price before anything is charged.
  </Step>

  <Step title="Done: it goes live by itself">
    Back in your settings you'll see "Registering… this takes a minute or two", then your site is live on the new domain over HTTPS. `www.yourdomain.com` redirects to `yourdomain.com` automatically. No DNS records, nothing to configure.
  </Step>
</Steps>

Some things worth knowing:

* Prices are shown per year. A few endings (like `.ai`) have a two-year minimum, and the price shown covers the whole minimum term.
* NanoCorp registers and holds the domain **on your behalf** and handles the technical side, including renewals. If you ever want to transfer the domain out to your own registrar, contact support and we'll help.
* Very expensive premium domains show **"Premium domain: contact support"** instead of a Buy button, and a few exotic endings that need extra registration paperwork are marked **"Contact support to buy this one"**.
* In the rare case a registration fails after payment (for example, the domain gets taken at the last second), you'll see it marked failed and **your payment is refunded**.

### Your domains

Every domain you buy belongs to your account (not to a single business) and appears in the **Your domains** list in the same section, with its status:

* **Live**: attached and serving this business's site.
* **Going live**: attached, waiting for the internet to pick it up (usually minutes).
* **Parked**: owned by you, not attached anywhere.
* **Registering**: purchase in progress.

Each business's settings shows the domains relevant to that business: the domain attached to it, your parked domains, and its own purchases in progress. A domain serving another one of your businesses is managed from that business's settings.

Use **Attach** to point a parked domain at any of your businesses (this replaces that business's current domain, which goes back to being parked if it was bought on NanoCorp). Use **Detach** to park it again. The site reverts to its `nanocorp.app` address. A domain bought on NanoCorp is managed from this list, not from the attach tab.

## Attach a domain you already own

You bring the domain. NanoCorp connects it to your business's website and sets up HTTPS automatically once your DNS is verified.

## Before you start

You'll need:

* A **Founder plan** subscription. See [Plans and credits](/plans-and-credits).
* Your business's **website already deployed**. If it isn't, NanoCorp will tell you when you try to save. Come back once the website is live.
* A **domain you own**, bought from a registrar such as GoDaddy, Namecheap, Cloudflare, Google Domains, or similar.

The domains `nanocorp.app`, `nanocorp.so`, and `localhost` are reserved and can't be used.

## Add your domain in NanoCorp

<Steps>
  <Step title="Open the business settings">
    From your business dashboard, open the menu and click **Business Settings**.
  </Step>

  <Step title="Find the Custom Domain section">
    Scroll to **Custom Domain** and select the **Attach a domain you own** tab.
  </Step>

  <Step title="Enter your domain and save">
    Type the domain you want to use (for example `yourcompany.com` or `www.yourcompany.com`), then click **Save**.
  </Step>
</Steps>

After saving, the status shows **Pending** and NanoCorp displays a DNS record you need to add at your registrar. Keep this page open for the next step.

## Update your DNS records

This is the only part where you have to do work outside of NanoCorp. You're going to tell your domain to point to NanoCorp's servers by adding a DNS record at your **registrar** (the website where you bought the domain).

<Steps>
  <Step title="Log in to your registrar">
    Sign in at the site where you bought your domain. Common ones are GoDaddy, Namecheap, Cloudflare, Google Domains, and OVH.
  </Step>

  <Step title="Open the DNS settings for your domain">
    Every registrar calls this something slightly different. Look for a section named **DNS**, **DNS Management**, **DNS Settings**, or **Advanced DNS**.
  </Step>

  <Step title="Add the record NanoCorp showed you">
    NanoCorp shows three values: **Type**, **Name**, and **Value**. Copy each one into the matching field when you create a new record at your registrar.
  </Step>

  <Step title="Save at your registrar">
    Save the new record. It usually takes a few minutes (and occasionally up to a few hours) for DNS changes to become visible across the internet.
  </Step>
</Steps>

<Tip>
  **One thing to know about the Name (or Host) field**

  Many registrars want it entered in a shorter form than NanoCorp shows:

  * For a domain like `yourcompany.com`: type `@` or leave the field blank.
  * For a domain like `www.yourcompany.com`: type just `www`.

  If in doubt, paste exactly what NanoCorp shows. Most registrars accept that too.
</Tip>

<Tip>
  **Optional: also redirect `www` to your apex**

  If you used an apex domain like `yourcompany.com`, NanoCorp configures a redirect from `www.yourcompany.com` to `yourcompany.com` automatically once your apex domain is verified. To activate it, add this second DNS record at your registrar:

  | Type  | Name | Value                 |
  | ----- | ---- | --------------------- |
  | CNAME | www  | cname.vercel-dns.com. |

  Once it propagates, visitors typing `www.yourcompany.com` are redirected to `yourcompany.com` over HTTPS (308 permanent redirect). HTTPS for the `www` host is set up automatically too.

  Skip this step if you want only `yourcompany.com` to be reachable.
</Tip>

## Wait for verification

Once you've saved your DNS record, there's nothing else to do on your side. NanoCorp automatically checks whether your DNS is ready every few seconds. Keep the Custom Domain section open and wait.

* While the check is in progress, you'll see **Verifying DNS... This can take a few minutes.**
* When verification succeeds, the status flips to **Active** and the section shows **Live.** Your site is now reachable at your custom domain.

HTTPS is set up automatically, so visitors connect securely over `https://` without any extra configuration from you.

If verification takes a long time, DNS changes occasionally need up to a few hours to propagate across the internet. Double-check at your registrar that the record you added matches exactly what NanoCorp showed you (type, name, and value).

## Keep one canonical address

Your `nanocorp.app` address keeps working once a custom domain is live: both addresses serve the same site. If you'd rather have a single address for search engines, ask your agent to redirect the old one to your domain.

Your agent has what it needs for that: requests arriving on `{handle}.nanocorp.app` pass through NanoCorp's edge, which adds an `x-nanocorp-host` request header carrying the hostname the visitor typed. Requests on your custom domain go straight to your app, so the header is normally absent there. That difference is what lets the app send `nanocorp.app` visitors to your domain with a permanent redirect. It's a routing hint only, so it shouldn't be used to decide who is allowed to see something. The usual `host` and `x-forwarded-host` headers can't be used for this: the hosting layer rewrites both to an internal hostname.

## Email at your domain

A custom domain covers the website. Getting `hello@yourcompany.com` to work means adding
mail records (MX, and the SPF/DKIM/DMARC TXT records your mail provider gives you) to the
domain's DNS. Where you do that depends on which of the two paths you took.

<Note>
  This points your domain's mail at a mailbox you already have, at any provider. It does not
  move your NanoCorp company inbox: NanoCorp keeps sending and receiving on the company's
  `nanocorp.app` address.
</Note>

### Domains you bought inside NanoCorp

These sit on NanoCorp's nameservers, so the records are edited here. Ask your agent, or run
it yourself in the sandbox:

```bash theme={null}
nanocorp site dns list
nanocorp site dns add --type MX --value mx1.yourmailprovider.com --priority 10
nanocorp site dns add --type TXT --value "v=spf1 include:_spf.yourmailprovider.com ~all"
nanocorp site dns add --type TXT --name selector1._domainkey --value "v=DKIM1; k=rsa; p=..."
nanocorp site dns remove --id <record id from list>
```

You can add `MX` and `TXT` records anywhere in the domain, and `CNAME` records on a
subdomain. The records that keep your website reachable are listed as **protected** and
cannot be changed or removed: the domain's own address record, `www`, and the verification
records under `_vercel`. Adding mail records never disturbs them.

### Domains you registered elsewhere

Your registrar still holds the DNS, so you add the mail records there, next to the A or
CNAME record you added for NanoCorp. Nothing needs to change on the NanoCorp side, and
adding MX or TXT records does not affect the website record.

## Remove a custom domain

In the **Custom Domain** section of Business Settings, click **Remove**. Your site goes back to its default `nanocorp.app` address. You can add a new custom domain later if you want.

## Custom domains and dormant shops

Custom domains are a paid-plan feature. If your trial or plan ends and your shop goes dormant, the custom domain is released: your site keeps serving on its `nanocorp.app` address, and visitors to the custom domain will see an error page until you reopen. Your domain settings and verification are kept — reopening the shop (Light or Founder) re-attaches the domain automatically within minutes, with no DNS changes needed.

## Troubleshooting

### Error messages when saving a domain

Messages you might see when saving a domain:

* **"Invalid domain format"**: the domain doesn't look like a valid domain. Type it without `http://` or trailing slashes (use `yourcompany.com`, not `https://yourcompany.com/`).
* **"This domain is reserved and cannot be used"**: `nanocorp.app`, `nanocorp.so`, and `localhost` are reserved. Use a domain you own.
* **"Website must be deployed before adding a custom domain"**: your business's website hasn't been published yet. Come back once it has.
* **"Custom domains require a paid plan"**: you're on the Free plan (or your trial ended). See [Plans and credits](/plans-and-credits) to upgrade.

### Domain is saved but returns 404

If your custom domain shows **HTTP 404** (especially with a header `x-vercel-error: DEPLOYMENT_NOT_FOUND`) while `{yourhandle}.nanocorp.app` is live and working, the domain reached Vercel but isn't bound to your business's project.&#x20;

**To fix:** open **Business Settings → Custom Domain** and click **Save** with the
domain still in the field. Saving always re-runs the attachment, so re-saving the same
domain re-binds it. Your domain should go live within minutes.

Your agent can do the same from its sandbox with `nanocorp site domain set yourcompany.com`,
then `nanocorp site domain check` to watch the verification.

**Still 404 after that?** Remove the domain, save, type it back in and save again. A plain
re-save cannot help when the domain is already listed on your project but its binding is
stale, because there is nothing new to attach; removing it first is what clears that.

<Note>
  If the domain is bound to a different project, the save fails with a clear error instead
  of reporting success. That means the domain is claimed elsewhere, so contact support.
</Note>

<Note>
  **Common mistake:** pointing `www` at `*.nanocorp.app` instead of `cname.vercel-dns.com.` will not work. See the "Optional: also redirect `www` to your apex" section above for the correct DNS record.&#x20;
</Note>

Still stuck? Open the in-app **Support** chat, or email [support@nanocorp.so](mailto:support@nanocorp.so).&#x20;
