The open source registry index is a list of all the open source registries that are available to use out of the box.
When you run shadcn-ng add or shadcn-ng search, the CLI will automatically check the registry index for the registry you are looking for and add it to your components.json file.
You can see the full list at https://ui.adrianub.dev/r/registries.json .
Adding a Registry
You can submit a PR to add a registry to the index by adding it to the registries.json file.
Here’s an example of how to add a registry to the index:
{ "@acme": "https://registry.acme.com/r/{name}.json", "@example": "https://example.com/r/{name}" }
Requirements
- The registry must be open source and publicly accessible.
- The registry must be a valid JSON file that conforms to the registry schema specification .
- The registry is expected to be a flat registry with no nested items i.e
/registry.jsonand/component-name.jsonfiles are expected to be in the root of the registry. - The
filesarray, if present, must NOT include acontentproperty.
Here’s an example of a valid registry:
{ "$schema": "https://ui.adrianub.dev/schema/registry.json", "name": "acme", "homepage": "https://acme.com", "items": [ { "name": "login-form", "type": "registry:component", "title": "Login Form", "description": "A login form component.", "files": [ { "path": "registry/new-york/auth/login-form.tsx", "type": "registry:component" } ] }, { "name": "example-login-form", "type": "registry:component", "title": "Example Login Form", "description": "An example showing how to use the login form component.", "files": [ { "path": "registry/new-york/examples/example-login-form.tsx", "type": "registry:component" } ] } ] }
Validation
At the root of the shadcn-ng project, you can run the following command to validate the registries.json file.
pnpm validate:registries
This will validate the registries.json file and output any errors.
Once you have submitted your PR, it will be validated and reviewed by the team.