Branding

Configure your company brand, per-vertical themes, and per-app logos so the apps look like yours.

Last updated May 19, 2026

Branding lives at Owner Dashboard → Branding. The page is a single form split into Company, Social Links, Legal Documents, and then one section per enabled vertical (Taxi, Shop, Parking, Service). Underneath each vertical, one card per app inside it.

The page renders a sticky Live Preview panel alongside the form on desktop. On phones, you're shown a "use a wider screen" gate — the form is too dense to drive from mobile.

The hierarchy

The branding model is three levels deep, mirroring BrandingConfig in the backend:

LevelWhat lives hereApplies to
CompanyCompany name, legal name, tagline, description, website, social links, legal-document URLs, company logo setEvery app, About screen, footer, invoices
Per verticalTheme (preset or custom), corner style, heading + body fontAll apps inside that vertical (e.g. Taxi Passenger + Taxi Driver share one theme)
Per appApp name, tagline, app logo set, support email, support phone, App Store name + descriptionJust that one app

A theme is not a free hex slider over a dozen tokens. You pick one of nine named presets, or switch the segmented control to Custom and supply a primary plus optional secondary and tertiary seed colors. The full light + dark palettes are then generated from those seeds and stored on the vertical brand alongside the theme choice itself.

Company section

Required at minimum: Company Name and the Primary Logo. Everything else is optional but heavily recommended for white-label.

  • Identity — Company Name, Tagline, Legal Name, Website, Description.
  • Logos — Primary Logo (horizontal), Square Icon (1024×1024), Wordmark horizontal, Wordmark vertical, Monochrome. Each one has an optional dark-mode variant behind a "Dark mode variants (recommended)" toggle.
  • Social Links — Facebook, Instagram, X, YouTube, LinkedIn, TikTok, WhatsApp number. These render as tappable icons at the bottom of the About screen in every client app.
  • Legal Documents — Privacy Policy URL, Terms of Service URL. Markdown is preferred; they appear as tappable entries on the About screen.

The company logo set is the fallback when a specific app hasn't supplied its own.

Per-vertical section

One section per vertical you enabled in your plan. Each section has:

Theme

A segmented toggle between Preset and Custom.

Preset options:

PresetPrimary hex
Cobalt#0253E8
Coral Red#ED3B48
Earthy Green#718A5D
Sunburst#FACB20
Hyper Pink#FF0F5F
Indigo#403BFF
Orange#E97739
Noir#000000
Ocean Teal#57B9B4

Custom mode replaces the preset row with three color pickers: Primary (required), Secondary, Tertiary.

Corner Style

Three options that change the radius of buttons, cards, and chips across the vertical's apps: Rounded (8px), Sharp (2px), Pill (100px).

Typography

Two FontSelect fields, Heading Font and Body Font. The placeholders are DM Sans and Inter respectively. The list is Google Fonts — the values stored as plain font-family names (e.g. Poppins, Inter) are loaded at runtime in Flutter via google_fonts. Anything in the Google Fonts catalog is valid.

Per-app cards

Inside each vertical, one card per app (e.g. Passenger App, Driver App, Customer App, Vendor App, Parking App, Provider App). Clicking a card sets it as the live-preview target.

Each app card has:

  • App Name, Tagline — what shows in the app's chrome and stores.
  • App Icon — 1024×1024, opaque background. Used for the home-screen icon, app stores, and notifications. Validated as opaque on upload.
  • Primary Logo — 1024×1024, transparent. Shown on splash screens and headers.
  • Wordmark (horizontal), Wordmark (vertical), Monochrome — same idea as Company-level, but scoped to this one app.
  • Dark mode variants — collapsed by default; expands a dashed-border block with Icon (dark), Primary Logo (dark), and both wordmarks.
  • Support Email, Support Phone — surfaced inside the app's help screens.

App Store name and description fields exist on the underlying type but aren't part of this form's main inputs — they're managed when you trigger a release through Store Release.

Saving

The single button at the bottom is Save Branding the first time and Update Branding thereafter. There's no separate draft/publish step in the current implementation — the form posts the entire BrandingConfig payload in one mutation and changes go live for the next render of each app.

Native apps that bundle assets at build time (App Store / Play Store builds) won't pick up logo changes until the next Store Release. The web and shared apps render straight from the API.

What's next

Build the foundation once. Expand without limits.

BetterSuite is built for teams who see on-demand as a business — not a feature.