shadcn registry.json builder

Fill in a form and get a valid registry item and registry.json, with the file types inferred and the rules the shadcn CLI enforces checked as you type.

txt
A registry:ui item is expected under components/ui, which is where the CLI puts it.
registry-item.jsonjson
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "marquee",
  "type": "registry:ui",
  "title": "Marquee",
  "description": "A row of items that scrolls on its own.",
  "dependencies": [
    "motion"
  ],
  "registryDependencies": [
    "button",
    "card"
  ],
  "files": [
    {
      "path": "components/ui/marquee.tsx",
      "type": "registry:ui"
    },
    {
      "path": "hooks/use-marquee.ts",
      "type": "registry:ui"
    }
  ]
}
registry.jsonjson
{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "acme",
  "homepage": "https://acme.com",
  "items": [
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "marquee",
      "type": "registry:ui",
      "title": "Marquee",
      "description": "A row of items that scrolls on its own.",
      "dependencies": [
        "motion"
      ],
      "registryDependencies": [
        "button",
        "card"
      ],
      "files": [
        {
          "path": "components/ui/marquee.tsx",
          "type": "registry:ui"
        },
        {
          "path": "hooks/use-marquee.ts",
          "type": "registry:ui"
        }
      ]
    }
  ]
}
Made something you like?A registry with thousands items

Questions

What is a registry for?+

It lets anyone install your components with the shadcn CLI from your own URL. The registry.json lists the items, and each item names its files, its npm dependencies and the other registry items it needs.

How do registryDependencies work?+

They are other items, by name, installed before yours. A bare name refers to shadcn's own registry; a full URL points at someone else's, which is how a component built on another registry stays installable.

Where do the file types come from?+

A path under hooks or lib is typed as such, and everything else takes the item's own type. The CLI uses that to decide where each file lands in the target project.

Related tools

The tools are free. So is most of the library.

1935 blocks and 989 pieces for shadcn/ui and Tailwind, built on the same tokens these tools write. Install one with a command and the code is yours.

No signup for the tools. MIT for free blocks, commercial licence for Pro.

Markdown version