2026'da SaaS Yığını Nasıl Seçilir: Monorepo, Next.js, NestJS, MongoDB
2026 SaaS yığınını seçmek için bir saha rehberi: monorepo mu polyrepo mu, Next.js mi Remix mi, NestJS mi Express mi, MongoDB mi Postgres mi. Görüş bildiren, ödünleri dürüstçe adlandıran.
"Hangi yığını kullanmalıyım" sorusu, cevap ekibinizin zaten ne bildiğine ve alıcınızın entegre olmaya ne kadar istekli olduğuna bağlı olduğu için daha zorlaştı, daha kolaylaşmadı. Nesnel olarak en iyi yığın yoktur. Sizin spesifik ekip, alıcı ve zaman çizelgesi kombinasyonunuz için en iyi olan bir yığın vardır.
Monorepo vs polyrepo
2Run'da iki yıllık pnpm monorepo çalıştırmak bizim vakamız için net bir cevap veriyor: monorepo.
Kazanımlar somut: NestJS arka ucu ve Next.js ön ucu arasında paylaşılan TypeScript tipleri (artık "API X döndürüyor" tahmini yok), tek bir CI işlem hattı, tek bir linting kuralı seti, her iki uygulamada bir güvenlik temelini uygulayacak tek bir yer.
Kayıplar da somut: paylaşılan konfigürasyon sürüklenmesi, yalnızca biri değiştiğinde bile her birleştirmede her iki uygulamayı oluşturan bir CI, doğru kurulumu yapmak için bir hafta süren bir araç kurulumu. Bir veya iki mühendisten oluşan bir ekip için polyrepo daha basittir.
Karar kuralı:
- Monorepo eğer iki veya daha fazla ön uç/arka uç uygulamanız varsa ve tipleri, kimlik doğrulamayı ve yayınlama temposunu paylaşıyorsa.
- Polyrepo eğer bir uygulamanız ve bir API'niz varsa veya hiçbir şeyi paylaşmayan birden çok uygulamanız varsa. Monorepo kurulum maliyeti gerçektir ve bu ölçekte geri kazanmazsınız.
Next.js (App Router) — ne zaman uyar
Next.js, B2B web uygulamalarımız için üç nedenden dolayı varsayılan değerdir:
-
Yerleşik i18n yönlendirmesi.
(routes)/[locale]segment kalıbı, beş dilli bir ürün için tam olarak ihtiyacımız olan şey. Yerel algılama ve yeniden yazmalar için ara yazılım hikayesi olgun. -
Pazarlama yüzeyleri için sunucu bileşenleri. MDX içeriği, CMS destekli veri ve küçük bir etkileşimli bileşeni birleştiren bir açılış sayfası, üç bileşenle tek dosyadır. Varsayılan React kalıpları daha fazla yapıştırıcı gerektirir.
-
Çoğunlukla hazır bir güvenlik temeli. HSTS, frameguard, yönlendirici politikası ve CSP varsayılanları, ara yazılım ve başlıklar yapılandırması yoluyla ayarlanabilir. Hâlâ sertleştirilmiş bir ara yazılım yazıyoruz (güvenlik sertleştirme yazısına bakın), ancak sıfırdan inşa etmiyoruz.
Maliyet: paket boyutu, App Router'ın sunucu/istemci sınırı gerçek bir öğrenme eğrisidir ve Next 16'daki veri önbellek semantiği, eski okumalardan kaçınmak için kasıtlı yönetim gerektirir.
NestJS — yapı istediğinizde
NestJS en basit arka uç çerçevesi değildir. Deneyimimizde en iyi ölçeklenen odur. Nedeni: modül/sağlayıcı/denetleyici yapısı, sınırlandırılmış bağlamları, bağımlılık enjeksiyonunu ve istek yaşam döngüsünü erken tanımlamanıza zorlar. Kalıp, hangi çerçeveyi bir sonraki kullanırsanız kullanın aktarılır.
Üç somut kazanım:
- Kimlik doğrulama bir modüldür, rota değil. Kimlik doğrulama modülünü, onu tüketen rotalara dokunmadan değiştirin.
- Muhafızlar ve engelleyiciler birinci sınıf. Rol tabanlı erişim, hız sınırı ve istek günlüğü tümü temiz bir şekilde oluşur.
- Swagger oluşturma bir yapılandırma satırıdır. API belgeleri kodla uyumlu kalır.
Maliyet: dosya sayısı Express'ten daha yüksek, öğrenme eğrisi Fastify'den daha dik ve dekoratör tabanlı meta veriler jenerik tipler etrafında keskin kenarlara sahiptir.
MongoDB — belgeler için, birleştirmeler için değil
Veri modeli doğal olarak belge şeklinde olduğunda MongoDB doğru seçimdir: blog yazıları, karışık meta verili içerik sayfaları, esnek şemalara sahip kullanıcı üretimli içerik, kategoriye göre değişen özelliklere sahip katalog verisi.
Veri modeli ağırlıklı olarak ilişkisel olduğunda MongoDB yanlış seçimdir: finansal defter, çok kiracılı analiz ambarı, çoktan çoğa kenarları olan izinler sistemi. Bunlar için Postgres kullanıyoruz.
Tuzak: her ekip önce MongoDB'yi dener, sonra yarı yolda birleştirmeler istediğini fark eder. Veri modeline taahhüt vermeden önce dürüst olun. Henüz bilmiyorsanız, Postgres ile başlayın — daha sonra Postgres'ten uzaklaşmak MongoDB'den uzaklaşmaktan daha kolaydır.
2026'da bir B2B SaaS için ne seçiyoruz
Beş dil desteği, tarayıcı tabanlı ürün yüzeyleri ve AB uyumluluk rejimlerine entegrasyon ile bir B2B SaaS için:
apps/webveapps/backendile pnpm monorepo.- Yereller için
next-intlile ön uçta Next.js (App Router). - Modüler kimlik doğrulama, içerik ve çeviri modülleri ile arka uçta NestJS.
- İçerik, işler ve ürün şeklindeki veri için MongoDB, faturalama ve defter için Postgres.
- Önbellek, pub/sub ve hız sınırı durumu için Redis.
- Asla demet URL'leri açığa çıkarmayan bir proxy uç noktasıyla dosya depolama için MinIO (S3 uyumlu).
Bu tek geçerli kombinasyon değildir. İki kez gönderdiğimiz, iki kez ödediğimiz ve tekrar bahse gireceğimiz kombinasyondur.
