After building a real white-label version of GoHighLevel (over 3,000 lines of custom code), I’ve found major structural issues that make it almost impossible to maintain long term.
Main problems
Tailwind classes are hardcoded directly into components.
There is no token layer for consistent colors, spacing, or typography.
Each update breaks overrides and resets custom branding.
Why this matters
A proper design system would reduce maintenance costs, improve UI consistency, and finally make true white-labeling possible without fragile CSS patches. It would also speed up internal development and make the product more reliable for both the GHL team and agencies.
Suggested solution
Implement design tokens (color, spacing, typography, states).
Map Tailwind utilities to tokens instead of hardcoding them.
Create a shared component library or Storybook layer.
Introduce an official theme layer for agencies to extend safely.
GoHighLevel has matured into a platform where long-term scalability matters more than quick styling fixes. A design-system foundation will make everything faster, lighter, and more future-proof.