A Monorepository is an architectural concept, which basically contains all the meaning in its title. Instead of managing multiple repositories, you keep all your isolated code parts inside one repository. Keep in mind the word isolated—it means that monorepo has nothing in common with monolithic apps. You can keep many kinds of logical apps inside one repo; for example, a website and its iOS app.
This concept is relatively old and appeared about a decade ago. Google was one of the first companies that adopted this approach for managing their codebases. You may ask, if it has existed for a decade, then why is it such a hot topic only now? Mostly, over the course of the last 5-6 years, many things have undergone dramatic changes. ES6, SCSS preprocessors, task managers, npm, etc.—nowadays, to maintain a small React-based app, you have to deal with project bundlers, test suites, CI/CD scripts, Docker configurations, and who knows what else. And now imagine that instead of a small app, you need to maintain a huge platform consisting of a lot of functional areas. If you are thinking about architecture, you will want to do two main things: Separate concerns and avoid code dupes.
- Yarn Workspaces
- Expo
- Nodejs
- React Native
- Reactjs
- Eslint
- Prettier
- Axios
This project is under MIT license LICENSE to know more. Feel free to copy, fork, clone, make changes!