Use cases

Some are valid business or organization needs, some are fun and interesting.

Open source

"Ooo this is a nice utility we have in our code base, I bet others will like it!"

Move code to a new repo to make sure you don't expose anything.

Graduate

Built a payment service and app in the monorepo. Eventually, a team forms around it.

Team wants full autonomy, so we need to move the code to its own repo.

Spin out

That small feature turned out to be a real business driver.

Move the code to its own repo so the new business unit gets a clean home.

Different stack

The new service is in Rust. The rest of the monorepo is Node.

Give that service its own repo.

Speed up CI

Monorepo CI takes 25 minutes because one app pulls in a heavy ML pipeline nobody else needs.

Move it out. Everyone else's PRs go green in 3.

Merge

The company just bought a competitor. We need to consolidate codebases and merge workflows.

Polyrepo is overhead. One repo - less pain.

Hand off

Search was built by Platform but is now owned by Discovery.

Code location follows ownership.

Extract shared

Three projects each maintain their own dateFormat().

Pull the canonical version into the shared-lib repo.

Split hot from cold

Legacy admin tools haven't changed in 18 months. No future roadmap work.

Move them to a quiet repo.

Archive in place

Deprecated payments-v1 is unused but must be retained.

Move it to a frozen repo so it's out of the way.