ClanflareUI
A community-platform operating system for white-label clients. Every customer ships with the same components, the same motion grammar, the same Cmd+K. The only thing that changes is the customer.
What ships in every white label
Dashboard. LMS with progress tracking. A short-form vertical reel feed. Channel-based chat with pinned messages and reply indicators. Voice rooms with mute, video, screen-share, recording. An AI assistant with suggested prompts. A members directory. A built-in task tracker. Cmd+K global search. A four-step onboarding flow. All of it shadcn'd into one system that the customer only sees the outside of.
The motion grammar
Framer Motion springs named for how they feel, not what they do. snappy, responsive, gentle, bouncy. The names live in a config the rest of the codebase imports. When a component breaks the grammar, the diff makes it obvious, because you have to invent a fifth spring name to justify the breakage.
Both modes, full parity
The system is OLED-dark-first because that's the customer-facing default. But every component has full light-mode parity, and switching modes is a single config flip per deployment. Light mode was the first thing every white-label customer asked for. So light mode shipped with the same care as dark.
What it cost
Three-tier responsive across mobile, tablet, and desktop means three layout decisions per surface. There are roughly forty surfaces. The component count grew faster than I planned for, and forced a packages/ refactor mid-build. The lesson: design-system surfaces compound nonlinearly. Plan storage for the assumptions you don't know you'll ship.
- 2024 / 2026
- Creative Director
- Next.js 16
- React 19
- Tailwind CSS 4
- shadcn/ui
- Framer Motion
- Zustand
- Albert Sans
- Inter