· Özgür Vurgun · Angular · 2 min read
18. Monorepo Nedir?

Ne Bu Monorepo?
Projeyi yazıyorsun, her şey yolunda. Sonra ekip büyüyor. Frontend bir yerde, backend başka yerde, ortak UI bileşenleri başka bir repo’da…
Bir noktada kendini şöyle derken buluyorsun:
Abi şu ui-kit’i güncelledim ama 3 farklı repo’da aynı şeyi elle publish’lemek zorundayım
İşte burada Monorepo devreye giriyor.
Monorepo = Tüm projelerini, kütüphanelerini, app’lerini tek bir Git deposunda toplamak.
Tek repo. Tek hayat. Çok huzur (doğru kullanılırsa).
Polyrepo vs Monorepo
| Özellik | Polyrepo | Monorepo |
|---|---|---|
| Kod yapısı | Her proje ayrı repo | Her şey tek repo içinde |
| Versiyonlama | Her repo kendi içinde | Ortak versiyon yönetimi |
| Ortak kod paylaşımı | Zor, publish gerekebilir | import ile direkt erişim |
| CI/CD | Her repo için ayrı pipeline | Ortak config ile yönetilebilir |
| Bağımlılık takibi | Dağınık | Merkezi |
Ne Zaman Lazım Olur?
- Birden fazla Angular uygulaman var (örn: admin panel, müşteri ekranı)
- Ortak bileşenler (design system, auth servis, form handler) yazıyorsun
- Ekip büyüdü, ama projeleri parçalamak yerine entegre çalışmak istiyorsun
Özetle: birbirine bağlı projeleri ayrı ayrı yönetmek eziyet haline gelmişse, Monorepo sana nefes aldırır.
Angular’da Monorepo: nx, Angular CLI ile Library’ler
Angular zaten tek bir proje altında çoklu library ve app destekler. Ama biraz daha fazlası lazımsa, Nx gibi tool’lar devreye girer.
npx create-nx-workspace@latestYada Angular CLI ile:
ng generate library auth
ng generate application adminHepsi tek repo’da, libs/, apps/ klasörlerinde yaşar.
Monorepo’nun Güzel Yanları
- Ortak kodu paylaşmak çok kolay: libs/ui-button
- Refactor yaparken her yere etkisini anında görürsün
- Tek commit ile tüm projeleri senkron tutarsın
- CI/CD daha kontrollü: sadece değişen app için build/test yapabilirsin
Peki Dezavantajı Yok mu?
Var, tabii ki var. Monorepo cennet değildir:
- Tek repo büyüdükçe clone, build, lint süreleri artar
- Merge çatışmaları daha sık olur
- Doğru yapılandırılmazsa tam bir dependency hell yaşanır
Ama bu sorunların çoğu Nx, Lerna, Turborepo gibi tool’larla aşılabilir.
Kendi Projende Ne Yapmalısın?
- Küçüksen, polyrepo daha kolaydır.
- Ekip artıyorsa, domain sayısı büyüyorsa, monorepo’ya geçmek mantıklı.
- Angular kullanıyorsan, zaten monorepo uyumlu yapı seni bekliyor.
Sonuç: Kod Dağınıklığına Son
Monorepo şu sorulara “artık dert değil” cevabı verir:
- “Abi bu UI kit’i 3 app’e nasıl entegre edeceğiz?”
- “Bu auth servisini 4 yerde güncellemem mi lazım?”
- “CI/CD config’i niye her yerde ayrı?”
Artık tek repo, tek yapı, tek kontrol var. Karmaşadan kurtulmak için bazen tek dosya değil, tek repo gerekir.



