Registry

Source of truth for all registry items. Follows bundle-based architecture.

Views1
PublishedFeb 8, 2026

Loading actions...

5 minBeginnerpromptSingle file

Skill content

Main instructions and any bundled files for this skill.

markdown

Registry

Source of truth for all registry items. Follows bundle-based architecture.

Registry Structure

src/registry/
├── [bundle]/
│   ├── ui/           # Composable building blocks (registry:ui)
│   ├── components/   # Opinionated UI pieces (registry:component)
│   ├── blocks/       # Full sections/pages (registry:block)
│   ├── examples/     # Demos for ui/components (registry:example)
│   ├── hooks/        # Reusable hooks (registry:hook)
│   ├── styles/       # Semantic tokens (registry:style)
│   └── registry.ts   # Bundle entrypoint, combines all items in the bundle into a single TypeScript registry object
└── index.ts          # Main registry (combines all bundles, the real **source of truth**)

Bundles: pro-marketing

Adding Items (Quick Flow)

  1. Create source file in correct folder
  2. Create example file (for ui/components only)
  3. Add entry to [bundle]/[type]/_registry.ts (alphabetical order)
  4. Run pnpm registry:build

For full details: docs/REGISTRY.md

Key Files

FilePurpose
index.tsMain registry entrypoint
[bundle]/registry.tsBundle entrypoint
[bundle]/[type]/_registry.tsType-specific item definitions

Internal Dependencies

Use namespaced keys for registry items depending on other items:

import { getNamespacedRegistryDependency, getNamespacedRegistryDependencies } from "@/utils/registry"

registryDependencies: [
  "button",  // shadcn default
  getNamespacedRegistryDependency("announcement"),  // → @shadcraft/announcement
  ...getNamespacedRegistryDependencies("chip", "tagline"),  // → @shadcraft/chip, @shadcraft/tagline
]

Build Command

pnpm registry:build

Auto-Generated Files (DO NOT EDIT)

FileGenerated By
__index__.tsxpnpm registry:build
registry.json (root)pnpm registry:build
public/r/*.jsonpnpm registry:build
Share: