Skip to content

White label branding

Keanan treats branding as configuration. A deployment carries its identity in environment variables, and every surface reads from the same source.

Variable Controls
BRAND_PRODUCT_NAME Product name in apps, emails and API docs
BRAND_COMPANY_NAME Company name in emails and PDF footers
BRAND_COMPANY_ADDRESS Legal address on invoices and emails
BRAND_COMPANY_EMAIL Contact address shown to employees
BRAND_WEBSITE Link target in email footers
BRAND_COLOR_PRIMARY Primary color for emails and PDFs
BRAND_COLOR_PRIMARY_DARK Dark variant of the primary color
BRAND_COLOR_ACCENT Accent color for emails and PDFs
BRAND_LOGO_PATH Logo file used on generated PDFs

The public endpoint returns the active branding:

GET /api/v1/branding/
{
"product_name": "NordwindHR",
"company_name": "Nordwind Logistik GmbH",
"color_accent": "#4C7DE0"
}

The admin dashboard requests this at load and renders the name and logo from it. The employee app does the same. Because the value comes from the server, rebranding never requires a client release.

Terminal window
export BRAND_PRODUCT_NAME=NordwindHR
export BRAND_COMPANY_NAME="Nordwind Logistik GmbH"
export BRAND_COMPANY_EMAIL=people@nordwind.example
export BRAND_COLOR_ACCENT="#4C7DE0"

Restart the web container and the platform introduces itself as NordwindHR: welcome emails, invoice PDFs, the dashboard sidebar and the sign in screen included.