Skip to content

Centralize branding so a rebrand touches only configuration and assets#898

Merged
tjementum merged 56 commits into
mainfrom
enable-platformplatform-for-rebranding
May 19, 2026
Merged

Centralize branding so a rebrand touches only configuration and assets#898
tjementum merged 56 commits into
mainfrom
enable-platformplatform-for-rebranding

Conversation

@tjementum
Copy link
Copy Markdown
Member

@tjementum tjementum commented May 17, 2026

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:

  • Edit 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.
  • Replace the logo assets in place at their canonical paths — the wordmark and mark in shared-webapp/ui/images, the favicon and apple-touch icons in the public folders, the hero images, and the email banner. File names and dimensions are fixed, so the replacements are drop-in.

The rebrand skill added here documents the full process step by step.

Brand configuration

  • Add application/platform-settings.jsonc as the single source of truth — embedded into the backend as an embedded resource and injected into the frontend at build time.
  • Wire every brand surface to it: SPA strings, the "Add to Home Screen" prompt, the delete-account support email, transactional email templates, PWA manifests, and HTML and backend API titles (including the Back Office title). The E2E suite reads the product name from the same file, so tests stay green after a rebrand.
  • Centralize brand colors through the file — the primary color, the PWA theme and background colors, and the transactional email header background.
  • Add per-locale taglines split across web and mail channels, and a showAddToHomescreen flag that gates the iOS install prompt.
  • Source the cluster deployment's product name from the same file via deploy-cluster.sh, so deployment branding follows the config with no separate CI variable.

Brand assets

  • Centralize brand logos and hero images in shared-webapp/ui/images and remove the duplicated per-app copies. A theme-aware Logo component resolves the light or dark variant automatically and preserves the aspect ratio of non-square marks.
  • Make the transactional email header a full-width responsive banner that scales on mobile, and drop the card corner radius on small screens.
  • Add dedicated platformplatform-* credit logos, kept separate from the configurable assets so upstream attribution survives a rebrand.

Developer experience

  • Make the developer CLI alias and its user-facing messages derive from configuration.
  • Centralize the Docker volume prefix in platform-settings.jsonc (development.dockerVolumePrefix), resolved by a shared helper so the Aspire AppHost and the CLI stop command always agree.
  • Reorganize the local development port allocation so the browser-facing hosts take the lowest offsets, with a slot reserved for a future web host.
  • Move the /components design-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.
  • Fix the account and main staging deploy jobs so they no longer skip when the database migration job is skipped — a change carrying the Deploy to Staging label with no migration changes now deploys to staging as expected.

UI and content fixes

  • Constrain the landing and legal pages to a 1024px content width with edge-aligned navigation, restructure the landing page footer, and fix logo sizing in narrow navigation headers and on error pages.
  • Remove the region selector from the signup form and the "Built with PlatformPlatform" attribution from the login and verification footers.
  • Fix Danish translation errors and adopt the "compliance" loanword.

Minor fixes: remove an orphaned PlatformPlatform.* coverage filter, add a dark-mode apple-touch-icon, replace brand SVGs with PNGs so Safari renders them crisply, track platform-settings.jsonc as a turbo global dependency, and use example.com in illustrative comments.

Checklist

  • I have added tests, or done manual regression tests
  • I have updated the documentation, if necessary

@tjementum tjementum self-assigned this May 17, 2026
@tjementum tjementum requested a review from a team as a code owner May 17, 2026 01:19
@tjementum tjementum added the Enhancement New feature or request label May 17, 2026
@tjementum tjementum force-pushed the enable-platformplatform-for-rebranding branch from d225234 to 797f5a6 Compare May 17, 2026 01:57
@tjementum tjementum changed the title Enable platformplatform for rebranding Centralize branding so a rebrand touches only configuration and assets May 17, 2026
@tjementum tjementum moved this to 🏗 In Progress in Kanban board May 17, 2026
@tjementum tjementum force-pushed the enable-platformplatform-for-rebranding branch from d431182 to d08d24f Compare May 18, 2026 00:19
@tjementum tjementum added the Deploy to Staging Set this label on pull requests to deploy code or infrastructure to the Staging environment label May 18, 2026
@tjementum tjementum force-pushed the enable-platformplatform-for-rebranding branch from bb6042f to d08d24f Compare May 18, 2026 01:18
@tjementum tjementum force-pushed the enable-platformplatform-for-rebranding branch from 3a0f5bb to 2f916bf Compare May 18, 2026 22:10
@tjementum tjementum force-pushed the enable-platformplatform-for-rebranding branch from 2f916bf to 42e138f Compare May 18, 2026 22:57
@tjementum tjementum added Deploy to Staging Set this label on pull requests to deploy code or infrastructure to the Staging environment and removed Deploy to Staging Set this label on pull requests to deploy code or infrastructure to the Staging environment labels May 18, 2026
@tjementum tjementum force-pushed the enable-platformplatform-for-rebranding branch from 42e138f to a695a3c Compare May 18, 2026 23:10
@sonarqubecloud
Copy link
Copy Markdown

@tjementum tjementum removed the Deploy to Staging Set this label on pull requests to deploy code or infrastructure to the Staging environment label May 19, 2026
@tjementum tjementum enabled auto-merge May 19, 2026 22:49
@tjementum tjementum merged commit 74e5c11 into main May 19, 2026
32 of 33 checks passed
@tjementum tjementum deleted the enable-platformplatform-for-rebranding branch May 19, 2026 22:49
@github-project-automation github-project-automation Bot moved this from 🏗 In Progress to ✅ Done in Kanban board May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhancement New feature or request

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

1 participant