AtroUIAtroUI
DocsComponentsBlogTheming
StarOwn the UI

Blog

Rebrand AtroUI chrome with getBrand() and NEXT_PUBLIC_SITE_*

2026-08-05

Override AtroUI logo text, SEO defaults, and mail chrome with getBrand() or NEXT_PUBLIC_SITE_*. Keep demo content under content/ separate.

When you install AtroUI, product chrome defaults to AtroUI / atroui.com. That is correct for the docs host. It is wrong the moment you ship Acme.

getBrand() is the single resolver for logo wordmark, headers, footers, JSON-LD defaults, and mailto targets. Override it once and the chrome stays coherent.

Environment overrides

Set these in the host app (.env.local or your deploy env). They are public by design: they appear in the client bundle.

bash
NEXT_PUBLIC_SITE_NAME=Acme
NEXT_PUBLIC_SITE_DOMAIN=acme.test
NEXT_PUBLIC_SITE_EMAIL=hello@acme.test
NEXT_PUBLIC_SITE_URL=https://acme.test
NEXT_PUBLIC_SITE_TAGLINE=Ship faster with Acme

Props for one-off sections

Sections like HomeWho and MadeWithEmbed also accept brand props when you need a local override without changing the whole host. Prefer env for site-wide chrome; use props for demos and A/B experiments.

Logo mark defaults through BrandLogo to getBrand().name. Pass title or name when a single mount should differ.

What not to rebrand by accident

Modules under atroui/content/* are optional portfolio / studio sample data. They may still mention demo brands on purpose. Skip those modules when you ship your own product. Do not treat them as the source of truth for chrome.

Visual tokens (colors, glass, type) are separate from getBrand(). Override CSS variables for look; override getBrand() for name and domain. See dark-first tokens.

Assets and the Made-with badge

Brand kit downloads and voice notes live on the Brand kit page. The Made-with embed and related media ship with the package so consumer apps do not 404 on docs-only /public paths.

Ship the rebrand

Set the env vars, restart the Next server, confirm the wordmark and mailto. Then walk the Installation checklist once so ThemeProvider and globals are still wired.

Lower switching cost for your own clients: document which NEXT_PUBLIC_SITE_* keys you support and keep demo content out of the default import path.

Own the UIDocsAll posts