First of all, what is a monorepo structure?

In the most basic terms, it can be defined as a software development strategy in which code that may refer to multiple projects is stored in the same repository, in our case, on our public GitHub. This particular strategy is used by many tech industry players including Google and Facebook, as well as top open source projects including React and Babel. In the case of Lisk, the move to a monorepo means a couple of changes across our GitHub and product suite.

Monorepo structure enables faster development.

One of the main benefits for opting for this repo structure is that it allows faster development workflows. All products being developed as part of the SDK are now being worked on within the same repository. This means that, for example, we can now integrate Elements’ libraries into Core without publishing it to npm first. Similarly, any issue affecting products within the SDK can now be dealt with by producing one pull request instead of two.

The new approach enforces code consistency and third party accessibility.

Another perk of choosing this particular structure is that keeping our code within one repository enforces similar coding standards. This makes our code more accessible to external developers by being easier to read and easier to contribute to. Having more consistent standards will help us maintain and shape up the SDK with better quality.

Monorepo makes tools more accessible and easily installable by developers.

We see all of the packages included in this Lisk SDK repository as an essential part of the Alpha SDK. Combining those products into one repository as monorepo is a first step towards the one unified product named Lisk SDK. Our main goal is to have all the basic tools that are required for creating and interacting with blockchain applications as the SDK, and make them easily accessible and downloadable by developers.