# Domain management

This page covers ongoing domain operations — what the Domains page actually shows, buying a domain through DZBuild, and removing one. For the end-to-end first-time DNS walkthrough (CNAME records, Cloudflare verification), see [Custom domain](https://dzbuild.com/docs/customizing/custom-domain.md).

## Where this lives

Open [`/dashboard/domains`](https://dzbuild.com/dashboard/domains). The page has three tabs — **Connect domain**, **Buy domain** and **Order history**.

Above the tabs, the **Your store's addresses** card lists your free address (`{store-slug}.dzbuild.app`) and, once you link one, your custom domain (a store can have exactly one) with its status: **Waiting for DNS**, **Activating certificate**, **Final check**, then **Working** once it is live. The primary address carries a **Primary address** star, and the custom domain has a **Remove** button that asks you to confirm.

Once the custom domain is working, the **Your store's primary address** card appears. Pick which address is primary and whether **Send visitors of the other address to the primary address** stays on, then click **Save**.

Domains you bought through DZBuild appear in the **Your purchased domains** card with the expiry date, the renewal price and a **Renew for 1 year** button; a warning shows when a domain expires within 30 days or has expired.

On the Free plan the whole Connect tab is replaced by an upgrade prompt. There is no last-DNS-check timestamp.

## One custom domain per store

A store can have exactly **one** custom domain. Linking requires a paid plan — Pro, Unlimited and Enterprise all allow exactly one; on Free the Connect tab is replaced by an upgrade prompt. Upgrading from Pro to Unlimited does not raise the count.

If you need a second brand on its own domain, create a second store — see [Multi-store](https://dzbuild.com/docs/operations/multi-store.md).

To move off Free, upgrade from [`/dashboard/subscribe`](https://dzbuild.com/dashboard/subscribe). The **▶ How to renew** button on that page launches a guided in-app tour; video walkthroughs are on the [DZBuild YouTube channel](https://www.youtube.com/@DZBuild-off).

## Default subdomain

Every store gets a default subdomain at `{store-slug}.dzbuild.app` (or `{store-slug}.minacef.app` for the Minacef tenant). There is no field for changing the slug yourself. If you rebrand, either attach a custom domain, or open a support ticket with your account email, the current store link and the link you want; the team can move you to the new slug.

Your store keeps working on `{store-slug}.dzbuild.app` while a custom domain is being set up. Once the custom domain passes all its checks and shows **Working**, it becomes the primary address and `{store-slug}.dzbuild.app` 301-redirects visitors to it (the dashboard's theme-preview iframe, which uses `?preview=1`, is not redirected). You can change that at any time in the **Your store's primary address** card: make the free address primary, or turn off **Send visitors of the other address to the primary address** so both addresses serve the storefront. If your custom domain's DNS or SSL breaks later, make the free address primary or remove the custom domain at [`/dashboard/domains`](https://dzbuild.com/dashboard/domains).

## Adding a custom domain

1. At your DNS registrar, point your domain to DZBuild via a CNAME record:

   | Record | Host       | Target             |
   | ------ | ---------- | ------------------ |
   | CNAME  | `@` (apex) | `link.dzbuild.app` |

   If your registrar refuses a CNAME on the apex, point the **`www`** host at `link.dzbuild.app` instead — verification accepts that too (see below).

2. In DZBuild, open [`/dashboard/domains`](https://dzbuild.com/dashboard/domains) → **Connect domain**, type your domain and click **Verify & link**.

3. Wait for the checks. The page shows the progress (**DNS settings**, **Security certificate (SSL)**, **Final check**) and your store stays online on `{store-slug}.dzbuild.app` meanwhile; this usually takes 10 minutes to 2 hours. If the certificate takes longer than usual, the page shows a TXT record to add at your registrar.

If your registrar doesn't allow apex CNAMEs (e.g. Hostinger), see the [Custom domain](https://dzbuild.com/docs/customizing/custom-domain.md) page for the Cloudflare-nameservers path.

### The `www` alternative

If your registrar refuses a CNAME on the root, add a CNAME on the **`www`** host pointing to `link.dzbuild.app` — verification checks `www` in addition to the apex, so it passes either way. DZBuild stores the apex form of the domain and your storefront answers on both hostnames.

## Redirects DZBuild applies

Once your custom domain is working, the **Your store's primary address** card decides the redirects:

* Custom domain primary with the redirect on (the default): `{store-slug}.dzbuild.app` 301-redirects to the custom domain.
* Free address primary with the redirect on: the custom domain 301-redirects to `{store-slug}.dzbuild.app`.
* Redirect off (**Send visitors of the other address to the primary address** switched off): both addresses serve the storefront.
* If a store is reached on a subdomain host other than the one selected for it (`dzbuild.app` vs `minacef.app`), it 301-redirects to the selected one.

## Buying a domain from DZBuild

From the **Buy domain** tab you can search availability across 14 TLDs — `.com` `.net` `.org` `.info` `.store` `.shop` `.online` `.site` `.app` `.io` `.co` `.me` `.xyz` `.tech`. Prices are shown in DZD for the first year; the renewal price can differ. Premium and Early-Access (EAP) domains are not sold.

Payment is **instant, by card only**:

* **CIB / EDAHABIA** via Slick-Pay
* **Global card — Visa / Mastercard / PayPal / Apple Pay** (billed in US dollars)

Manual BaridiMob or CCP receipts are no longer accepted for domain purchases.

Track the purchase in the **Order history** tab (statuses: pending, paid, processing, completed, rejected, refunded). Payment is instant, but the registration itself is completed by the DZBuild team: the order moves from **paid** to **completed** once they register the domain with the registrar. At that point DZBuild wires the DNS and SSL to your store automatically. A domain bought here is registered for one year, and nothing is charged automatically when that year ends. DZBuild sends you a reminder about a month before it expires, and you renew it for another year with **Renew for 1 year** in the **Your purchased domains** card, paid instantly by card like the first purchase.

Buying a new domain requires a Pro, Unlimited or Enterprise plan that has not expired, and your store must not have a different custom domain linked; remove that one first with **Remove** in the **Your store's addresses** card. Renewing a domain you bought here does not require a paid plan.

## When your subscription lapses

Your custom domain is unlinked automatically

About **12 hours** after your subscription expires, DZBuild unlinks the custom domain and your storefront reverts to `{store-slug}.dzbuild.app`. This also applies when the 3-day Pro trial ends.

You keep the domain at your registrar; you simply re-link and re-verify it after renewing. Note that the 12-hour grace applies to an expiry date passing: a store that has been reset to the Free plan, or that has no expiry date at all, can be unlinked sooner.

## Removing a domain

Click **Remove** next to the connected domain. We stop accepting traffic on it within seconds and your storefront reverts to `{store-slug}.dzbuild.app`. The domain is **not** deleted at your registrar — that's still your CNAME until you remove it there.

## SSL renewal

Certificate renewal is fully automatic and needs nothing from you — no CSR, no upload, no renewal calendar. There is **no renewal-failure email and no renewal banner** today, so nothing will alert you if a certificate ever stops renewing.

If your storefront starts showing a certificate warning, check that the CNAME still resolves and contact support.

## Frequently asked

**Q: Can I change my default subdomain slug?** A: Not from the dashboard. Open a support ticket with your account email, the current store link and the link you want, and the team can move you to the new slug. Attaching a custom domain is the other option.

**Q: Custom domain on a Pro plan?** A: Yes — **one** custom domain per store, on any paid plan. Pro, Unlimited and Enterprise all allow exactly one; none of them allow more. Free has no custom-domain support; only the default `{store-slug}.dzbuild.app` subdomain works there. Upgrade from [`/dashboard/subscribe`](https://dzbuild.com/dashboard/subscribe); the **▶ How to renew** button on that page launches a guided in-app tour, and video walkthroughs are on the [DZBuild YouTube channel](https://www.youtube.com/@DZBuild-off).

**Q: Can I use a domain bought through Google Domains / Namecheap / Hostinger / OVH?** A: Yes. Any registrar works — just set the CNAME record.

**Q: My domain still shows "Waiting for DNS" after a few hours.** A: DNS propagation can take up to 24 hours, but typically completes in minutes. Run `dig +short cname yourbrand.com` to verify your CNAME is live. If it returns `link.dzbuild.app`, give it another 30 minutes; otherwise re-check the registrar configuration.

**Q: `dig +short cname` returns nothing — is that a failure?** A: Not necessarily. If you proxy the domain through Cloudflare, the CNAME is flattened to Cloudflare A records and no CNAME is visible. DZBuild recognises Cloudflare's edge addresses and accepts that setup at verification.

**Q: Can I have a custom domain *and* keep the dzbuild.app subdomain working?** A: Yes. Once the custom domain is working, open the **Your store's primary address** card, turn off **Send visitors of the other address to the primary address** and click **Save**: both addresses then serve the storefront. If you would rather keep the free address as the main one, make it primary instead; the custom domain then sends its visitors there.
