Skip to content
53

Awesome Monorepo

A curated list of awesome Monorepo tools, software and architectures.

5.9k stars258 forks89 entriesLast push Aug 16, 2024 (2 years ago)License none

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

Build systems & dependency management tools

baur

builds only changed applications in a monorepo branch and manages build artifacts

Bazel

is Google's monorepo-oriented build system. More on Bazel: awesome-bazel

In 2 lists

Bit

is a tool for building and managing JavaScript projects with multiple components, and managing the dependency graph of components.

In 9 listsDetails

Bolt Pkg

is a super-powered JavaScript project management.

Buck

is Facebook's monorepo-oriented build system.

drkns

is a simple and language agnostic monorepo build tool.

Garment

is Farfetch's monorepo build system with centralized and customizable task management.

GitLab CI

11.4 supports running steps based on path changes.

Lerna

is a tool for managing JavaScript projects with multiple packages, built on Yarn.

MBT

is a build tool with differential build support.

Nix

is a package and distribution build tool with remote caching, predominately used by NixOS.

In 4 listsDetails

Nx

is a build system for TypeScript monorepos and a set of monorepo management tools.

In 2 lists

OAO

is a Yarn-based, opinionated JavaScript monorepo management tool.

Pants

is a monorepo-oriented build system, used by Twitter, Foursquare and multiple other companies.

Please

a cross-language build system with an emphasis on high performance, extensibility and reproduceability.

pnpm

is a JavaScript dependency management tool that supports monorepos through a set of dedicated commands called pnpm multi.

Rush Stack

is a family of tools geared towards large scale TypeScript monorepos, and based around the Rush build orchestrator

Spago

is a PureScript package manager and build tool powered by Dhall and package-sets.

In 2 lists

Symplify/MonorepoBuilder

is a PHP monorepo management tool.

Tainted

is a tool to determine which Go packages need to be rebuilt in a monorepo.

Versio

updates all version numbers in monorepo projects based on conventional commits, and can generate changelogs and tags.

Yarn

is a JavaScript dependency management tool that supports monorepos through workspaces.

Layer-pack

is a Webpack plugin allowing monorepo structures via inheritable npm packages/code layers & es6 glob imports.

Turborepo

is a high-performance build system for JavaScript and TypeScript codebases.

Repository management tools

Builder

is a tool that makes it possible to ship the same scripts across projects in a Node.js monorepo. For example, share build and testing scripts across projects.

FBShipIt

is a library written in Hack for copying commits from one repository to another.

adeira/shipit

is a simplified JavaScript port of FBShipIt.

Lank

is a tool that links packages together in a Node.js monorepo using automatic configuration of NODE_PATH instead of symlinks. Lank also allows you to run the same commands across all (or subsets of all) packages.

monorepo-run

is a collection of helpers to run scripts in each package of a yarn monorepo with a separated pane per package.

OAO

is a Yarn-based, opinionated JavaScript monorepo management tool.

Syncpack

ensures consistent dependency versions in large JavaScript Monorepos.

Ultra Runner

is a smart script runner and build tool for Lerna, Pnpm, Rush and Yarn. Scripts run concurrently, using the dependency topology. Builds keep track of file changes and are skipped when possible.

wsrun

allows running a command in each package of a Yarn workspaces monorepo.

meta

is a tool for managing multi-project systems and libraries. It answers the conundrum of choosing between a mono repo or many repos by saying "both", with a meta repo.

Good reads

Why Google Stores Billions of Lines of Code in a Single Repository

Advantages and Disadvantages of a Monolithic Repository: A case study at Google

Why you should use a single repository for all your company’s projects

Advantages of monorepos

Monorepos make inner-source come to life

What is a monorepo? (and Should You Use Them?)

.

Continuous Integration for Monorepos

for Semaphore-CI users.

monorepo.tools

Monorepos explained

Version control systems & add-ons >Git

Git shallow clones

let you clone only part of your Git history.

How to Use Git Shallow Clone to Improve Performance

How to handle big repositories with Git

Git clones vs Shallow Git clones

Git filter-branch

let you rewrite a repository's history and prune branches.

Git sparse-checkout

Cloning specific folders from git

Git LFS

improves the handling of large files in Git.

In 5 listsDetails

GVFS

virtualizes the file system beneath your git repo so that git and all tools see what appears to be a normal repo, but GVFS only downloads objects as they are needed. Windows only.

In 2 lists

SlothFS

is similar to GVFS, but read-only. It works on Linux and macOS.

git subtree

merges and splits subtrees from your project into subprojects and back. Part of Git since version 1.7.

In 2 lists

git subsplit

automates and simplifies the process of managing one-way read-only subtree splits.

splitsh-lite

is a very fast git subtree alternative to splits subtrees from your project into subprojects.

josh

is a git server proxy enabling on-the-fly virtualization of repositories.

go-diff

is a handy tool analyzes which packages needed to be rebuilt due to changes.

mgt

is a tool that enables easy bidirectional sync between multiple repositories via files that define how to remap a repository

Version control systems & add-ons >Mercurial

Watchman

, replaced by fsmonitor trigger partial, incremental builds when your files change

In 4 lists

Scaling Mercurial at Facebook

Development process tools >Code reviews

Pull Review

Hubot plugin to automate pull reviews with lots of configuration options.

Rietveld

is a code review tool by Google used by Chromium.

API Extractor

is used to detect and review API signatures for TypeScript libraries, and also for publishing a multi-package API reference.

Development process tools >CI tools

Incremental CI in Jenkins with Bazel

, article by Kristina Chodorow (Bazel team).

bazel-travis

is a minimal setup to use Travis CI in a Bazel monorepo.

buildpipe

is a tool to dynamically generate Buildkite pipelines by looking at changes in projects.

Codefresh

is a CI/CD platform for Docker/Kubernetes that has native Monorepo support

In 5 listsDetails

CI/CD for Microservices Using Monorepos

, a post describing a Shippable.com build designed for triggering builds specific to the microservice that has actually been modified and ones depending on it.

Semaphore CI

is a CI/CD platform with native monorepo support.

In 6 listsDetails

Development process tools >Code ownership

GitHub's CODEOWNERS

can restrict who can approve a pull request that affects a given part of a monorepo.

Chromium's OWNERS file

inspired GitHub's CODEOWNERS.

Write Guard

uses GitHub actions to enforce file-level write access to a monorepo.

CODEOWNERS generator

generates a CODEOWNERS file for your monorepo from files in subfolders.

Notable public monorepos

Foursquare's opensource projects

Stellar's Go monorepo

Habitat's monorepo

A tool created by Chef to build, deploy, and manage applications.

In 2 lists

startup-os monorepo: working examples for Google's Open Source tools (bazel, etc) in a monorepo

Working examples of Google's Open Source tools and Cloud.

In 2 lists

M3 monorepo - Distributed TSDB, Aggregator and Query Engine, Prometheus Sidecar, Metrics Platform

M3 monorepo - Distributed TSDB, Aggregator and Query Engine, Prometheus Sidecar, Graphite Compatible, Metrics Platform.

In 5 listsDetails

Entria's Full Stack Playground Monorepo

Berty's monorepo - React-native mobile App + Golang backend + Gomobile bridge + iOS & Android native drivers + Protobuf

Peer-to-peer messenger over libp2p with Bluetooth LE and local-network proximity transports, requiring no accounts or servers; still beta software.

In 6 listsDetails

NixOS's monorepo of packages and modules can be used to incrementally build and deploy Linux machines

Celo's monorepo (includes blockchain, misc tooling, libraries, ops stuff like terraform modules, docs, etc)

ProtonMail's monorepo (the proton web clients: mail, calendar...)

Monorepo hosting the proton web clients

In 2 lists

Migration tools

Bazel's migration-tooling

repository.

In 2 lists

Gazelle

generates Bazel BUILD files automatically for Go packages.

tomono

imports an existing set of Git repositories into a monorepo.

shopsys/monorepo-tools

contains a set of tools for building and splitting a monolithic repository.

Fastlane monorepo migration tools

tools for migrating code and github issues. Specific for fastlane so requires some code changes to use

Development Workflows

Trunk Based Development

, a source-control branching model, where developers collaborate on code in a single branch called ‘trunk’, resist any pressure to create other long-lived development branches by employing documented techniques. They therefore avoid merge hell, do not break the build, and live happily ever after.

Branch By Abstraction

, is a set-piece technique to effect a ‘longer to complete’ change in the trunk.

See category
94

Awesome OpenClaw Skills

VoltAgent/awesome-openclaw-skills

The awesome collection of OpenClaw skills. 5,400+ skills filtered and categorized from the official OpenClaw Skills Registry.🦞

Fresh★ 53k830 entriesPushed today
92

Awesome DeepSeek Harness (DSH) Plugin

awesome-dsh-plugin/awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表

Fresh★ 17k1654 entriesPushed today
91

Awesome Guidelines

Kristories/awesome-guidelines

Programming style, best practices, and coding conventions.

Fresh★ 11k166 entriesPushed 2 days ago
90

Awesome

sindresorhus/awesome

😎 Awesome lists about all kinds of interesting topics [NOTE: Pull requests are temporarily disabled until I have a chance to catch up with the existing ones]

Fresh★ 513k51 entriesPushed 28 days ago
90

Awesome Prompts

ai-boost/awesome-prompts

Curated list of chatgpt prompts from the top-rated GPTs in the GPTs Store. Prompt Engineering, prompt attack & prompt protect. Advanced Prompt Engineering papers.

Fresh★ 9k288 entriesPushed yesterday
90

Awesome README

matiassingers/awesome-readme

A curated list of awesome READMEs

Fresh★ 22k143 entriesPushed yesterday