React · MUI v7 · TypeScript

One codebase.
Every brand.

Multi-brand React component library built on MUI v7

Ship a new brand theme in under 10 minutes — typed ThemeSpec contracts, AI ThemeSpec generator, 57 components ready to go.

React 19 MUI v7 TypeScript strict AI ThemeSpec Generator 57 components
Watch the 6-min overview
One resolver swap. Any brand strategy.
URL slug Hostname User role localStorage Remote config A/B experiment +6 more

The Problem

Multi-brand React apps
without shared theming
collapse under their own weight.

  • Without a typed theming contract
  • Hex values hardcoded everywhere — change one color and you're grep-replacing across every component file.
  • No shared contract — a new developer reads every file to understand the visual system. No single source of truth.
  • No architecture for brand expansion — adding a second brand or dark mode later means a full rewrite, not a config swap.
  • Then multiply that across clients
  • Every brand owns a full copy — all 57 components duplicated across three separate repos, forever.
  • One bug fix, three PRs — every shared component change must be applied manually to each codebase.
  • Codebases drift apart — each sprint widens the gap between what each brand actually ships.

The Solution

One codebase.
Every brand.

MUI multi-brand theming with typed ThemeSpec contracts

Themiq gives every component a single source of truth — a typed ThemeSpec contract that drives MUI automatically.

ThemeSpec Contract

A single typed object defines every visual token — palette, typography, shadows, shape. One place to change, everywhere it flows.

9 token categories

Resolver System

12 built-in strategies — URL slug, user role, tenant ID, localStorage, environment flag — any trigger, any brand, with zero boilerplate.

12 resolver strategies

57 Themed Components

Every component reads from the theme, never from hardcoded values. Add a brand by writing a ThemeSpec — not by touching a single component.

57 components · 0 hex strings

Works with one brand today. Ready for ten tomorrow — without any refactoring.

Architecture

How it works — end to end

React MUI theme resolution — from resolver to rendered component

App Entry

main.tsx
Bootstrap

Platform Theme

PlatformTheme.tsx
Root Provider

Theme Resolver

resolvers/index.ts
Resolution

ThemeSpec Lookup

themes/index.ts
Definition

getTheme() compile

utils/getTheme.ts
Compilation

MUI ThemeProvider

createTheme()
MUI Context

57 Themed Components

makeStyles()
Render
Resolver strategies urlSlug queryParam userRole tenant localStorage hostname remoteConfig abExperiment composed +3 more in Pro

Key benefits — even with a single brand

Type-safe tokens

ThemeSpec contract enforced at compile time — no raw hex strings anywhere.

Single source of truth

Change any token in one file — it propagates to all 57 components instantly.

Future-proof architecture

Adding a second brand later requires zero refactoring — the system is already wired.

Consistent component API

Every component reads from the theme — no one-off sx overrides scattered across pages.

Onboarding clarity

New developers read ThemeSpec once and understand the entire visual contract.

Get Started

Up and running
in three steps.

How to install and configure a React MUI multi-brand theme

01

Clone the Pro template

Start from a working codebase with two live demo brands, all 57 components, the resolver system, and typed ThemeSpec contracts already wired up.

bash
npx degit themiqpro/template my-app
cd my-app && npm install
npm run dev  # two brands running on localhost
NovaPay & Canvara demo brands included
02

Define your ThemeSpec

Replace the demo brand with yours. Fill in 9 token categories — palette, typography, shadows, shape — and TypeScript tells you if anything is missing.

typescript
// themes/mybrand/index.ts
export const myBrand: ThemeSpec = {
  name: "mybrand",
  designSystem: "MYBRAND",
  palette: { primary: { main: "#2563eb" } },
  typography: { fontFamily: "Inter, sans-serif" },
  // TypeScript enforces the rest ✓
}
AI generator builds this from a hex colour
03

Set your resolver & ship

Pick how the right brand is selected at runtime — URL slug, user role, tenant ID, and 9 more. Swap the resolver any time without touching a single component.

tsx
// App.tsx — one line to swap strategies
<PlatformTheme
  resolver={urlSlugResolver}
>
  <App />
</PlatformTheme>
// change to userRoleResolver anytime — zero refactor
12 resolver strategies · 1 URL slug in template

Total setup time: under 10 minutes. The AI ThemeSpec Generator cuts brand token definition from hours to seconds.

See live demo →
Return on Investment

React multi-brand component library ROI — engineering cost to build from scratch vs Themiq

Building this from scratch
takes months. Themiq takes weeks.

Without Themiq — estimated engineering days

Work item Est. working days
Architecture & resolver system
12 strategies, PlatformTheme, ThemeSpec contract
10–15 d
Theme pipeline
Primitives → semantic palette → getTheme()
8–12 d
Style system
createStyles, makeStyles, CSS variable proxy
8–12 d
57 component wrappers
Typed, per-theme styles, forwardRef
15–25 d
Storybook + Vitest + docs 10–16 d
Per brand × 1
Component .styles.ts variants · Storybook brand stories · ThemeSpec wiring + QA
9–14 d
Total estimated effort 50–74 d
Number of brands 1
1510

All estimates in working days · 1 working month ≈ 20 days · rates ex-VAT

Mid-level · $575–$670/d 71 wd $41k–$48k Incl. payroll taxes + benefits overhead
Senior · $690–$770/d 46 wd $32k–$35k Fewer working days, higher daily rate

wd = working days  ·  US values in USD · Europe values in EUR  ·  Incl. employer overhead (US 20–30% · EU 25–40%)

Time comparison

From scratch
51–80 d
With Themiq
10–20 d
31–70
days saved

Roughly 1.6–3.5 working months (at 20 d/mo) returned to your team.

The time gap is the smaller problem.

Even a senior who ships in time will likely produce a weaker architecture — less typed, less tested, less documented, harder to hand over. Themiq ships 57 typed components, a full Vitest suite, Storybook stories for every component, and a written handover. That level of completeness is rarely reached from scratch under budget pressure.

Themiq's delivery window stays 2–4 weeks regardless of how many brands you add. Scratch effort grows linearly with every new brand.

Want to know what this means for your budget?

Book a scoping call →
Service Tiers

Themiq Pro service tiers — template licence, full implementation, and ongoing retainer

Three tiers. One architecture.
Pick your level of involvement.

Tier 1

Template Licence

Your team does the wiring. We provide the foundation.

Perpetual licence · no renewal 1× onboarding call · 30-day async Q&A
  • themiq-template repo access
  • 57 components — typed, Storybook stories included
  • URL slug resolver — multi-brand switching out of the box
  • NovaPay & Canvara demo themes — replace with your brand
  • 1× onboarding call (60 min) + 30-day async Q&A · 48h response
  • All 12 Pro resolvers
  • AI ThemeSpec Generator
  • Done-for-you brand setup
Tier 3

Retainer

Maintenance & evolution of the Themiq codebase we delivered — not a general dev retainer.

Minimum 3 months Requires prior Tier 2 delivery
  • Everything in Tier 2
  • New component additions on request
  • Quarterly brand review — token drift, palette QA
  • Priority Slack channel · 24–48h response · business hours
  • All 12 Pro resolvers + future resolver updates
  • Ongoing DS maintenance — MUI version upgrades
Tier 2 add-ons
Additional brand onboarding
·
Brand extraction from PDF
·
Additional architecture workshop

Pricing is shared during a scoping call — scope varies by project. All fees are ex-VAT. IVA applied where applicable under Portuguese law.

Ready to start?

Contact Themiq Pro — book a discovery call or send a project enquiry

Your design system.
Built once. Scales forever.

57 components · 12 resolver strategies · AI ThemeSpec Generator · Multi-brand from day one.

Frequently asked questions

30-minute discovery call · No commitment · We'll discuss your stack, number of brands, and which tier fits best.