Uqudo UIregistry

Introduction

The shared component registry behind every Uqudo project.

Uqudo UI is a shadcn registry, not an npm package. Components are not imported from a dependency: the shadcn CLI copies their source into your project, where you own and can edit them.

That keeps one canonical implementation of a button, a logger or a layout block in this repository, while each consuming project keeps full control of the code it ships.

npx shadcn@latest init --preset "https://ui-components.dev.uqudo.io/r/init-uqudo-ui.json?base=radix" --yes
npx shadcn@latest add @uqudo/button

The first command is a one-time setup: it writes components.json, installs the theme as app/uqudo-theme.css and registers the @uqudo namespace. The installation guide walks through it, including the variant for projects that already use shadcn.

How it works

registry.json in this repository is the source of truth. It lists every distributable item and the files each one ships.

shadcn build compiles it to static JSON under public/r/, which this app serves at https://ui-components.dev.uqudo.io/r/{name}.json.

The CLI reads that JSON, resolves dependencies, and writes the files into your project — components land in components/uqudo/ui/, so they never collide with your own components/ui/.

Why a registry instead of a package

npm packageRegistry
Where the code livesnode_modules, read-onlyYour repository, editable
Styling overridesProp or CSS escape hatchesEdit the component
UpgradesBump a versionRe-run add, review the diff
Bundle costWhole packageOnly the files you added

The trade-off is deliberate: updates are explicit rather than automatic. Re-run add for an item to pull the latest version and review the change like any other diff.

Next steps

On this page