Skip to content

feat(branding): customize your portal's logo, color, and theme#6

Merged
canghai118 merged 4 commits into
linkcraftstudio:mainfrom
canghai118:feature/branding
Jun 11, 2026
Merged

feat(branding): customize your portal's logo, color, and theme#6
canghai118 merged 4 commits into
linkcraftstudio:mainfrom
canghai118:feature/branding

Conversation

@canghai118

Copy link
Copy Markdown
Contributor

What

Make the feedback portal yours from dashboard settings, with a live preview of the public portal as you edit.

For workspace owners:

  • A Branding section under Portal settings to upload a logo, pick an accent color, set a default theme (light / dark / follow system), and write a welcome title + description for the portal home.
  • A live mini-preview that re-renders the portal with your brand tokens as you change them — no save-and-reload loop.
  • Your logo becomes the favicon on every surface (dashboard included), so the browser tab mirrors the brand you just set.

The accent color drives the portal's primary/accent tokens, derived in OKLCH for consistent foreground contrast in both light and dark, while neutrals stay a clean gray so backgrounds, cards, and borders match between the portal and the dashboard.

Implementation notes

  • Branding lives in organization.metadata (no schema migration); the logo is stored via the upload service and surfaced through portal-identity.get.ts.
  • Theme resolves server-side for light/dark (no FOUC); system is corrected before paint by a small inline script and kept in sync client-side.
  • md-editor surfaces (welcome / post / comment bodies) bind their theme to a hydration-stable seed (useEditorTheme) so SSR and client agree — no hydration class mismatch.

Testing

End-to-end verified in a browser on a single-tenant default-org:

  • Branding settings (logo, color, default theme, welcome title/description) save and persist to org metadata.
  • Public portal reflects the brand color, honors the default theme on first paint (no FOUC), renders the welcome block markdown, and uses the logo as the favicon.
  • Theme switcher (auto / light / dark) persists via cookie and is honored at SSR.
  • Zero hydration warnings across portal home, post detail, and the dashboard settings pages.

Public pages emit og:/twitter: meta so shared links render a real card
instead of a bare "FeedLog" title.
Make the feedback portal yours from dashboard settings, with a live
preview of the public portal as you edit.

For workspace owners:
- A Branding section under Portal settings to upload a logo, pick an accent
  color, set a default theme (light / dark / follow system), and write a
  welcome title and description for the portal home.
- A live mini-preview that re-renders the portal with your brand tokens as
  you change them, so there's no save-and-reload loop.
- Your logo becomes the favicon on every surface, dashboard included, so
  the browser tab mirrors the brand you just set.

The accent color drives the portal's primary/accent tokens, derived in
OKLCH for consistent foreground contrast in both light and dark, while
neutrals stay a clean gray so backgrounds, cards, and borders match between
the portal and the dashboard.
@canghai118 canghai118 merged commit 86a2956 into linkcraftstudio:main Jun 11, 2026
2 checks passed
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