# shadcn/ui

By **shadcn** · Software & Tools

shadcn/ui, open-source, copy-owned UI components for developers building their own design system with full code control.

- Source: https://ui.shadcn.com/
- Repository: https://github.com/shadcn-ui/ui
- Tags: open-source, ui-components, design-system, cli, tailwind, react, ai-ready, mit-license
- Pricing: free
- Upvotes: 0

## Features

- Copy-owned component model: source lands directly in your repo via CLI
- 70+ accessible UI components including Charts, Sidebar, Data Table, and Chat primitives
- Composable, predictable component interfaces across the entire library
- Built-in CLI for fetching and distributing components with a flat-file schema
- Custom registry support, including private GitHub registries
- AI-ready open code: LLMs can read, reason about, and modify components
- Theming, RTL, and form utilities included
- MIT license

---

## Why it matters
Most component libraries trap you. You install a package, and the moment you need to deviate from its opinions, you are writing workarounds, overriding styles, or mixing incompatible APIs from three different libraries. shadcn/ui breaks that pattern by handing you the actual source code of every component.

## The big picture
shadcn/ui is described in its own docs as "not a component library" but rather "how you build your component library." You copy components directly into your project via a CLI. From that point, the code is yours to read, edit, and extend without any abstraction layer between you and the markup.

## How it works
The CLI fetches a flat-file component schema and writes the component source into your repo. Every component follows a composable interface, so they are predictable when you stack them together. The project ships with a registry system, so teams can distribute their own customized component sets across projects, including private GitHub registries.

## Zoom in
Five core principles drive the project, per the docs: Open Code (you see every line), Composition (a common, composable interface), Distribution (CLI plus flat-file schema), Beautiful Defaults (carefully chosen out-of-the-box styles), and AI-Ready (open code that LLMs can read and modify directly). That last point matters: because there is no compiled abstraction, an agent or coding model can reason about and rewrite your components the same way a human would.

## By the numbers
The component catalog covers over 70 primitives, from everyday building blocks like Button, Input, and Badge to heavier pieces like Data Table, Chart, Sidebar, Carousel, and a new suite of Chat interface components including Message, Bubble, and Message Scroller. The project is MIT-licensed and the source is on GitHub.

## Yes, but
Owning the code cuts both ways. You get full control, but you also own every future bug fix and upgrade. When shadcn/ui ships an improved version of a component, you merge it manually rather than bumping a version number. Teams that want zero-maintenance dependency management will find this model more demanding than a traditional library.

## The bottom line
shadcn/ui is the right starting point when your product needs a design system that is truly yours: a polished, accessible base you extend rather than fight against. It pairs naturally with AI-assisted development because every component is legible to a coding model, making it one of the most agent-friendly UI foundations available today.

## FAQ

### What exactly is shadcn/ui?

shadcn/ui is an open-source set of accessible, beautifully designed UI components distributed as copyable source code rather than an installable NPM package. Per its own docs, it is not a component library but a foundation for building your own. You use its CLI to pull individual component files into your project, at which point you own the code outright and can modify it however you need.

### How do I add shadcn/ui components to my project?

shadcn/ui ships a CLI tool that fetches component source files and writes them directly into your codebase using a flat-file schema. You run the CLI command for the component you want, and the files land in your project ready to edit. Full documentation, including installation steps for different frameworks, is available at ui.shadcn.com/docs.

### Is shadcn/ui free and open source?

Yes. shadcn/ui is licensed under the MIT license, as stated in its GitHub repository. There are no paid tiers or commercial restrictions mentioned in the sources; the code is freely available on GitHub and can be used in personal and commercial projects.

### What is shadcn/ui best for?

shadcn/ui is best for teams that need a design system they can fully own and customize, without fighting a third-party library's opinions. It is particularly well-suited to AI-assisted development workflows because every component is open, readable source code that LLMs can understand and modify directly, a capability the project explicitly calls out as a core design principle.

### How does shadcn/ui differ from a traditional component library like MUI or Chakra?

Traditional libraries ship compiled packages you install via NPM; customization means wrapping components or overriding styles, and you rely on the library's release cycle for fixes. shadcn/ui instead copies raw component source into your repo, giving you full transparency and edit access. The tradeoff is that you own all future maintenance: upgrading a component means manually merging changes rather than bumping a semver number.

### What are the main limitations of shadcn/ui?

The copy-ownership model means component upgrades are manual rather than automatic, which increases maintenance burden as the upstream project evolves. Teams managing many repositories may find distributing and keeping components in sync across projects more complex, though the built-in registry system is designed to help with this. The flat-file, open-code approach also assumes developers are comfortable reading and modifying component internals, which is less suitable for teams that prefer abstracted, zero-touch dependencies.

---
[View on Analog](https://analoghq.ai/shadcn/software-tools/shadcn-ui)