Definition · engineering

Monorepo

Multiple related projects (frontend, backend, shared libs, mobile) in a single Git repo. Pays off when you share code across packages or want atomic cross-package changes. Adds tooling overhead that's wasted on small teams or unrelated projects.

Glossary · engineering
Monorepo
startmatter.com/glossary

Why this matters

Most pages defining "Monorepo" get it wrong.

Generic definitions, no specifics, no opinion. We define it the way a senior engineer explains it to a founder — with cost numbers, tradeoffs, and a real position.

The pattern

A single repository contains multiple deployable units — usually a frontend, a backend, shared utility packages, sometimes a mobile app and infrastructure code. Tools like pnpm workspaces, Nx, Turborepo, or Bun workspaces manage the dependency graph.

The alternative is polyrepo: each project in its own Git repository, published as separate packages.

When monorepo wins

  • You share code across multiple deployables (typed API client, shared validators, design system)
  • You want atomic commits that touch multiple packages (rename a field across backend + frontend in one PR)
  • Team size is 3+ and people work across packages
  • CI/CD can build the dependency graph (Turborepo, Nx)

When monorepo loses

  • Single deployable, no shared code, no plans to add either soon
  • Team of 1–2 working on independent projects
  • Languages don't compose well (a Rust binary and a Python script don't benefit from sharing a repo)
  • Build tooling expertise isn't there — a misconfigured monorepo is slower than two separate repos

The defaults we use

For SaaS products with a Next.js app + maybe a mobile companion + shared types: monorepo (pnpm workspaces + Turborepo). For an MVP that's just a Next.js app: single repo, no monorepo overhead.

The instinct to monorepo "for future scaling" is usually wrong at v1. Adopt it when you have the second package.

Cost of getting it wrong

A junior-level monorepo setup with no caching adds 20–60 seconds to every CI run. Across a sprint that's hours of wasted developer time. A properly configured one with build caching is faster than a polyrepo for any cross-package change.

Related

In the wild

Projects we shipped using monorepo

Real founders, real product, real testimonials. How this concept shows up in actual builds.

ArbVantage
Big Data Platform · 2026

ArbVantage

Big-data platform for traffic arbitrage in Facebook ads. Built for affiliate media buyers running large daily spend across CPA offers — campaign and creative management, spend analytics, and high-volume ad-account orchestration.

Visit the product
OLSP System
Affiliate Marketing Platform · 2025

OLSP System

All-in-one affiliate marketing platform with training, traffic tools, and pre-built funnels under a single tracking pixel. Members learn lead generation and earn commissions promoting OLSP's bundled digital products.

Visit the product
Campaign Refinery
SaaS Platform · 2024

Campaign Refinery

Campaign Refinery is an advanced email marketing and automation platform that focuses on helping businesses send better emails, improve deliverability, and drive real engagement. It combines powerful automation, smart list management, and deep analytics to make email campaigns more effective and easier to manage.

Visit the product

FAQ

Questions on this topic

Apply this to your build

Definitions are theory.
We ship the practice.

30-minute call, flat-price quote in 24 hours, first deploy inside two weeks.