Tek geliştiriciyle 40 paketlik monorepo: Turborepo, Bun, Biome
flare-engine projesi, ESLint olmadan tek config dosyalarıyla 40 paketi yöneten Turborepo + Bun + Biome yığınını gerçek dosyalarla anlatıyor.
React Native ve Web için modüler bir 2D motor olan flare-engine, tek bir geliştirici tarafından 40 paket üzerinden yönetiliyor ve bunu mümkün kılan tasarım ilkesi net: her araç türünden yalnızca bir kök config bulunmalı, paketler kendi varyantlarını tanımlamak yerine bu configi devralmalı. Repoda ESLint config'i yok; onun yerine Biome tek bir Rust ikili dosyasıyla hem lint hem format işini görüyor ve kullanılmayan import/değişkenleri hata seviyesinde reddediyor.
Yığının omurgasını Turborepo, Bun ve Biome oluşturuyor. turbo.json, dört görevle (build, test, lint, typecheck) tüm paketler arası bağımlılık grafiğini ve önbellek anahtarını tanımlıyor; kök configlerin (biome.json, tsconfig.base.json, bunfig.toml) globalDependencies olarak işaretlenmesi, bunlardan biri değiştiğinde tüm 40 paketin önbelleğinin aynı anda geçersiz kılınmasını sağlıyor. Bun burada sadece paket yöneticisi değil; çalışma zamanı, test koşucusu ve workspace mekanizması olarak tek binary içinde birleşiyor - bu, projenin bilinçli olarak pnpm yerine Bun workspaces'i tercih ettiği anlamına geliyor.
Bu yaklaşımın mühendislere önemi, araç çeşitliliğinin monorepo bakımını nasıl büyüttüğünü somut bir örnekle göstermesi. On iki paketin on iki farklı ESLint varyantı taşıması aslında bir monorepo değil, workspace kılığına girmiş on iki ayrı repo anlamına gelir. CI'da paket bağımlılık katmanlarını ve changeset'leri denetleyen basit script'lerle birlikte, bu yapı tek kişilik bir ekibin bile disiplinli bir büyük ölçekli kod tabanını sürdürebilmesinin somut bir kanıtı olarak sunuluyor.