Skip to content

FAQ

Yes! We have a linter called Steiger to check your project’s architecture and folder generators through a CLI or IDEs.

Where to store the layout/template of pages?

Section titled “Where to store the layout/template of pages?”

Layouts used only for a specific screen can be defined directly in the corresponding page. Layouts that are reusable across multiple screens without any business context can be placed in shared/ui. Layouts applied to the entire application or to the route structure should be managed in app.

For more detailed criteria and examples, see the page layouts guide.

What is the difference between a feature and an entity?

Section titled “What is the difference between a feature and an entity?”

An entity is a real-life concept that your app is working with. A feature is an interaction that provides real-life value to your app’s users, the thing people want to do with your entities.

For more information, along with examples, see the Reference page on slices.

Can I embed pages/features/entities into each other?

Section titled “Can I embed pages/features/entities into each other?”

This is possible, but the composition must happen in a higher layer. For example, a page can import multiple features and entities to compose a complete screen. When necessary, components can also be passed through props or children for composition.

However, one feature must not directly import another feature according to the layer import rule.

The current version of the methodology does not require nor prohibit the use of Atomic Design together with Feature-Sliced Design.

For example, Atomic Design can be applied well for the ui segment of modules.

Are there any useful resources/articles/etc. about FSD?

Section titled “Are there any useful resources/articles/etc. about FSD?”

Yes! https://github.com/feature-sliced/awesome

It helps you and your team to quickly overview the project in terms of its main value-bringing components. A standardized architecture helps to speed up onboarding and resolves debates about code structure. See the motivation page to learn more about why FSD was created.

Does a novice developer need an architecture/methodology?

Section titled “Does a novice developer need an architecture/methodology?”

Rather yes than no

Usually, when you design and develop a project in one person, everything goes smoothly. But if there are pauses in development, new developers are added to the team - then problems come

How do I work with the authorization context?

Section titled “How do I work with the authorization context?”

Answered here