little cubes

Explaining developer jargon for everyone else: “Monorepo”

A repo (short for “repository”) is basically what we call a project that is stored in GitHub. Every distinct project has its own repo aka its own little home on the internet where all its code lives.

Mono means one. A monorepo is just a grouping of multiple projects into a single GitHub entity.

The easiest way to picture it: imagine creating a new folder on your computer and dragging several other folders (projects) into it. Now instead of storing each of those individual project folders in GitHub separately, you store that new parent folder (and everything inside it) as one single repo.

A couple of reasons:

Projects can talk to each other more easily. When all your projects live inside the same parent folder, they always know where the others are relative to themselves. That makes it straightforward to set up connections between them.

You can make changes across multiple projects in a single PR. Since everything lives in the same repo, one pull request can touch multiple projects at once. That’s really handy when a feature requires changes to both the UI and the API at the same time; you can ship them together instead of coordinating two separate PRs.

Monorepos work best when the projects inside them are built with the same language; they can share tooling, dependencies, and configuration.

If your projects are built with completely different technologies, you don’t get those same benefits, and the added complexity usually isn’t worth it.