Configure branding
Set the customer-visible name and text mark at runtime. One API and web image can serve multiple same-origin bank deployments without a rebuild.Configure the runtime identity
Set these variables for every deployment:NEOBANK_APP_NAME also prefixes the FastAPI title, protected Swagger title, Perflo device identity, and Auth0 resource names. NEOBANK_APP_NAME_AR is optional. Localized Arabic surfaces use the English name when it is empty. NEOBANK_APP_MARK is a short text mark for the application shell.
The web app requests GET /v1/public-config before it renders the sign-in screen or authenticated shell. The response contains only app_name, app_name_ar, and app_mark. A failed request produces a neutral configuration-unavailable screen instead of a fallback brand.
The bootstrap updates the document title and description from the same response. Keep the frontend API base at /v1; runtime branding does not require a Vite build argument.
Keep protocol identifiers separate
Set these stable deployment-owned identifiers independently of the visible name:<claim namespace>/roles and the actor claim at <claim namespace>/actor_type. Problem responses use <problem type base>/<error code>. Production rejects blank, reserved example, and malformed identifiers.
Customize colors and typography
Colors and fonts remain build-time choices inapps/web/src/styles.css. Change the CSS custom properties on :root, then rebuild the web image:
apps/web/src/styles.css
apps/web/src/styles.css for hex values when applying a complete color theme.
The Powered by Perflo attribution identifies the upstream provider. It is not the launching bank’s runtime identity.
Related configuration
- Environment variables lists every runtime field
- Configure Auth0 derives identity resources from the same values
- Perflo hosted origins explains why provider origins remain pinned