
This is a proof of concept of a monorepo structure for react components specially designed for design systems
The monorepo structure for serving React components and design tokens is an innovative approach that essentializes development workflows and enables streamlined management of component versions. By leveraging tools such as Lerna and Commitzen, this repository creates a robust infrastructure for creating, documenting, and maintaining components. The use of Storybook and Compodoc ensures that the components are well-documented and easily accessible for developers.
This repository offers a clear and organized framework for working with individual React components, allowing for flexibility and efficiency in development. Each component can be installed separately, making it easy to integrate only what you need into your projects. The setup process is straightforward, appealing to both novice and experienced developers aiming to enhance their applications with consistent and reusable design elements.
Monorepo Structure: Facilitates efficient management of multiple packages, allowing developers to keep React components and design tokens organized in a single repository.
Lerna Integration: Utilizes Lerna for versioning and managing interdependencies between packages, ensuring smooth operations during development.
Documentation Tools: Employs Storybook for UI component documentation and Compodoc for comprehensive API documentation, making it easy for developers to understand and use the components.
Individual Component Packages: Each React component is housed in its own npm package, enabling developers to install only the components they require, reducing bloat in their applications.
Easy Local Setup: The setup process is simple, with detailed instructions provided for installing dependencies and running the project locally, streamlining onboarding for new users.
Compatibility with Node: Designed to work with Node version 10.20.1, ensuring compatibility and reducing issues related to version mismatches.
Command Line Interface: Supports conventional commits and Commitzen, which standardizes the commit process and improves collaboration among team members.

React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components
SCSS is a preprocessor scripting language that extends the capabilities of CSS by adding features such as variables, nesting, and mixins. It allows developers to write more efficient and maintainable CSS code, and helps to streamline the development process by reducing repetition and increasing reusability.
ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.
Stylelint is a modern linter for CSS that helps you avoid errors and enforce consistent styling conventions. It provides rules for detecting errors and warnings, and can be configured to match your specific project's requirements.
TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.
Webpack is a popular open-source module bundler for JavaScript applications that bundles and optimizes the code and its dependencies for production-ready deployment. It can also be used to transform other types of assets such as CSS, images, and fonts.