Monorepo Starter screenshot

Monorepo Starter

Author Avatar Theme by Palmerhq
Updated: 22 Mar 2019
316 Stars

Monorepo starter project for Kotlin, Python, TypeScript x React

Overview:

The Monorepo Starter is a polyglot monorepo boilerplate created by The Palmer Group. It is a starter monorepo that includes TypeScript apps/packages, JVM and Python placeholder apps, and an example deployment workflow. The repository is powered by Lerna and Yarn, with Lerna responsible for bootstrapping, installing, and symlinking all of the packages and apps together.

Features:

  • Multiple Packages and Applications: The repo includes multiple packages and applications for a hypothetical project called mono, including mono-common (shared utilities), mono-ui (component library), mono-cra (Create React App x TypeScript), mono-razzle (Razzle x TypeScript), mono-jvm (Dropwizard x Kotlin), and circle (example CircleCI v2 workflows).
  • Customization: Users can tweak the boilerplate for their own projects by running a search and replace on the word “mono” and replacing it with their project name. They can also rename folders from mono-xxx to match their project structure.
  • TypeScript Support: The monorepo supports TypeScript and allows packages to be referenced within other packages/app files by importing from @<name>/<folder> (similar to npm scoped packages).
  • Development Tools: Lerna provides useful development commands, including yarn start to run the start command in every project, yarn test to run the test command in every project, and yarn build to build all projects. There is also a clean command to remove node_modules and a bootstrap command to rerun Lerna’s bootstrap command.

Installation:

To install the Monorepo Starter, follow these steps:

  1. Install Lerna globally: npm install -g lerna
  2. Clone the repository: git clone [repository-url]
  3. Change into the cloned directory: cd Monorepo-Starter
  4. Install the dependencies: yarn install

Summary:

The Monorepo Starter is a comprehensive boilerplate for creating polyglot monorepos. It includes support for TypeScript, multiple packages and applications, and useful development tools. Users can easily customize the boilerplate for their own projects. Overall, the Monorepo Starter provides a solid foundation for managing and developing complex projects within a monorepo structure.