Centralize branding so a rebrand touches only configuration and assets#898
Merged
Conversation
…ct vs support email
d225234 to
797f5a6
Compare
… footer, and legal page
…ep the upstream attribution
…ht-512.png, logo-wrap-light-88.png, etc.)
d431182 to
d08d24f
Compare
bb6042f to
d08d24f
Compare
3a0f5bb to
2f916bf
Compare
2f916bf to
42e138f
Compare
42e138f to
a695a3c
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary & Motivation
PlatformPlatform's brand identity was hardcoded across the codebase — the product name, colors, logos, emails, taglines, social links, and deployment configuration each carried literal values in source files. Rebranding meant hunting through the backend, the SPA, email templates, infrastructure scripts, and CI workflows.
This change pulls every brand surface behind two things: a single configuration file and a fixed set of logo assets. A rebrand becomes a closed, predictable operation:
application/platform-settings.jsonc— product name, primary color, PWA theme and background colors, email header background, per-locale taglines, contact and support emails, social links, internal email domain, the "Add to Home Screen" toggle, and the local Docker volume prefix.shared-webapp/ui/images, the favicon and apple-touch icons in thepublicfolders, the hero images, and the email banner. File names and dimensions are fixed, so the replacements are drop-in.The
rebrandskill added here documents the full process step by step.Brand configuration
application/platform-settings.jsoncas the single source of truth — embedded into the backend as an embedded resource and injected into the frontend at build time.showAddToHomescreenflag that gates the iOS install prompt.deploy-cluster.sh, so deployment branding follows the config with no separate CI variable.Brand assets
shared-webapp/ui/imagesand remove the duplicated per-app copies. A theme-awareLogocomponent resolves the light or dark variant automatically and preserves the aspect ratio of non-square marks.platformplatform-*credit logos, kept separate from the configurable assets so upstream attribution survives a rebrand.Developer experience
platform-settings.jsonc(development.dockerVolumePrefix), resolved by a shared helper so the Aspire AppHost and the CLIstopcommand always agree.webhost./componentsdesign-system showcase into the back-office so it sits behind authentication, and serve email preview artifacts only there. The preview now renders real brand values instead of stale sample data.Deploy to Staginglabel with no migration changes now deploys to staging as expected.UI and content fixes
Minor fixes: remove an orphaned
PlatformPlatform.*coverage filter, add a dark-modeapple-touch-icon, replace brand SVGs with PNGs so Safari renders them crisply, trackplatform-settings.jsoncas a turbo global dependency, and useexample.comin illustrative comments.Checklist