GoHighLevel White-Label Theme Customizer — Full Dashboard Reskin
A theme engine that reskins every GoHighLevel page from a single injected script — a live-preview builder, ~50 tunable tokens per theme, and CDN-compiled CSS per location.
100+
Sub-accounts themed
<10s
Edit → live
0
Breakages in 6 months
The challenge
What made this hard
Agencies reselling GoHighLevel all face the same problem: every client sees the same stock dashboard. The platform offers a logo swap and little else, so a “premium white-label CRM” looks identical to a $97/month template. An agency client wanted their 40+ sub-accounts to feel like custom software — a different look per client, without touching GHL's code or breaking on GHL's frequent UI updates.
The solution
How I built it
I built a full theme engine that reskins every GHL page through a single injected script tag:
A library of complete design systems
Neo-Brutalist, Skeuomorphism, Dark Glass and more — each defined as CSS variable sets, not hardcoded styles, so every theme exposes ~50 tunable tokens (colors, fonts, radii, shadows).
A live-preview builder
Admins tweak any token and instantly see a faithful miniature of the real GHL dashboard — conversations, calendar, contacts, pipeline, payments and launchpad all repaint in real time.
Human-friendly controls
Every CSS variable maps to a plain-English label (“Your Message Bubble”, “Corner Radius”) with a one-line description, so non-technical agency staff can customize safely.
Delta storage
Only overridden variables are stored per location — base-theme updates flow automatically to every untouched token, so improving a theme upgrades every client at once.
Under the hood
Technical highlights
Next.js 16 + React 19 frontend, Express + MongoDB backend, and a public CDN layer that compiles base theme + overrides into cached CSS per location (LRU cache, ETag revalidation, version-busted on every save). The injected applier is idempotent, SPA-safe (a MutationObserver re-applies on GHL route changes), and fails silently — a bad config can never break a client's CRM.
Theme edits go live in under 10 seconds via cache-busted CDN
Zero client-side breakage across 6 months of GHL UI updates
What the client said
A note from the client
"Honestly, this changed how our clients see us. Every sub-account now looks like our own software instead of stock GoHighLevel, and I can spin up a whole new brand theme in minutes from one dashboard. We're six months in and not a single client login has broken through a GHL update. It made our platform feel premium enough to justify what we charge — worth every penny." — Marcus Delgado, Founder, Northbound Media. Rated 5 out of 5. Reviewed March 2025.