Skip to content
Blog

The Appeal of the Monorepo

All code in one repository. Atomic changes that touch multiple packages. Internal dependencies always in sync. Trivial code reuse.

Development3 min read
AlejandroChief Technology Officer

The Appeal of the Monorepo

All code in one repository. Atomic changes that touch multiple packages. Internal dependencies always in sync. Trivial code reuse.

It sounds elegant. And for teams that need it, it is.

Why It Works for the Big Players

Google has internal tooling developed over decades. Thousands of engineers have refined build, testing, and deploy systems specifically for their scale.

When Google says monorepo works, they're talking about their monorepo with their tooling. Not the same concept applied with generic tools.

The Reality of Public Tooling

Turborepo, Nx, Lerna, pnpm workspaces. There are many options, and each has tradeoffs.

Setting up a functional monorepo requires significant effort. Build complexity increases. CI/CD needs optimizations to avoid running everything on every commit.

For a small team, that overhead can outweigh the benefits.

When Monorepo Adds Value

Multiple applications that share significant code. An internal SDK, UI components, common business logic. If you're copying code between repos, monorepo eliminates that duplication.

Frequent changes that cross package boundaries. If every feature requires modifying three repos and coordinating releases, monorepo simplifies the workflow.

A team that works across the entire stack. If the same people touch frontend, backend, and shared libraries, monorepo reduces friction.

When Monorepo Adds Complexity Without Value

Independent projects that happen to belong to the same organization. A blog and an e-commerce app don't need to be together.

Separate teams with different release cycles. The benefit of atomic changes disappears if teams don't coordinate.

Projects with very different technical stacks. A Go backend and a TypeScript frontend share little. Monorepo doesn't provide reuse.

The Testing Problem

In a monorepo, a change in a shared package can affect everything that depends on it. Testing systems must be smart enough to detect what to test.

Without that tooling, every change runs all tests. Or worse, it doesn't run the necessary tests and bugs reach production.

The Pragmatic Alternative

Separate repos with published packages. More ceremony to update shared dependencies, but less tooling complexity.

For small teams, the friction of maintaining versions may be less than the friction of setting up and maintaining a monorepo.

The Right Question

It's not "should I use monorepo?". It's "what problems do I have and does monorepo solve them better than the alternatives?".

If the answer is honest, many teams would discover that their real problems aren't the ones monorepo solves.

Keep reading

Related articles

Development

The Code Slowing Down Your Website Isn't the One You Wrote

Third-party scripts are, on most of the websites we audit, the biggest source of slowness. Not the framework, not the images, not the server: the code you load from other domains. Analytics, support chat, advertising ...

Development

The Language That Machines Actually Understand

Structured data is the most direct way to explain to a machine what your page contains. A human reads “Different Growth, web development agency, rated 4.9 out of 5” and understands it instantly. A search engine, howev...

Next step

Do you have a project in mind?

If this article was useful and you want to know how we can help, we are here to listen.