apps/v4/content/docs/registry/registry-json.mdx
The registry.json schema is used to define your custom component registry.
{
"$schema": "https://ui.shadcn.com/schema/registry.json",
"name": "shadcn",
"homepage": "https://ui.shadcn.com",
"items": [
{
"name": "hello-world",
"type": "registry:block",
"title": "Hello World",
"description": "A simple hello world component.",
"registryDependencies": [
"button",
"@acme/input-form",
"https://example.com/r/foo"
],
"dependencies": ["[email protected]", "motion"],
"files": [
{
"path": "registry/new-york/hello-world/hello-world.tsx",
"type": "registry:component"
}
]
}
]
}
You can see the JSON Schema for registry.json here.
The $schema property is used to specify the schema for the registry.json file.
{
"$schema": "https://ui.shadcn.com/schema/registry.json"
}
The name property is used to specify the name of your registry. This is used for data attributes and other metadata.
{
"name": "acme"
}
The homepage of your registry. This is used for data attributes and other metadata.
{
"homepage": "https://acme.com"
}
The items in your registry. Each item must implement the registry-item schema specification.
{
"items": [
{
"name": "hello-world",
"type": "registry:block",
"title": "Hello World",
"description": "A simple hello world component.",
"registryDependencies": [
"button",
"@acme/input-form",
"https://example.com/r/foo"
],
"dependencies": ["[email protected]", "motion"],
"files": [
{
"path": "registry/new-york/hello-world/hello-world.tsx",
"type": "registry:component"
}
]
}
]
}
See the registry-item schema documentation for more information.