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

Project configuration

Make the Design System and target explicit.

Read as Markdown

Place frontfriend.config.js at the application root. The file connects your application to a Design System and tells the downloader where component source belongs.

A React application

export default {
  'ff-id': 'YOUR_DESIGN_SYSTEM_ID',
  framework: 'react',
  primitive: 'radix',
  aliases: {
    ui: '@/components/ui',
  },
};

A Vue application

export default {
  'ff-id': 'YOUR_DESIGN_SYSTEM_ID',
  framework: 'vue',
  primitive: 'reka',
  aliases: {
    ui: '@/components/ui',
  },
};

Use module.exports in CommonJS projects. Keep the module format consistent with your application’s package configuration.

Identity is not a credential

The ff-id identifies the Design System. Authentication and authorization still determine access to private data and operations. Never put personal tokens or Figma credentials into the source-controlled configuration.

Path aliases

The ui alias controls the component destination. It should agree with your TypeScript and bundler aliases. React installs generally use a single kebab-case file; Vue components use a folder with a barrel export.

Registry namespace

Initialization can wire the @frontfriend registry entry in components.json. Check it when changing a target. A stale namespace can otherwise select a different primitive than your project metadata.

Monorepos

Configure each consuming application deliberately. Resolve CLI commands from that application’s root and keep each Application’s target explicit. Shared tokens can come from one Design System while the installed source remains target-specific.

After editing configuration, run npx frontfriend status, regenerate tokens, and verify the application build.