I spent four years preaching them and the last six months unpicking one.
For four years I argued, loudly and online, that monorepos were correct. I have spent the last six months pulling one apart, and I have come around to a quieter view.
A monorepo is a way of saying "these things change together." When they do, it is the right call. When they don't — when one half of the repo deploys daily and the other half deploys quarterly — the seam shows up anyway, just in a worse form: cross-cutting branches, ghost-coupling between tests, a CI matrix that grows like ivy.
I think the actual rule is: monorepo the things that ship as one product, and only those. Everything else can be a separate repo and the world is fine.