Early in my career, I thought polyrepos were the way. Microservices, each in their own repo, independently deployable — it felt clean and modern. Then I joined Meta and worked in their massive monorepo, and it changed how I think about code organization entirely. Anything I needed to change, I could change it right there. Everything was discoverable. One commit could do everything I needed it to.

Then I moved to AWS, back to polyrepo land, and the contrast was painful. Now I'm building my own products with monorepos, and I migrated SID Technologies from 15 separate repositories to one over a weekend.

This post is about what I learned from each approach, the actual migration process with real metrics, and why the monorepo vs polyrepo debate is really an organizational question, not an engineering one.

Two Extremes: Meta vs AWS

Meta's Monorepo