Help
FAQ and glossary
Quick answers to the questions people ask most, and the terms used across these docs. If a command fails, run npx create-fsd-architecture@latest doctor first.
Frequently asked questions
Is this the official Feature-Sliced Design tool?
No. FSD is a methodology maintained at feature-sliced.design. FSD CLI is an independent tool that scaffolds projects and generates slices that follow it.
What is the difference between fsd and create-fsd-architecture?
Nothing. They are two names for the same CLI. Install it globally with npm install -g create-fsd-architecture to get the shorter fsd command, or run it once with npx create-fsd-architecture@latest.
Which frameworks are supported?
React + Vite, Next.js, Vue + Vite, Nuxt, and SvelteKit can be scaffolded and generated. Angular projects can be inspected read-only; scaffolding Angular is not available yet.
Which Node.js version do I need?
Node.js 22.12.0 or later for the CLI. Nuxt and SvelteKit projects need 22.22.2 or later. Node.js 20 is not supported since CLI 2.7.0.
Can I use the CLI in a project it did not create?
Yes. Generators infer the stack from package.json when fsd.config.json is missing, and structure-only generation with --segments adds layers without touching existing files. For a guided migration, use the AI Agent Skill.
Does generating a slice install dependencies?
No. Only project creation runs the package manager. Generators use the stack already recorded in fsd.config.json.
Can a generator overwrite my code?
Not by default. Existing slices are protected; --force replaces a single slice you name, and batch generation refuses --force. Preview any command with --dry-run.
Where are slices created?
Under the framework's source root: src/ for React, Next.js, Vue, and SvelteKit, and app/ for Nuxt. Structure-only mode accepts a different --root.
Does the CLI enforce FSD import rules?
The CLI creates the structure; Steiger enforces the rules. Every template installs Steiger and runs it in npm run ci, and check --architecture runs it on demand.
Does installing a newer CLI update my project?
No. Run upgrade --dry-run to see the plan and upgrade --yes to apply it. Only CLI-owned files change, and the upgrade rolls back on failure.
Can I use pnpm, Yarn, or Bun?
Yes. Pass --package-manager pnpm, yarn, or bun when creating the project. The choice is saved in fsd.config.json and used for lockfiles and commands.
Does the CLI create a backend or database?
No. It generates frontend code. Auth and API slices call endpoints you provide, and the optional Supabase adapter talks to a Supabase project you own.
Does the CLI collect telemetry?
No. It downloads the pinned template and runs your package manager; it sends nothing about you or your project.
Can I use it in commercial projects?
The CLI is released under the MIT license. Before reusing a template repository on its own, outside a generated project, check that repository for its license terms.
Glossary
- Layer
- A top-level folder with a fixed rank: app, pages, widgets, features, entities, shared. Code imports only from lower layers.
- Slice
- A folder inside a layer named after a business concept, such as entities/product or features/cart.
- Segment
- A folder inside a slice grouped by technical purpose: ui, model, api, lib, config.
- Public API
- The slice's index.ts. Other code imports the slice only through it.
- Entity
- A business object the product works with, like a product or user.
- Feature
- A user interaction that brings value, like adding to a cart or signing in.
- Widget
- A large, self-contained UI block composed from features and entities.
- Preset
- A generator name with ready-made content: navbar, sidebar, footer, bottom-bar widgets and home, about, consult pages.
- Structure-only mode
- Generation with --segments that creates folders and empty public APIs without overwriting files.
- Batch generation
- Passing several names in one command; all slices are checked first and earlier ones roll back if a later one fails.
- fsd.config.json
- The project file that records framework and stack choices so generators produce matching code.
- Ownership manifest
- The .fsd/manifest.json file that records which files the CLI owns, so upgrades change only those.
- Managed upgrade
- A migration applied by the upgrade command to CLI-owned tooling, with conflict detection and rollback.
- Steiger
- The FSD linter that checks layer, slice, and public-API rules.
- Agent Skill
- The fsd-cli skill that lets coding agents inspect, implement, and migrate FSD projects using the CLI.