# Connecting a domain to a project

> Map your domain (or any subdomain of it) to a published project — instantly, with no re-publish needed.

Source: https://knowledge.estage.com/domains/connect/
Part of the ESTAGE knowledge base (https://knowledge.estage.com). Full corpus: https://knowledge.estage.com/llms-full.txt

---
Once a domain is [added and active](/domains/), connecting it to a project takes seconds.
One domain can serve several projects — each on its own subdomain.

## Connecting

In your project: **Settings → Domains**.

1. Click **Add custom**.
2. Pick the domain from the dropdown (it lists your active domains).
3. **Subdomain** — leave empty to use the bare domain (`mysite.com`), or type one
   (`app` → `app.mysite.com`).
4. Click **Connect**.

That's it — **no re-publish needed**. Genesis copies your published site to the new address
and it goes live immediately, HTTPS included.

:::tip
Connecting the bare domain (`mysite.com`) automatically covers **www.mysite.com** too — both
serve your site, no extra setup.
:::

## What changes after connecting

- The **Open site** button, your project's published URL, and your SEO plumbing (sitemap,
  canonical URLs, social-share tags) all switch to the custom domain.
- Your original `…genesis.estage.com` address **keeps working** — same site, both addresses.
  Share the custom one.

## Several projects, one domain

Each subdomain is its own mapping, so one domain can host your whole ecosystem:

| Address | Project |
| --- | --- |
| `mysite.com` | Main site |
| `blog.mysite.com` | A separate blog project |
| `app.mysite.com` | Your web app |

A subdomain can only be mapped to one project at a time — connecting an occupied one shows
*"already mapped"*; disconnect it from the other project first.

A **[module](/project-settings/modules/#a-module-on-its-own-subdomain)** of one project can also
take its own subdomain — `app.mysite.com`, `store.mysite.com` — each with its own home page, with
the AI scoping its edits to the module it's working in.

## Primary domain

If a project has several addresses, one is marked **Primary** — that's what the Open site
button and the published URL show. The bare domain wins over `www` automatically; you can
change the primary in the Domains tab.

## Disconnecting

Click **✕** next to the mapping in **Settings → Domains**. The custom address stops serving
the site (the Genesis address keeps working as a fallback). The domain stays in your
workspace, ready to reconnect anywhere.

## Updates after connecting

Nothing changes in your workflow: edit, then [Publish](/workspace/publishing/) — the new
version goes live on the custom domain and the Genesis address simultaneously.
