Building a Monorepo

The Right wayThe Right

•2 min read
Building a Monorepo

Nowadays, to maintain a small React-based app, for example, you have to deal with project bundlers, test suites, CI/CD scripts and so many other stuff.

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.

To make this happen, you will probably want to isolate large features into some packages and then use them via a single entry point in your main app.

Each package will have to have its own workflow environment configuration, and this means that every time you want to create a new package, you will have to configure a new environment, copy over all configuration files, and so on. Or, for example, if you have to change something in your build system, you will have to go over each repo, do a commit, create a pull request, and wait for each build, which slows you down a lot. But how do you manage those packages?

In this series, I will bring 4 chapters:

  1. The benefits and challenges of Monorepo development
  2. Integrating PNPM Workspace into a Monorepo
  3. Accelerating the management of Monorepo with NX Workspace
  4. How to integrate and boost the build process using NX and CI/CD
Vitor Britto
Buy Me A Coffee
Senior Software Engineer

Hello, I'm Vitor Britto 👋

With almost two decades of experience in software development, I have dedicated my career to creating elegant solutions for complex problems. Currently, I work as a Senior Software Engineer, focusing on web and mobile application development and best practices in software development.

I am passionate about sharing knowledge and contributing to the software development community. Through this blog, I share my experiences, learnings and insights about software development, architecture and modern technologies.

In addition to development, I am an enthusiast for clean code, design patterns and agile methodologies. I believe that the best software is not only functional but also sustainable and scalable.