Free browser-only migration inventory

Find the risky parts of a Radix-to-Base UI migration.

Paste one Shadcn component. The analyzer inventories Radix packages, asChild composition, popup structure, state selectors, and behavior callbacks—then gives you a review plan and candidate Base UI imports.

Runs entirely in this browser tab. Your source is not uploaded. No email is required for the report.

Analyze one component now.

Paste a Shadcn wrapper or Radix-based component. No source code leaves your browser; the server receives only credentialed same-origin action metadata, deduplicated daily.

Paste or edit component.tsx

A migration inventory you can use before touching the codebase.

The demo handles one component at a time. The planned local CLI would expand the same review model across a repository and produce file-level diffs without uploading proprietary source.

01

Inventory actual dependencies

Identify Radix packages and imported namespaces, then generate candidate imports using the current @base-ui/react package name.

02

Expose structural work

Count asChild, Content, Portal, data-state, and callback hotspots that should not be converted through blind search-and-replace.

03

Take the plan with you

Copy or download a Markdown report with source-grounded counts, review actions, and links to the relevant Base UI documentation.

Questions, answered clearly.

The current scope, privacy model, and next step without launch-day promises.

Is my component uploaded to the server?

No. Analysis runs inside your browser tab. The server records only credentialed same-origin action names, deduplicated per public IP, action, and UTC day with a secret HMAC; it never receives the pasted component.

Why does the demo not rewrite the component automatically?

A safe migration must preserve controlled state, focus behavior, accessibility, styling, portals, and project-specific wrappers. The current tool identifies review work without presenting an untested rewrite as correct.

Which Base UI package name does it use?

It suggests the current @base-ui/react package documented by Base UI, rather than the older @base-ui-components/react name.

What would the local CLI add?

Repository-wide scanning, file references, component-specific checks, migration diffs, and test guidance. Early-access requests help decide whether that larger build is worthwhile.

Early access

Need this inventory across an entire repository?

Use the browser analyzer without signing up. Join only if a local CLI with repository-wide scanning, reviewable diffs, and component-specific checks would save you meaningful migration time.