Lock-in
What you own at each layer, what stays proprietary, and what leaving costs — measured, not promised.
Five layers, measured
Every component library locks you in somewhere. The honest question is where, and how much. Measured on the current registry of 132 items, from the bottom up:
fetch in the
codebase inlines already-rendered notification images from your own origin and falls back to nothing. MIT licensed.
If this project disappears, your app keeps running unchanged.code, Streamdown (Vercel's streaming Markdown
renderer) in markdown, six ProseMirror packages in chat-composer even when it renders as a plain
textarea.data-skin, and ControlUiSkin are
proprietary vocabulary, like any library's. They live in files you own, so they cannot be revoked — but they are
ours, not a standard.skin.css, knob re-values, adornments — is expressive precisely because it is
not portable. A shadcn theme is strictly more portable; a skin is strictly more expressive. Pick per
project.What leaving costs
Leaving is mechanical, not catastrophic. The component source, hooks, and utilities are plain React in your tree and need nothing to keep working. What you would rewrite is the paint: recipes and skins express the entire visual layer through the knob contract, so exiting the system means re-inlining that CSS into whatever you move to — utilities, CSS modules, another library's conventions. No tool exists for that migration today.
The half-exit is cheaper and often enough: stop updating. Owned source has no license server and no peer dependency on a runtime package, so a frozen install is a complete, working snapshot.
Continuity
Everything needed to rebuild the system is public: the full registry source, the generators that derive every payload, and the generated payloads themselves are committed to the GitHub repository under MIT. A fork can regenerate and serve the registry without any private piece.
What a fork does not get yet is governance — semver on the anatomy contract, a changelog, rename aliases, and a doctor that runs against your install rather than this repo. Until those ship, the honest summary is: the code survives anything; the system that maintains the code survives through this repository.