# ReUI: A shadcn/ui Component Library with 22 Custom Dashboard Primitives

> ReUI is a free, open-source extension of the shadcn/ui ecosystem that ships 1,105 copy-paste components across 74 categories, including 22 custom primitives not available in base shadcn/ui. It uses a copy-and-own model: there is no npm package to install, and components are added to a project's source tree directly.

**keenthemes/reui** — Design-forward shadcn kit for interfaces that stand out. 1000+ free patterns!

- Repository: https://github.com/keenthemes/reui
- Website: https://reui.io
- Stars: 3,547 · Forks: 155
- Language: TypeScript
- License: MIT
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/keenthemes-reui

## What ReUI Is and the Problem It Addresses

shadcn/ui provides a set of accessible, composable React component primitives built on Radix UI and styled with Tailwind CSS. It covers the foundational elements: buttons, dialogs, dropdowns, tables. It does not include the data-heavy widgets that production dashboards require, such as sortable data grids with column pinning, full-featured event calendars, or multi-level cascading dropdowns.

ReUI addresses that gap by extending the shadcn/ui ecosystem with 22 custom primitives and 1,105 composed examples that show those primitives in realistic dashboard contexts rather than isolated demos. The target users are React developers, particularly those building internal tools, admin panels, and data visualization dashboards, who want components that look production-ready and are already wired to Tailwind CSS without requiring a separate design system purchase or runtime npm dependency.

## The Copy-and-Own Model

ReUI does not publish an npm package for components. The README describes its approach as a copy-and-own model: components are copied from the ReUI registry into the project's own source tree, where the developer owns and modifies them directly.

This is the same distribution model used by shadcn/ui itself. The practical effect is that a ReUI component has no runtime dependency on the ReUI library. If the project is updated six months later, the copied component does not change unless the developer applies changes manually. This gives teams full control over component code but removes any automatic updates when ReUI releases fixes or improvements.

The .env.example file in the repository confirms the local development setup:

```
# Public site URL. Used for absolute URLs in metadata, sitemap, and OG images.
# NEXT_PUBLIC_APP_URL=http://localhost:3000

# Path to a local checkout of the private ReUI source monorepo, used by
# `pnpm sync` to refresh the component registry. Defaults to `../reui.io`.
# REUI_SOURCE=../reui.io
```

The site itself runs locally with zero configuration for most purposes; the environment variables are all optional overrides.

## Running the ReUI Development Environment

The repository is a Next.js monorepo using pnpm workspaces. Running the development server requires:

```bash
pnpm dev
```

Before dev starts, the predev script runs pnpm components:build to compile the component registry. For concurrent package development, the alternate command is:

```bash
pnpm dev:packages
```

This command builds components, builds the packages, and then runs both a package watcher and the Next.js dev server in parallel using concurrently. The full production build runs:

```bash
pnpm build
```

The prebuild step runs pnpm registry:prod, which builds components, builds packages, verifies the lockfile, and compiles the registry. The typecheck script runs tsc --noEmit for type validation.

## The 22 Custom In-House Components

The README lists all 22 custom components with preview links and separate documentation pages for Radix UI and Base UI variants. Representative examples illustrate the scope:

Data Grid is an advanced table powered by TanStack Table and virtual rendering, with drag-and-drop column reordering, column pinning, resizing, and infinite scroll. The README lists 34 component variants for it.

Event Calendar provides month, week, day, N-day, and agenda views with drag-and-drop event scheduling, recurring events, time zone support, and an external CRUD contract for connecting to a data source. Five variants are documented.

Gantt provides split tree and timeline panes, day-to-year zoom scales, drag-and-resize scheduling, progress tracking, summary rollups, and an external API for persistence.

Cascader is a nested multi-level combobox with drill-down, column and tree modes, breadcrumb navigation, search, async data loading, and custom row rendering.

Code Block uses Shiki for syntax highlighting and is designed for documentation, diff display, AI chat output, and streaming agent responses.

All 22 components are available in both Radix UI and Base UI flavors. The dual-API design allows teams already committed to one accessibility primitive library to choose the matching variant.

## MCP Fluency and Agent Integration

The README subtitle describes ReUI as having "MCP fluency for agents." The repository contains a .claude/ directory, indicating that Claude Code configuration is included. The README states that ReUI is designed for AI coding agent workflows in addition to human developers.

This positioning reflects a practical concern: AI coding agents generating UI code from base shadcn/ui often produce default-looking results because the training data skews toward the standard primitives. ReUI provides an extended registry that agents can reference when generating more specialized components, such as a Data Grid or an Event Calendar, without the developer needing to manually specify the implementation approach.

The MCP integration details are available at reui.io/docs rather than documented in full in the README.

## Theme and Style Compatibility

ReUI works with all shadcn/ui Create styles and color token systems. The README lists five named theme variants: Vega, Nova, Maia, Lyra, and Mira, in addition to the base New York and Default styles. This means a project already configured with a shadcn theme can add ReUI components without restyling them.

All components are fully typed with TypeScript. The repository's package.json sets "type": "module" and uses a pnpm workspace structure with separate packages under packages/. The prettier and eslint configurations are included in the repository for teams who want consistent formatting across copied components.

## Limitations and the Pro Tier

The 1,105 free components and 22 custom primitives cover a substantial range of dashboard patterns, but the README links to a ReUI Pro tier at reui.io/pricing. The README does not specify which features are reserved for Pro.

Because components are copied rather than installed as a package, there is no diff tool or upgrade path built into the workflow. When Tailwind CSS or a Radix UI primitive changes in a breaking way, teams need to manually review and update any ReUI component that relies on the affected API. This is the same operational trade-off that applies to base shadcn/ui components.

The repository has a reui-lint.config.mjs and a reui-lint.shared.mjs for enforcing code style consistency across the registry. Both files apply ESLint rules specific to the design system components. Running pnpm lint:ds on the registry-reui directory checks the component source against those rules, and pnpm lint:ds:errors shows only errors rather than warnings. Teams who copy components and later modify them locally will not automatically get linting enforcement unless they wire those rules into their own project.

The repository ships example workflows in the registry-reui/ and registry/ directories, and the pnpm registry:verify script validates that the registry build is consistent. The scripts/ directory contains the build-components, build-component-packages, and build-registry automation. The repository is licensed under MIT. The last push was on 2026-09-16.

## Conclusion

ReUI is a strong fit for React and Next.js teams building admin dashboards or data-heavy internal tools who need components beyond the standard shadcn/ui set and prefer to own the source code rather than depend on an npm package at runtime. The 22 in-house components cover patterns that base shadcn/ui does not provide, including Data Grid with TanStack Table, an Event Calendar with drag-and-drop, and a Gantt chart. Before starting, verify that the Radix UI or Base UI API variant is the right choice for the target project; each in-house component ships both, documented separately at reui.io/docs. The last push was on 2026-09-16.

## FAQ

### What is the difference between ReUI and base shadcn/ui?

Base shadcn/ui provides foundational accessible primitives. ReUI extends those with 22 additional in-house components not in shadcn/ui, such as Data Grid, Event Calendar, Gantt, and Cascader, plus 1,105 composed examples in realistic dashboard layouts. Both use the same copy-and-own distribution model.

### Does ReUI require installing an npm package?

No. ReUI uses the same copy-and-own model as shadcn/ui: components are copied from the registry into the project's source tree. There is no runtime npm dependency on a ReUI package. The local development environment uses pnpm, but that is for running the ReUI documentation site, not for consuming components.

### Can ReUI components be used with both Radix UI and Base UI?

Yes. The README states that all 22 in-house components ship in both Radix UI and Base UI variants. Each variant has its own documentation page at reui.io/docs, and developers choose the variant that matches the accessibility primitive library already in their project.

## Sources

- [Issues](https://github.com/keenthemes/reui/issues)
- [keenthemes/reui on GitHub](https://github.com/keenthemes/reui)
- [License: MIT](https://github.com/keenthemes/reui/blob/main/LICENSE)
- [Project website](https://reui.io)
- [README](https://github.com/keenthemes/reui/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/keenthemes-reui
