An index, not a middleman.
Registry Index crawls public shadcn registries, reads every item's JSON, and tries to render it. Nothing is re-hosted for installation: the install command always points at the registry that owns the item.
What's in the index
- Registries
- 211 of 374
- Components
- 9.1k
- Demos of them
- 1.8k
- Run live
- 9.1k
Last crawled Sep 24, 2026. The index covers 211 of the 374 registries the crawler knows about: the ones with enough React components to render. The rest are Vue or Svelte, icon sets, hooks and utilities, or too small to be worth a page. Of the 32.7k entries those registries publish, 1.8k are files they ship to demonstrate another item — a `variants/` or `examples/` directory, not a component you would install on its own. Those run inside the page of the item they demonstrate, but they are not counted or listed as components here. Another 219 are brand logos a registry ships as artwork for its own site; they are left out entirely. Only what runs is shown: 21.6k more entries painted nothing when mounted, or were one more copy of a shadcn primitive — a button, an input — after the best five, and have no page here.
How previews are made
- Each item's files are copied into a shared Vite + React harness with its imports rewritten:
@/components/ui/*resolves to stock shadcn primitives, same-registry imports resolve to the registry's own files. - The item is mounted with no props in a headless browser. If it paints something, a screenshot is trimmed to the content and stored.
- Items that compiled can also run live on the site: the same harness serves them in a sandboxed iframe on a separate origin, in your color scheme. Hover, animation and interaction work; a screenshot shows one frame of that.
Third-party code never runs on this site's origin: live frames load from a separate origin in a sandboxed iframe, so they can't read this site's cookies or storage, and at most eight run at once.
Why some items have no preview
Of 9.1k React items, here is what the analysis says about each one before we even try to mount it. 0 more are Vue, Svelte, or have no framework file at all; the harness renders React only.
| Bucket | Items | Screenshots | Live |
|---|---|---|---|
Directly mountable Ships a React component we can mount with no props. Whether it then paints anything is a separate question — a button does, a data table with no data doesn't. | 8.7k | 7.4k | 8.7k |
Needs another registry Depends on items from a registry outside the index, or on a URL we can't resolve. Not bundled into the preview harness. | 239 | 140 | 239 |
Needs a provider or env Expects a context provider (theme, form, query client) or an environment variable the harness doesn't supply. | 192 | 113 | 192 |
Next.js only Imports next/image, next/link, server actions or similar. The harness is plain Vite + React. | 29 | 24 | 29 |
The renderer has so far run on a sample of each registry, not on everything, which is why even the mountable bucket has far fewer previews than items. Where an item has no screenshot of its own, its page borrows one from an example that demonstrates it, and says so.
Licensing
Every item belongs to its registry's authors and carries their license. Screenshots and live frames are shown to help you find things; check the registry before you ship. Nothing is re-hosted for installing: every install command points at the registry that owns the item.