Skip to content

feat: white-label branding support#18

Draft
pthmas wants to merge 2 commits intomainfrom
pierrick/white-labeling
Draft

feat: white-label branding support#18
pthmas wants to merge 2 commits intomainfrom
pierrick/white-labeling

Conversation

@pthmas
Copy link
Collaborator

@pthmas pthmas commented Feb 25, 2026

Summary

  • Add runtime-configurable branding via 7 optional env vars (CHAIN_NAME, CHAIN_LOGO_URL, ACCENT_COLOR, BACKGROUND_COLOR_DARK, BACKGROUND_COLOR_LIGHT, SUCCESS_COLOR, ERROR_COLOR)
  • New backend GET /api/config endpoint serves branding config from environment variables
  • Frontend BrandingContext fetches config once on load, applies CSS custom properties for accent colors and derives surface palettes from background colors
  • Logo, chain name, favicon, and page title update dynamically
  • All values optional — defaults match current Atlas branding when unset

Test plan

  • Set custom CHAIN_NAME and ACCENT_COLOR in .env, verify title/links/buttons change
  • Set BACKGROUND_COLOR_DARK / BACKGROUND_COLOR_LIGHT, verify surface colors adapt in both themes
  • Set CHAIN_LOGO_URL pointing to mounted branding asset, verify logo in navbar and welcome page
  • Verify with no branding env vars set, UI looks identical to current Atlas
  • Test dark/light theme toggle with custom backgrounds
  • Verify bunx vite build succeeds
  • Verify docker compose build && docker compose up -d works end-to-end

🤖 Generated with Claude Code

Add runtime-configurable branding via environment variables so each
chain deployment can customize name, logo, colors without rebuilding.

Backend: new /api/config endpoint serving branding config from env vars
(CHAIN_NAME, CHAIN_LOGO_URL, ACCENT_COLOR, BACKGROUND_COLOR_DARK,
BACKGROUND_COLOR_LIGHT, SUCCESS_COLOR, ERROR_COLOR).

Frontend: BrandingContext fetches config once on load and applies CSS
custom properties for accent, success/error, and derived surface
palettes. Logo, chain name, favicon, and page title update dynamically.
All values are optional with sensible defaults matching current Atlas
branding.
@coderabbitai
Copy link

coderabbitai bot commented Feb 25, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch pierrick/white-labeling

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

- Run cargo fmt to wrap long env var lines in main.rs
- Remove unused rgbToHex function and mode parameter in color.ts
- Fix react-refresh/only-export-components by separating BrandingContext
  definition into branding-context.ts and useBranding hook into its own file

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant