A React scaffold with a clean architecture that is easy to understand.
- π Clean architecture. Layered file structure
- π‘οΈ TypeScript bulletproof typing
- β‘ Development environment: Vite
- π¨ Design System and UI: Tailwind CSS + Headless UI
- ποΈ Code format: ESLint
- π© Git hooks: Husky
- π Dependency injection: Inversiland
- π I18n: i18next
- π’ Navigation: React Router
- π§° State Manager: Mobx
β οΈ What makes the implementation of the clean architecture concept more difficult in my opinion is that since it is defined theoretically, each person implements it using different terminology or omitting/adding some layers or pieces to simplify it or continue to make it more complex.
For this reason, I think it is important to emphasize the documentation that accompanies the architecture to avoid obstacles with the rest of the people who are going to work with this system.
I briefly explain each of the four layers that make up clean architecture within the /src folder:
βββ /src
βββ AppModule.ts # Dependency injection root module
βββ /core # Core bounded context
β βββ /presentation
βββ /post # Post bounded context
βββ /domain
βββ /application
βββ /infrastructure
βββ /presentation
This layer contains all the enterprise business rules: entities, specifications...
This layer contains the use cases of the bounded context.
This layer contains the technical details (implementation) of the domain layer and third parties integrations.
This layer contains the React source code: views and controllers (Mobx controllers).
- https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
- https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/
Dev
yarn dev
Tailwind dev
yarn tailwindcss:dev
Build
yarn build
Tailwind build
yarn tailwindcss:build
βοΈ Buy me a coffee so the open source party will never end.