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

# Branding and custom domain

> White-label the login experience with your own domain and branding.

Anyreach lets you white-label the application your users see. Set your logos, favicon, and brand colors, then point a custom domain at Anyreach so users sign in and work under your own brand. Branding is resolved by domain: when a request arrives on your custom domain, Anyreach looks up the matching organization and applies its branding to the sign-in pages and the entire app.

You configure everything from the **Settings** page in the dashboard. Changing these fields requires the `organizations:manage` scope.

## Branding fields

Open **Settings** and edit the branding cards. Each asset has a light and dark variant so your brand looks right in both themes.

| Card                | Field                                     | Description                        |
| ------------------- | ----------------------------------------- | ---------------------------------- |
| **Logos & Favicon** | Light Logo (`logo_url`)                   | Logo shown on light backgrounds.   |
| **Logos & Favicon** | Dark Logo (`dark_logo_url`)               | Logo shown on dark backgrounds.    |
| **Logos & Favicon** | Favicon (`favicon`)                       | Square browser-tab icon.           |
| **Brand Colors**    | Primary color (`primary_color`)           | Brand accent color for light mode. |
| **Brand Colors**    | Dark primary color (`dark_primary_color`) | Brand accent color for dark mode.  |

Logos and favicons accept PNG, JPEG, SVG, and WebP files up to 2MB. Pick brand colors from a Tailwind palette or enter a custom hex value.

<Note>
  The **Auto-Brand from Website** card lets you enter your website domain to import logos, colors, and social links automatically. You can then fine-tune anything it imports before saving.
</Note>

Each organization also carries a `custom_css` field for additional white-label styling. Use the **Brand Preview** card to see how your logos and colors render before you save, then click **Save Changes**. **Reset** restores the default Anyreach theme.

### How branding is resolved

The white-label experience is keyed to the domain a user visits. Anyreach looks up the organization whose `domain` matches the incoming host and applies its `branding`, `color`, and `custom_css` to the page, including the sign-in and sign-up screens.

```
user visits app.yourbrand.com
        │
        ▼
lookup organization by domain  (GET /public/organizations/by-domain?domain=app.yourbrand.com)
        │
        ▼
apply branding + color + custom_css to login + app
```

<Info>
  Branding only goes universal once a custom domain is active. When a custom domain is configured, the theme (primary colors, logos) applies to every user who reaches your app through that domain, including the sign-in and sign-up pages.
</Info>

## Custom domain

Setting a custom domain points your own hostname (for example `app.yourbrand.com`) at Anyreach and provisions an SSL certificate for it. Saving a domain on the **Settings** page starts an asynchronous setup workflow that requests a certificate from AWS Certificate Manager and configures routing.

<Steps>
  <Step title="Enter your domain">
    In the **Custom Domain** card, type your hostname (without `https://`) and click **Save Changes**. This starts the setup workflow and sets the domain status to `pending`.
  </Step>

  <Step title="Add the routing CNAME">
    Create a `CNAME` record at your DNS provider that points your domain to Anyreach:

    | Host                | Target            |
    | ------------------- | ----------------- |
    | `app.yourbrand.com` | `app.anyreach.ai` |
  </Step>

  <Step title="Add the certificate validation CNAME">
    Once the certificate request exists, the **Custom Domain** card shows a second `CNAME` (name and value) from AWS Certificate Manager. Add it to your DNS provider to validate the certificate. Use the refresh control to re-fetch the latest records and status.
  </Step>

  <Step title="Wait for activation">
    The workflow waits for DNS to propagate and the certificate to validate. When it succeeds, the status becomes `completed` and your domain goes live.
  </Step>
</Steps>

### Setup states

The domain status (`domain_setup_status`) reflects where the workflow is.

| Status      | Badge       | Meaning                                                                                                                                     |
| ----------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `pending`   | **Pending** | The certificate is being requested and routing is being configured. Make sure both CNAME records are in place. This can take a few minutes. |
| `completed` | **Active**  | The domain is validated and live. Users can reach your app at the custom domain.                                                            |
| `failed`    | **Failed**  | Setup could not complete. Verify your DNS records, then retry.                                                                              |

<Warning>
  If the status is `failed`, fix your DNS records first, then click **Retry Domain Setup** in the **Custom Domain** card. Retrying resets the status to `pending` and restarts the workflow with the existing certificate.
</Warning>

### Changing or removing a domain

Editing the domain field and saving terminates any in-flight setup, then starts a fresh setup for the new value. Clearing the domain field and saving starts a removal workflow that tears down the old configuration.

## Limits and requirements

| Item                    | Value                                    |
| ----------------------- | ---------------------------------------- |
| Routing CNAME target    | `app.anyreach.ai`                        |
| Certificate validation  | DNS `CNAME` from AWS Certificate Manager |
| Logo / favicon formats  | PNG, JPEG, SVG, WebP                     |
| Logo / favicon max size | 2MB                                      |
| Required scope          | `organizations:manage`                   |

## Related

<CardGroup cols={1}>
  <Card title="Organizations overview" icon="building" href="/organizations/overview">
    How organizations, scopes, and settings fit together.
  </Card>
</CardGroup>
