Skip to main content

On This Page

UnfoldCMS: The First Production CMS Built Entirely on shadcn/ui

2 min read
Share

These articles are AI-generated summaries. Please check the original sources for full details.

Is There a CMS Built with shadcn/ui?

UnfoldCMS is the first production CMS where the entire admin is built on shadcn/ui. It implements 51 real components across 205 admin pages using a Laravel 12 and React 19 stack.

Why This Matters

Most ‘shadcn CMS’ results are merely dashboard templates or demos that lack essential production infrastructure like content modeling, RBAC, and media pipelines. By shipping a full product, UnfoldCMS demonstrates the shift from proprietary vendor component libraries—which often lock developers into specific plugin APIs or CSS overrides—to a ‘forkable’ philosophy where developers own the raw .tsx files of their admin interface.

Key Insights

  • The system utilizes a specific tech stack consisting of Laravel 12, React 19, Inertia 2, and Tailwind v4 to eliminate separate Next.js layers (2026).
  • The ‘shadcn-native’ concept replaces proprietary UI vocabularies found in Strapi or Payload with standard files located in resources/js/components/ui/ for direct editing.
  • Theming is implemented via CSS variables in Tailwind v4, allowing three distinct themes (Default Blue, Purple, Soft Purple) to be switched via a single data-theme attribute.
  • Production scale requirements led to the implementation of a block-based editor with markdown export and Spatie Media Library for WebP conversion.

Working Examples

CSS variable configuration for switching primary theme colors across all shadcn components.

[data-theme="default"] { --primary: oklch(0.546 0.245 262.881); }
[data-theme="purple"] { --primary: oklch(0.488 0.243 264.376); }
[data-theme="soft"] { --primary: oklch(0.611 0.137 297.4); }

Practical Applications

  • Developer-first agencies needing to extend CMS admin functionality without fighting proprietary design systems by editing .tsx files directly.
  • Enterprises wanting to avoid vendor lock-in by using a source-available Core build that can be self-hosted and forked if the provider disappears.

References:

Continue reading

Next article

Solving Type Ownership and Schema Drift in AI-Powered Service Layers

Related Content