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.