You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Feature-Sliced Design** (FSD) is an architectural methodology for scaffolding front-end applications. Simply put, it's a compilation of rules and conventions on organizing code. The main purpose of this methodology is to make the project more understandable and structured in the face of ever-changing business requirements.
13
13
14
-
Here is how it's accomplished:
14
+
## Is it right for me?
15
15
16
-
- A strong foundation of **time-tested** design practices:
17
-
_SOLID, GRASP, DDD, Separation of Concerns, Vertical Slices, Public API, Isolation._
18
-
- Project partitioning on business domains
19
-
- Consistency in file structure
16
+
FSD can be implemented in projects and teams of any size, but there are a few things to keep in mind:
17
+
18
+
- This methodology is for front-end projects only. If you're looking for a back-end architecture, consider [Clean Architecture][refs-clean-architecture].
19
+
- A very simple app of a single page might not need the benefits of FSD and suffer from the overhead. However, FSD promotes a nice way of thinking, so feel free to use on the tiniest projects if you want.
20
+
- A huge app, the size of the Google Cloud admin dashboard, will require a custom architecture. It could still be based on FSD, by the way 😎.
20
21
21
-
The methodology is not tied to any particular technology stack and is applicable to most front-end projects. This documentation contains examples in JavaScript + React, but FSD has been successfully adapted to other technology stacks (see [project examples][refs-examples]).
22
+
FSD doesn't enforce a particular programming language, UI framework or state manager — bring your own or see some [examples][refs-examples].
23
+
24
+
If you have an existing project, fear not — FSD can be adopted incrementally. Just make sure that your team is **in pain** 😈 from the current architecture, otherwise a switch might not be worth it. <!--Formigrationguidance,seetheMigrationsection.TODO:addthemigrationsectionandlinktoithere-->
0 commit comments