shadcn/ui Makes Base UI the Default, Retiring Radix as First Pick
shadcn/ui, the popular copy-paste component collection, has switched its default headless library from Radix to Base UI as of July 2026. The move is largely a formality: rather than force a swap, the maintainers rebuilt every component on Base UI while preserving the same abstraction and shipped a picker in shadcn/create. Users made the call themselves — new projects were already choosing Base UI over Radix two to one. Base UI, built by the original Radix team, has hit 1.6.0 with more than 6 million weekly downloads, and the maintainers now use it for all their own new work.
Radix is not being deprecated. It remains fully supported, both libraries continue to receive every update and new component (except Base-only ones), and existing apps are explicitly told not to migrate. Teams that still prefer Radix can opt in with a single -b radix flag, which matters most for non-interactive CI scripts that assumed the old default.
The more interesting piece is how migration is handled: instead of a codemod, shadcn ships a migration skill for coding agents. The reasoning is that developers customize these components — adding variants, props, and classes — so a codemod would break exactly the files people touched. The skill instead encodes hand-verified knowledge of every rename, prop change, and behavior difference, letting an agent carry over customizations, fix mechanical changes like asChild becoming render, and flag behavioral differences rather than silently patching them. It works progressively, one component per commit on a branch, leaving working typechecked code and per-component reports. A test run on 60-plus components (36 on Radix) finished in roughly 25 minutes at about 10k tokens per component.
Read the full article
Continue reading at Hacker News →This is an AI-generated summary. Read the original for the full story.