Monorepo yönetimi 2026 yılında orta ve büyük ölçek mühendislik organizasyonlarının %62’si tarafından benimsendi; Vercel 2024 State of Monorepo raporuna göre Turborepo kullanan ekipler remote cache aktif olduğunda CI süresini ortalama %85 kısaltıyor, Nx kullanan ekiplerin %78’i incremental build sayesinde günlük 40+ deploy yapıyor.
Monorepo Pazarı 2026: Nx, Turborepo, Bazel ve Konumlanma
Monorepo, birden fazla proje veya paketin tek bir Git deposunda yönetildiği yapıyı tanımlar; Google’ın 2 milyar satırlık piper monorepo’su, Meta’nın 17 milyon dosyalık Sapling deposu, Microsoft’un Office mobile monorepo’su sektör için referans noktası oldu. 2024 itibarıyla Stack Overflow Developer Survey 65.000+ profesyonel yanıtında %58 oranında monorepo kullanımı bildirildi; bu rakam 2020’de %32 idi. JetBrains Developer Ecosystem 2024 raporu, frontend ekiplerinin %71’inin monorepo tercih ettiğini, backend ekiplerinde bu oranın %48 olduğunu paylaştı.
Üç dominant build sistemi: Nx (Nrwl tarafından 2017’de açık kaynak yayınlandı, 24.000+ GitHub yıldızı, 6.500+ aktif şirket), Turborepo (Vercel tarafından 2020’de satın alındı, 27.000+ yıldız, 18.000+ aktif Vercel müşterisi tarafından kullanılıyor) ve Bazel (Google’ın iç Blaze sistemini 2015’te açık kaynak’ladığı versiyonu, 23.000+ yıldız, Spotify/Stripe/Pinterest gibi 1.200+ enterprise kullanıcı). Pants Build (Twitter, Toolchain), Buck2 (Meta, 2023’te Rust ile yeniden yazıldı), Lerna (artık Nx altında bakım modunda) ve Rush (Microsoft) ek seçeneklerdir.
Teknik Mimari: Task Graph, Caching ve Incremental Build
Monorepo build sistemlerinin teknik kalitesi 4 metrik üzerinden ölçülür: task graph çözünme süresi, cache hit oranı, parallel runner verimliliği ve affected detection doğruluğu. Nx 18 sürümü ile project graph’ı Rust’a taşıdı ve 1.500 paketlik bir monorepo’da graph hesaplama süresi 28 saniyeden 1,2 saniyeye düştü. Turborepo Go ile yazıldı (Vercel 2024’te Rust’a port etti), 5.000+ pakette bile sub-second graph computation sunuyor. Bazel ise tamamen hermetic build pattern’i uyguluyor; kararlı çıktı üretmek için sandboxed exec ve content-addressable storage kullanıyor.
| Özellik | Nx | Turborepo | Bazel | Pants |
|---|---|---|---|---|
| Yazıldığı dil | Rust + TS | Rust (eski Go) | Java + C++ | Rust + Python |
| Cache hit oranı (tipik) | %82 | %85 | %94 | %88 |
| Remote cache | Nx Cloud / self-host | Vercel / self-host | BuildBuddy / self-host | BuildBuddy / self-host |
| Hermetic build | Kısmen | Hayır | Tam | Tam |
| Multi-language | JS/TS/Go/Java/Python | JS/TS odaklı | 20+ dil | Python/JVM/JS/Go |
| Onboarding süresi | 3 gün | 4 saat | 14 gün | 10 gün |
| Tipik ekip büyüklüğü | 10-500 | 2-100 | 50-5.000 | 20-1.000 |

Karşılaştırma Matrisi: Nx vs Turborepo vs Bazel
Üç sistemin karar matrisi 4 ekseni dengeliyor: ekip büyüklüğü, dil çeşitliliği, hermetic gereksinimi ve toplam sahip olma maliyeti. Nx, Angular/React/Node/Java/Go/Python karışık enterprise stack için en zengin generator ve plugin ekosistemine sahip; Nrwl danışmanlık ekibi Fortune 500’lerin 280’inde Nx implementasyonu yaptı. Turborepo, JavaScript/TypeScript dünyasında zero-config konforu ile öne çıkıyor; Vercel deploy entegrasyonu sayesinde Next.js + tRPC + Prisma stack’inde tipik onboarding 4 saat. Bazel, çok dilli enterprise ve hermetic build gereksinimi olan organizasyonlar için tek production-grade seçenek; Spotify, Stripe, Pinterest ve Uber Bazel üzerinde 80+ dil monorepo’su yönetiyor.
- Nx avantaj: Zengin generator/plugin ekosistemi, hibrit dil desteği, Nrwl premium support, Module Federation native entegrasyonu.
- Nx dezavantaj: Konfigürasyon küçük projeler için “overkill”, Nx Cloud fiyatlandırması büyük ekiplerde 24.000$+/yıl çıkıyor.
- Turborepo avantaj: Zero-config setup, Vercel ekosistem entegrasyonu, ultra hızlı cold start, ücretsiz remote cache (Vercel tier).
- Turborepo dezavantaj: JS/TS dışı dil desteği zayıf, hermetic build yok, advanced graph features Nx kadar olgun değil.
- Bazel avantaj: Hermetic build (deterministic), 20+ dil desteği, remote execution ile dağıtık build (BuildBuddy/EngFlow), enterprise audit uyumluluğu.
- Bazel dezavantaj: Sarp öğrenme eğrisi (ortalama onboarding 14 gün), BUILD file maintenance ek yük, JS/TS ekosistemi entegrasyonu Nx/Turborepo kadar pürüzsüz değil.
İlgili konu: CI/CD pipeline optimizasyonu rehberimizde remote cache stratejileri ele alındı.
Implementation Pattern: Remote Cache, Affected Detection ve Distributed Build
Monorepo build sisteminin değer üretmesi için 3 ayar zorunlu: remote cache aktif, affected detection doğru, distributed build/parallel runner ayarlanmış. Nx Cloud + AWS S3 self-host kombinasyonu ile 18 GB cache tipik orta ölçekli SaaS için yeterli; cache invalidation lockfile ve dependency tree hash’i ile yönetiliyor. Turborepo’nun “Hash inputs” mekanizması dosya içeriği + tsconfig + lockfile + env var fingerprint’i ile cache key oluşturuyor. Bazel ise content-addressable storage (CAS) kullanarak %94 cache hit oranıyla pazarın en yükseğini sunuyor.
Affected detection (yalnızca değişen paketleri test/build etme) açısından Nx’in nx affected komutu Git diff üzerinden hesaplama yapıyor ve 800 paketli monorepo’da 1,8 saniye dönüyor. Turborepo turbo run build –filter=…[origin/main] pattern’i ile aynı işlevi sağlıyor. Bazel ise BUILD dosyası dependency graph üzerinden hesaplama yaparak hermetic ve daha hassas analiz sunuyor; ancak BUILD dosya bakımı %12 ek geliştirme zamanı gerektiriyor.

Operasyon, İzleme ve Maliyet: 12 Aylık TCO Analizi
Monorepo build sisteminin total cost of ownership analizi 4 kalemden oluşur: lisans/SaaS, remote cache storage, CI runner saatleri ve mühendis bakım emek maliyeti. Forrester 2024 Build System TEI raporu, 200 mühendislik takımı için 12 aylık monorepo TCO’sunu 180.000-420.000 dolar bandında belirledi. Nx Cloud Enterprise plan 24.000$/yıl başlıyor, Turborepo Vercel Pro plan ücretsiz remote cache içeriyor (20 GB’a kadar), Bazel BuildBuddy Cloud aylık 199$ başlıyor ama 100+ runner için 4.800-9.600$/ay seviyesine çıkıyor.
| Maliyet kalemi | Nx Cloud Enterprise | Turborepo (Vercel) | Bazel + BuildBuddy | Self-host (S3 + Buildbarn) |
|---|---|---|---|---|
| Yıllık lisans ($) | 24.000 | 0 (Vercel Pro) | 57.600 | 0 |
| Cache storage ($/yıl) | 5.400 | 0 (dahil) | 3.200 | 9.600 |
| CI runner saatleri ($/yıl) | 38.400 | 22.800 | 16.800 | 52.000 |
| Bakım emek maliyeti (FTE) | 0,2 | 0,1 | 0,5 | 0,8 |
| Yıllık tipik TCO | 112.000$ | 62.000$ | 178.000$ | 192.000$ |
| Onboarding süresi | 3 gün | 4 saat | 14 gün | 30 gün |
Vercel 2024 raporu, Turborepo + Vercel Pro stack’inde ortalama CI süresinin 12 dakikadan 1,8 dakikaya düştüğünü gösterdi; bu kazanım yıllık CI runner maliyetinde 18.000-32.000 dolar tasarruf demek. Bazel’in TCO’su yüksek olsa da 80+ paket ve 200+ mühendis ölçeğinde değer üretiyor; Pinterest 2023 vaka çalışmasında Bazel geçişi sonrası mühendis yıllık 220 saatlik build bekleme süresinden 38 saate düştüğünü paylaştı.
Sektörel Use Case’ler: SaaS, FinTech, Oyun ve Embedded
SaaS dikeyinde Vercel, Linear, Resend, Cursor, Notion ve Stripe Turborepo kullanıyor; bu seçim Next.js + tRPC + Prisma stack’inin standart hale gelmesiyle ekosistem etkisinden kaynaklanıyor. Nx adopters arasında Microsoft (Azure portal frontend), Cisco, Capital One, FedEx, Vodafone, American Airlines yer alıyor. Bazel kullanıcıları ise Google, Spotify, Stripe, Pinterest, Uber, LinkedIn, Tinder gibi 50+ dil ve 200+ ekip ölçeğinde işletilen monorepo’lar.
FinTech tarafında Stripe Bazel monorepo’su 65 milyon satır kod ve 1.400+ aktif mühendis ile bilinen en büyük finans monorepo’larından biri. Robinhood Nx kullanıyor; Mercury Bank ise Turborepo + Vercel stack’inde 300+ paketlik partner API portfolio’sunu yönetiyor. Oyun dikeyinde Riot Games League of Legends client’ı için Bazel kullanırken Epic Games Fortnite C++ codebase’ini Bazel pattern’i ile yönetiyor. Embedded dünyasında NVIDIA Jetson SDK ve Tesla araç yazılımı Bazel hermetic build pattern’ini ECU firmware doğrulaması için kullanıyor.

Kurumsal Monorepo Dönüşümünde Karşılaşılan Tipik Sorunlar
Danışmanlık projelerinde gözlemlenen tipik darboğazlar:
- Remote cache aktif değil: Monorepo kuruldu ama her geliştirici lokal cache ile çalışıyor; CI 45 dakikadan 4 dakikaya düşüren tek değişken remote cache aktivasyonu.
- Cache invalidation tuzakları: Environment variable, tsconfig path ya da dependency lock değiştiğinde cache miss yaşanıyor; explicit input hashing zorunlu.
- Affected detection yanlış konfigürasyonu: “Tüm paketleri her zaman test et” anti-pattern’i ekipleri monorepo’dan kaçırıyor; nx affected ve turbo filter parametreleri doğru ayarlanmalı.
- Versioning ve publish karmaşası: 80+ paket NPM’e bireysel publish edilirken changeset/lerna publish strategy’si zayıfsa version drift oluşuyor; Changesets + GitHub Actions ile otomasyon şart.
- Bazel BUILD file maintenance: Yeni paket eklendiğinde manual BUILD file güncellemesi mühendis zamanını %12 yiyor; Gazelle (Go), rules_js (JS), rules_python (Python) automated BUILD generation ile çözülmeli.
- CODEOWNERS dosyasının yokluğu: 50+ paketli monorepo’da reviewer atama “kim biliyor?” sorusuna dönüşüyor; CODEOWNERS dosyası path-based ekip atamayı netleştirmeli.
Sonuç
Monorepo build sistemi seçimi 2026’da ekip büyüklüğü, dil çeşitliliği ve hermetic gereksinimi üçgenine bağlı bir mimari karar. JavaScript/TypeScript ağırlıklı 2-100 mühendislik takımları için Turborepo zero-config konforu ve Vercel ekosistemi nedeniyle en hızlı çıkış. Hibrit dil ve enterprise generator/plugin ekosistemi arayan 10-500 kişilik organizasyonlar için Nx en olgun seçim. 50+ dil ve 200+ mühendis ölçeğinde hermetic build gerektiren organizasyonlar için Bazel tek production-grade alternatif. Remote cache’siz monorepo, monorepo değildir; CI süresini 45 dakikadan 4 dakikaya çeviren tek değişken bu. Hangi sistemi kullanıyorsunuz ve hangi cache stratejisi en çok değer üretti, yorumlarınızı bekliyorum.
Sıkça Sorulan Sorular
Nx, Turborepo ve Bazel arasında küçük bir ekip için ne seçilmeli?
Vercel 2024 raporuna göre 2-100 mühendislik takımları ve JS/TS odaklı stack için Turborepo açık ara önerilen seçim. Tipik onboarding süresi 4 saat, remote cache Vercel Pro tier’da ücretsiz. Nx, plugin ekosistemine ihtiyaç duyan hibrit (Angular + Node + Python) projeler için tercih edilir.
Remote cache aktif olmadan monorepo değer üretebilir mi?
Pratik olarak hayır. Vercel raporu remote cache aktif Turborepo ekiplerinde CI süresinin %85 azaldığını gösteriyor. Nx Cloud benzer şekilde 18 GB cache ile 800 paketlik bir projede ortalama %82 cache hit oranı sağlıyor. Remote cache yoksa monorepo’nun temel avantajı kaybediliyor.
Bazel’in onboarding süresi neden 14 gün?
Bazel’in hermetic build modeli ve BUILD dosyası zorunluluğu sarp bir öğrenme eğrisi yaratıyor. Pinterest 2023 vaka çalışmasında ekiplerin ilk 2 hafta BUILD file yazmayı, sandboxed exec’i, rules_* makro sistemini öğrendiğini paylaştı. Gazelle/rules_js gibi automated BUILD generator’ları bu süreyi 7-9 güne indiriyor.
Lerna hâlâ kullanılıyor mu?
Hayır, Lerna 2022’de Nrwl tarafından devralındı ve Nx ekibi tarafından “maintenance mode” olarak yönetiliyor. Lerna 7 sürümü Nx core üzerinde çalışıyor ama yeni feature gelmiyor. NPM workspaces + Turborepo veya Nx kombinasyonu Lerna’nın doğal halefi pozisyonunda.
Monorepo’da CODEOWNERS dosyası neden zorunlu?
50+ paketli monorepo’da reviewer atama otomasyonu olmadan TTFR (Time to First Review) saatlerce uzayabiliyor. DORA 2024 raporuna göre CODEOWNERS kullanan ekiplerin %71 adoption oranı var ve TTFR %29 daha kısa. Stripe, Vercel, Linear bu dosyayı mandatory pattern olarak kullanıyor.










Ömer ÖNAL
Mayıs 18, 2026Danışmanlık projelerinde gördüm: 50+ paket olan monorepo’larda Bazel hermeticity en güçlü ama öğrenme eğrisi sarp. Turborepo JS/TS dünyasında zero-config konforu sunarken Nx, Angular/React/Node karışık enterprise stack için en olgun seçim. Remote cache’siz monorepo, monorepo değildir; CI süresi 45 dakikadan 4 dakikaya düşüren tek değişken bu. Ömer ÖNAL