Meet Frontfriend v4.Your brand. Your rules. Your agents, connected.Explore what’s new
DocumentationRegistry & installation

Registry & installation

Source files in your repository, resolved for the right target.

Read as Markdown

The canonical registry distributes Frontfriend component source for an explicit framework and primitive. It is not a runtime component CDN. Downloaded code belongs in your application repository and participates in your normal review and build process.

Target-aware addresses

https://registry.frontfriend.dev/r/v4/react/base/button.json
https://registry.frontfriend.dev/r/v4/react/radix/button.json
https://registry.frontfriend.dev/r/v4/react/aria/button.json
https://registry.frontfriend.dev/r/v4/vue/reka/button.json

These are canonical route shapes. Use the published registry version that matches your application.

Use the Frontfriend CLI

npx frontfriend download button -f react --primitive radix --registry v4

The CLI requires your Design System configuration and uses your target selection. Review dependency output and install required packages. For a new component, prefer explicit names over downloading the entire catalogue.

Use the shadcn CLI

When the canonical route is published and your project is initialized, the registry format is compatible with shadcn installation:

npx shadcn@latest add https://registry.frontfriend.dev/r/v4/react/base/button.json

Initialization can register the Frontfriend namespace in components.json. Inspect that configuration when an install selects the wrong target. Keep the namespace, project metadata and source imports aligned.

Composition and dependencies

Registry items declare dependency relationships and carry generated metadata where supported. Some components depend on Frontfriend Icon or Spinner. Do not remove those imports merely because the underlying primitive can render without them.

Publication gates

The v4 catalogue has 85 logical components and four explicit target mappings. Source, contracts, styling, dependencies, stories, runtime checks and provenance participate in publication readiness. Missing cells are errors, not permission to fall back to a different primitive.

For private code, read Private components. For target semantics, read Choose your primitives.