Build your own component registry
A build system for component registries, driven by extensions. Typed sources, a configurable pipeline, and a UI preset to start from.
Extensions
The builder runs a pipeline of extensions. Start with
uiRegistryPreset(), or write your own for any kind of registry.defineConfig()
One typed config covers sources, package mappings, and registry entries. A typo shows up as a TypeScript error.
Sources and targets
Map each registry namespace to a source folder, a package name, and a reference path. Imports resolve across workspaces.
Schema validation
Every item is checked as a
registry:*namespace string, with the same rule across sources, mappings, and schemas.Cached builds
A phased build context with a built-in cache. Only the registries you touched run again, so large ones still finish in seconds.
Ready for CI
Built-in extensions add banners, colors, a component index, and validation. Output hooks fit into any CI job.
Install
Add a registry-build.config.ts, run the CLI, and ship your registry.
Install
bun add -D @gentleduck/registry-buildBuild your registry
bunx registry-build build
Free & open source
gentleduck is MIT licensed and will always be free and open source. Every package ships with full source access — fork it, modify it, own it.