You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add branding support to this app, which currently has none, adopting the same baseline as nebari-dev/nebari-landing: Helm values.yaml branding rendered into a
runtime /config.json that the frontend reads at startup, with built-in Nebari defaults. As with the landing app, this must also support running outside Kubernetes via a local config file / env vars /
defaults. This introduces a branding config schema, the runtime config delivery to the frontend, and the deployment/packaging wiring.
Motivation
This app has no branding mechanism today; operators cannot customize title, logo, or theme without code changes
Reusing the nebari-landing baseline gives a consistent branding experience and config shape across Nebari apps
Runtime config.json injection decouples branding from the build — no image rebuild to rebrand
Supporting non-k8s execution keeps local dev and standalone deployments working without a Helm chart
Starting from the shared baseline avoids inventing a divergent, one-off branding system
Summary
Add branding support to this app, which currently has none, adopting the same baseline as
nebari-dev/nebari-landing: Helmvalues.yamlbranding rendered into aruntime
/config.jsonthat the frontend reads at startup, with built-in Nebari defaults. As with the landing app, this must also support running outside Kubernetes via a local config file / env vars /defaults. This introduces a branding config schema, the runtime config delivery to the frontend, and the deployment/packaging wiring.
Motivation
nebari-landingbaseline gives a consistent branding experience and config shape across Nebari appsconfig.jsoninjection decouples branding from the build — no image rebuild to rebrandAcceptance Criteria
nebari-landing'sfrontend.brandingblock (title,logoUrl,faviconUrl,theme.light,theme.dark)brandingvalues into a/config.jsonserved to the frontend/config.jsonat startup, before React mounts, and applies branding;,{,},url(),javascript:, etc.) matchingnebari-landing's security handlingconfig.jsonis presentconfig.json→ local file → env vars → built-in defaults)Out of Scope
nebari-landingcurrently supports (e.g.logoUrlDark, tracked separately)nebari-landingitself — this issue only adopts its baseline here