---
title: WordPress Monorepos
date: 2024-10-22T11:36:55+00:00
modified: 2025-05-13T08:26:03+00:00
image:: https://wpelevator.com/wp-content/uploads/sites/12/2024/10/wp-monorepo-setup.png
permalink: https://wpelevator.com/guides/monorepos
post_type: page
author:
  name: Kaspars
  avatar: https://secure.gravatar.com/avatar/92bfcd3a8c3a21a033a6484d32c25a40b113ec6891f674336081513d5c98ef76?s=96&d=robohash&r=g
---

# WordPress Monorepos

**Note:** this guide is currently work in progress!

Using a single Git repository for maintaining all your components is a great way to speed up development, ensure consistency and handle releases. It is an alternative to the traditional “manyrepo” approach where any changes to individual packages, their dependencies, linting, testing and local development environments are *managed and repeated* at the package level.

It is important to note that using monorepos doesn’t completely remove the complexity of managing multiple packages — it only reduces it by shifting the point of knowledge and control to a central location.

## WordPress Monorepo Examples

Here are a few examples of mono repos in the WordPress ecosystem (leave a comment below if you know more examples):

- [Gutenberg](https://github.com/WordPress/gutenberg) with its JS packages.
- [Jetpack](https://github.com/Automattic/jetpack) with its standalone plugins.
- [Performance Lab](https://github.com/WordPress/performance) community plugin with its standalone plugins.
- [Snicco development library](https://github.com/snicco/snicco) of PHP packages and plugins.
- [Gato GraphQL](https://github.com/GatoGraphQL/GatoGraphQL) plugin.

Interestingly, they all use different tooling to:

- split out the individual packages into their read-only release repositories,
- create changelogs and manage versioning.

## Monorepo Setup

Setting up monorepos requires a lot of common workflows and conventions for how individual packages get from development to being released.

![WordPress monorepos setup](https://wpelevator.com/wp-content/uploads/sites/12/2024/10/wp-monorepo-setup.png?strip=all&quality=90&resize=2808,2196)## Deploy Workflow

Here is a video walkthrough of a deploy workflow when releasing new packages: