• Stars
    star
    1,535
  • Rank 30,475 (Top 0.7 %)
  • Language MDX
  • License
    MIT License
  • Created almost 4 years ago
  • Updated 13 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿฐ Architectural methodology for frontend projects

Discord (English language)Telegram (Russian language)WebsiteFeature-Sliced Design, an architectural methodology for frontend projectsFeature-Sliced Design, an architectural methodology for frontend projects

All Contributors

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.

This methodology is not tied to a particular stack โ€” it can be used for web or native applications.

Advantages

  • Uniformity
    The code is organized by scope of influence (layers), by domain (slices), and by technical purpose (segments).
    This creates a standardized architecture that is easy to comprehend for newcomers.

  • Controlled reuse of logic
    Each architectural component has its purpose and predictable dependencies.
    This keeps a balance between following the DRY principle and adaptation possibilities.

  • Stability in face of changes and refactoring
    A module on a particular layer cannot use other modules on the same layer, or the layers above.
    This enables isolated modifications without unforeseen consequences.

  • Orientation to business and users needs
    When the app is split into business domains, you can navigate the code to discover and deeper understand all the project features.

Show off

To show off that your project uses FSD, you can use the GitHub topic feature-sliced and one of the following badges:

Feature-Sliced Design Feature-Sliced Design Feature-Sliced Design Feature-Sliced Design

Code snippet
White: 
[![Feature-Sliced Design][shields-fsd-white]](https://feature-sliced.design/)

[shields-fsd-white]: https://img.shields.io/badge/Feature--Sliced-Design?style=for-the-badge&labelColor=262224&color=F2F2F2&logoWidth=10&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAALFAAACxQGJ1n/vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA/SURBVHgB7dKxCgAgCIThs/d/51JoNQIdDrxvqMXlR4FmFs92KDIX/wI7JSdDN+eHtkxIycnQvMNW8hN/crsDc5QgGX9NvT0AAAAASUVORK5CYII=

----

Pain (red):
[![Feature-Sliced Design][shields-fsd-pain]](https://feature-sliced.design/)

[shields-fsd-pain]: https://img.shields.io/badge/Feature--Sliced-Design?style=for-the-badge&labelColor=262224&color=F2F2F2&logoWidth=10&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAALFAAACxQGJ1n/vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABHSURBVHgB7dKxCQAgDETR08ZNHNBBHNBNrBQFuyCCKQK5V6QMfBJAWVij5zLwKbW6d0VYx2TZyXnBKxvEZJnDx2bylf1kdRM6tiAZsruQ/QAAAABJRU5ErkJggg==

----

Domain (blue):
[![Feature-Sliced Design][shields-fsd-domain]](https://feature-sliced.design/)

[shields-fsd-domain]: https://img.shields.io/badge/Feature--Sliced-Design?style=for-the-badge&color=F2F2F2&labelColor=262224&logoWidth=10&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAALFAAACxQGJ1n/vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABISURBVHgB7dKxCQAgDETR0w2cws0cys2cwhEUBbsggikCuVekDHwSQFlYo7Q+8KnmtHdFWMdk2cl5wSsbxGSZw8dm8pX9ZHUTMBUgGU2F718AAAAASUVORK5CYII=

----

Feature (green):
[![Feature-Sliced Design][shields-fsd-feature]](https://feature-sliced.design/)

[shields-fsd-feature]: https://img.shields.io/badge/Feature--Sliced-Design?style=for-the-badge&labelColor=262224&color=F2F2F2&logoWidth=10&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAALFAAACxQGJ1n/vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABISURBVHgB7dKxCQAgDETR00EcwYEc0IEcwUUUBbsggikCuVekDHwSQFlYo/Y88KmktndFWMdk2cl5wSsbxGSZw8dm8pX9ZHUTdIYgGbPdU2QAAAAASUVORK5CYII=

How can I help?

  • ๐Ÿฐ Use the methodology in your projects and spread the word
  • โญ Star us on GitHub
  • ๐Ÿ’ฌ Join our Discord or Telegram and share your experience or ask questions
  • ๐Ÿ“ Suggest improvements to the documentation through PRs

discord ย ย ย ย ย ย ย ย  tg ย ย ย ย ย ย ย ย  twitter ย ย ย ย ย ย ย ย youtube

Contributors โœจ

Thanks goes to these wonderful people (emoji key):

Sergey Sova
Sergey Sova

๐Ÿ“ ๐Ÿ“– ๐Ÿ’ก ๐Ÿค” ๐Ÿ“† ๐Ÿ’ฌ ๐Ÿš‡ ๐Ÿ”ฌ ๐Ÿ“‹ โœ… ๐Ÿ“ข ๐Ÿšง
Ilya Azin
Ilya Azin

๐Ÿ“– ๐Ÿ’ก ๐Ÿค” ๐Ÿ“† ๐Ÿ’ฌ ๐Ÿ‘€ ๐Ÿš‡ ๐Ÿ““ ๐ŸŽจ โœ… ๐Ÿ“ข ๐Ÿšง
Rin ๐ŸฆŠ๐Ÿช๐Ÿ˜ˆ Akaia
Rin ๐ŸฆŠ๐Ÿช๐Ÿ˜ˆ Akaia

๐Ÿ“– ๐Ÿ–‹ ๐Ÿค” ๐Ÿ’ฌ ๐ŸŒ ๐Ÿ“ข ๐Ÿšง ๐Ÿ”ฌ
Alexander Khoroshikh
Alexander Khoroshikh

๐Ÿ“– ๐Ÿค” ๐Ÿ’ฌ ๐Ÿ‘€ ๐Ÿ”ง ๐Ÿ›ก๏ธ ๐Ÿ“ข โœ… ๐Ÿšง
Bear Raytracer
Bear Raytracer

๐Ÿ“– ๐Ÿ’ก ๐Ÿค” ๐Ÿ’ฌ ๐Ÿ‘€ ๐ŸŒ ๐ŸŽจ ๐Ÿš‡ ๐Ÿšง
spotsccc
spotsccc

๐Ÿ“– ๐Ÿ’ก ๐Ÿค” ๐Ÿ’ฌ ๐Ÿ‘€ ๐Ÿšง
Ilya
Ilya

๐Ÿ“– ๐Ÿค” ๐Ÿ“ข ๐Ÿšง
Viktor Pasynok
Viktor Pasynok

๐Ÿ“– ๐Ÿค” ๐Ÿ“† ๐Ÿ“ข
Oleh
Oleh

๐Ÿ“– ๐Ÿค” โœ…
Niyaz
Niyaz

๐Ÿ’ก ๐Ÿ““
Evgeniy Podgaetskiy
Evgeniy Podgaetskiy

๐Ÿค”
Viacheslav Zinovev
Viacheslav Zinovev

๐ŸŽจ ๐Ÿ““ ๐Ÿ‘€
Alexandr
Alexandr

๐Ÿค” ๐Ÿ““ ๐Ÿ‘€
Oleg Isonen
Oleg Isonen

๐Ÿค” ๐Ÿ”ฌ ๐Ÿ““
Evgeniy
Evgeniy

๐Ÿ’ป ๐Ÿ”Œ ๐Ÿ”ง
Lev Chelyadinov
Lev Chelyadinov

๐Ÿ“– ๐Ÿ–‹ ๐Ÿค” ๐ŸŽจ
And
And

๐Ÿš‡ ๐Ÿ“– ๐Ÿ’ป
sarmong
sarmong

๐Ÿ“– ๐ŸŒ
Julie Obolenskaya
Julie Obolenskaya

๐ŸŒ
Roman Tikhiy
Roman Tikhiy

๐Ÿ““ ๐Ÿ“–
Igor Kamyshev
Igor Kamyshev

๐Ÿ› ๐Ÿ“–
Roman
Roman

๐Ÿ““ ๐Ÿ“–
Sergey Vakhramov
Sergey Vakhramov

๐ŸŽจ
Mark Omarov
Mark Omarov

๐Ÿ“–
ะ”ะผะธั‚ั€ะธะน
ะ”ะผะธั‚ั€ะธะน

๐Ÿ’ผ ๐Ÿ““
Mihir Shah
Mihir Shah

๐ŸŽจ
Gleb
Gleb

๐Ÿ“–
Roma Karvacky
Roma Karvacky

๐Ÿ’ก
Aleksandr Osipov
Aleksandr Osipov

๐Ÿ““
Maxim
Maxim

๐Ÿ““
Anton Kosykh
Anton Kosykh

๐Ÿ““
Vladislav Samatov
Vladislav Samatov

๐Ÿ““
Oleg Kusov
Oleg Kusov

๐Ÿ“ ๐Ÿ““
Andrey Savelev
Andrey Savelev

๐Ÿ““
Nickolay Ilchenko
Nickolay Ilchenko

๐Ÿ““ ๐Ÿ“‹
Eugene Ledenev
Eugene Ledenev

๐Ÿ”ฃ
Vladislav Romanov
Vladislav Romanov

๐Ÿ”ฃ
Ainur
Ainur

๐Ÿ“–
Elisey Martynov
Elisey Martynov

๐Ÿ’ก
Olga Pasynok
Olga Pasynok

๐Ÿ“‹
Max Kokosha
Max Kokosha

๐Ÿ’ก
ะ—ัƒั…ั€ะธะดะดะธะฝ ะšะฐะผะธะปัŒะถะฐะฝะพะฒ
ะ—ัƒั…ั€ะธะดะดะธะฝ ะšะฐะผะธะปัŒะถะฐะฝะพะฒ

๐ŸŒ ๐Ÿ“ฃ ๐Ÿ“–

This project follows the all-contributors specification. Contributions of any kind welcome!