Registry Architecture

How the Jolocky registry serves items to the shadcn CLI as multi-file registry items, and how free and Pro access works.

Jolocky runs a registry that follows the shadcn registry item format. Instead of publishing a compiled npm package, it delivers each item's editable source code straight into your repository through the shadcn CLI.

Why a Registry

  • You can edit everything: The animation, markup, and CSS are in your project, so there are no third-party styles to override.
  • You only get what you install: Each item is installed on its own. There is no shared package that pulls unused code into your bundle.
  • Readable structure: Items are split into small files by role instead of one long file.

Endpoints

EndpointReturns
https://www.jolocky.com/r/index.jsonThe list of all items, with name, tier, category, and registry URL. No source code.
https://www.jolocky.com/r/<item>.jsonOne registry item, including the full source of every file.

Always use https://www.jolocky.com with www. The apex domain redirects to www, and Node's fetch drops the Authorization header on that redirect.

What Happens on a Request

When the CLI requests /r/<item>.json, the registry:

  1. Looks up the item and returns 404 if it does not exist.
  2. If the item is Pro, checks the license key sent with the request and returns 403 if the key is missing, invalid, or expired. Free items need no key.
  3. Applies a rate limit and records the request.
  4. Returns the registry item JSON: the item's files with their target paths, plus the npm packages detected from the item's imports.

File Roles

Every file installs under the item's own folder, components/footers/<item>/:

  • registry:block: The main component, for example aurora-drift-footer.tsx.
  • registry:component: Sub-components, icons, and the index.ts that re-exports the component.
  • registry:hook: React hooks used by the item, in hooks/.
  • registry:lib: Helpers, constants, default content, prop types, and the scoped CSS (lib/, data/, styles/, types.ts).

Next Steps