Meet Frontfriend v4.Your brand. Your rules. Your agents, connected.Explore what’s new
DocumentationAdopt Frontfriend

Adopt Frontfriend

Bring your existing shadcn project into a shared design system.

Read as Markdown

Frontfriend v4 is designed as an addon for teams already building with shadcn. Adoption starts with your existing codebase and target, then connects tokens and component configuration.

Start with an inventory

Create a branch and commit your current UI. Record the framework, primitive library, Tailwind version, UI directory, local modifications and installed components. Identify any custom composition that differs from current upstream APIs.

Connect a Design System using Installation. Set its framework and primitive explicitly. Existing Radix code should stay on the Radix target unless you deliberately plan a primitive migration.

Extract your component styling

The CLI has a migration path for existing shadcn component styling:

npx frontfriend migrate --help
npx frontfriend migrate --component button --no-push

Use a single component first. --no-push keeps the generated configuration local for review. Check the output, semantic token mappings and remaining local classes before accepting a cloud write.

npx frontfriend migrate --component button

The v4 server migration implementation uses snapshots for recovery. Confirm the behavior supported by the package version you installed; do not assume a migration is complete just because a command exits successfully.

Adopt deliberately

Download the same canonical target only after reviewing the existing source and generated configuration. An overwrite can replace local modifications. Test loading, disabled states, focus rings, nested overlays and responsive layouts in your actual application.

What migration does not promise

The planned shadcn ingest feature is deferred until after v4 GA. Do not confuse it with the existing migrate command. Universal API equivalence, arbitrary component conversion and switching primitives without source changes are not guarantees.

Validate the result

  1. Check your source diff and configuration diff.
  2. Verify light and dark mode and semantic color contrast.
  3. Exercise the component with mouse and keyboard.
  4. Run typechecking, application tests and a production build.
  5. Repeat with the next component after the first one is accepted.

For existing Frontfriend v3 projects, use v3 to v4 migration instead. For the latest delivery state, see Release status.