13 puan yazan GN⁺ 2025-03-28 | 4 yorum | WhatsApp'ta paylaş
  • Next.js’in açıklığı ve yönetişim sorunlarını ele alan bir yazı: adaptör eksikliği, resmi serverless desteğinin yetersizliği, Vercel’e özel kod yolları ve güvenlik olaylarına karşı Vercel’in yaklaşımı
  • Teknoloji yığını seçimi; projenin geliştirme hızı, kalitesi ve ekip yapısı üzerinde uzun vadeli etkiler yaratan önemli bir karardır
  • Açık kaynak yazılımlar, kullanıcılara kodu genişletme ve değiştirme özgürlüğü sunar ve vendor lock-in’den kaçınma avantajı sağlar
  • Next.js açık kaynak olarak sunulsa da, onu geliştiren Vercel’in altyapısıyla yakından iç içedir
  • Şirketlerin kendi geliştirdiği açık kaynaktan gelir elde etmesi sorun değildir; ancak bunun sürdürülebilir bir model olabilmesi için açık kaynak ile şirket arasındaki sınırın net olması gerekir

Yazarın geçmişi ve çıkar ilişkisi

  • Yazar 4 yılı aşkın süredir Netlify’da çalışıyor ve Netlify, Vercel’in rakibi konumunda
  • Netlify’de Next.js’in tüm özelliklerini desteklemek için altyapı ve araçları doğrudan inşa ederken, Next.js’in iç yapısı hakkında derin bir anlayış kazandı
  • Uzun süre bu sorunları kamuya açık şekilde gündeme getirmekten kaçındı; ancak yakın dönemde Vercel’in güvenlik sorunlarına yaklaşımının topluluğa zarar verdiğine karar vererek bu yazıyı kaleme aldı

# Next.js’in açıklığı ve yönetişim sorunları

Fact #1: Adaptör eksikliği

  • Modern framework’lerin çoğu, dağıtım hedefine göre adaptörler aracılığıyla esnek biçimde yapılandırılabilir
  • Next.js adaptörleri resmi olarak desteklemez ve çıktı formatı yalnızca Vercel’de kullanılan, kapalı ve özel bir yapıdır
  • Vercel, Build Output API’yi oluşturdu; ancak Next.js hâlâ bunu desteklemiyor
  • Sonuç olarak Vercel dışındaki sağlayıcılar, belgelenmemiş API’lere dayanarak geliştirme yapmak zorunda kalıyor ve bu durum onları beklenmedik değişikliklere açık hale getiriyor
  • Cloudflare ve Netlify, OpenNext aracılığıyla Next.js için adaptör geliştirmede iş birliği yapıyor; Vercel de buna katılmaya başladı, ancak henüz somut bir takvim yok

Fact #2: Resmi serverless desteğinin yetersizliği

  • Next.js’in resmi self-hosting yöntemi, uzun süre çalışan sunuculara dayanır; bu da gerçek üretim ortamlarında esnek ölçeklenebilirlik ve maliyet tasarrufu sağlamayı zorlaştırır
  • Geçmişte bir serverless modu vardı, ancak Ekim 2022’de belirgin bir açıklama olmadan kaldırıldı
  • React’in resmi belgelerinde serverless dağıtımın mümkün olduğundan söz edilse de, bunu fiilen hayata geçirmek için resmi bir dokümantasyon yok
  • Serverless ortam isteyen hosting sağlayıcıları, Next.js’i reverse engineering ile çözümleyip kendi uygulamalarını geliştirmek zorunda kalıyor

Fact #3: Vercel’e özel kod yollarının varlığı

  • Next.js, yalnızca Vercel dağıtımında çalışan özel kod yolları içeriyor (ör. minimal mode)
  • Bu mod sayesinde Vercel, middleware’i edge üzerinde çalıştırmak gibi performans optimizasyonları yapabiliyor
  • Middleware, mantığın cache öncesi aşamada hızlıca çalıştırılmasını sağlayan bir özellik; ancak bu yetenekten yalnızca Vercel yararlanabiliyor
  • Netlify, bu özelliği desteklemek için özel bir mühendis ekibi kurup kendi uygulamasını geliştirdi; ancak bu, küçük sağlayıcılar için imkânsız denecek kadar fazla kaynak gerektiriyor
  • Yalnızca Vercel’in Next.js’in tüm özelliklerini resmi olarak sunabilen tek platform olması, framework’ün açık kaynak felsefesiyle çelişiyor

Güvenlik olayı ve Vercel’in tepkisi

  • 21 Mart 2025’te, Next.js’te kimlik doğrulama atlatılmasına izin veren ciddi bir güvenlik açığı (CVE 9.1) kamuya açıklandı
  • Bu açık, isteğe belirli bir header eklendiğinde middleware’i etkisiz hale getirerek korunan kaynaklara erişim sağlanmasına yol açıyordu
  • Açık 27 Şubat’ta bildirilmişti; ancak Vercel bunu incelemeye 14 Mart’ta başladı
  • Sorunun farkına vardıktan sonra yamayı hızlıca yayımladı, fakat Netlify gibi diğer sağlayıcılara bilgi vermesi 8 gün sürdü
  • İlk blog yazısında, Vercel’in firewall’unun müşterileri koruduğu ima edildi; ancak gerçekte durum böyle değildi
  • Bunun sonucunda birçok sağlayıcı ve geliştirici yanlış bilgilere dayanarak aksiyon aldı veya kafa karışıklığı yaşadı; ayrıca hâlâ çok sayıda sitenin savunmasız olma ihtimali bulunuyor

Vercel’in Next.js üzerindeki sahipliği ve açık kaynak sorumluluğu

  • Vercel’in Next.js’in sahibi olduğu gerçeği inkâr edilemez ve bundan gelir elde etmesi de meşrudur
  • Ancak açık kaynak olarak sunulduğu için diğer sağlayıcıların da onu eşit koşullarda kullanabilmesi gerekir; Vercel ise bu noktada beklentilerin gerisinde kalıyor
  • Redis, Grafana ve WordPress de ticari hizmetlerle açık kaynak projeleri birlikte yürütürken açıklığı ve birlikte çalışabilirliği koruyor

Sonuç

  • Hangi framework’ü seçerseniz seçin bu sizin kararınızdır; Next.js sorununuzu çözmek için en iyi seçenekse, onu kullanmaya devam etmek de gayet makuldür
  • Ancak seçim yaparken, Next.js’in bugün sahip olduğu yapısal sorunları ve kısıtları bilmek önemlidir

4 yorum

 
GN⁺ 2025-03-28
Hacker News görüşleri
  • Next.js kullanıyordum ama Page Router'dan App Router'a geçtiğimde projeyi bıraktım. App Router deneyimi o kadar kötüydü ki o zamandan beri Next.js'i bir daha kullanmak istemedim
    • Vercel açık kaynakmış gibi davranıyor ama kullanıcıları kendi hosting platformuna kilitlemek için duvarlar örüyor
  • Vercel konusunda hep biraz tedirgindim. Next.js'i bir VPS üzerinde self-host etmeye çalışırken onların kurduğu küçük tuzaklara takıldım
    • Bu açığı ele alış biçimleri beni daha da tedirgin etti
    • Vercel'in firewall'unun müşterileri "aktif olarak koruduğunu" iddia eden ilk açıklaması kötü bir izlenim bıraktı
    • Diğer platformları bilgilendirmede gecikme yaşandı; bu da Vercel'in, Next.js'e zafiyetlerin girmesini önleme konusunda daha az teşvike sahip olduğunu gösteriyor
  • Herkesi Next.js'ten uzak durmaları konusunda uyarıyorum. V0 muhtemelen benimsenmeyi ciddi biçimde artıracak
    • Birçok yeni geliştirici deployment ve sistem yönetimi hakkında düşünmek istemiyor
    • Yalnızca React biliyorsanız, SSR öğrenmeden de bir şeyler elde edebilmeniz avantaj sayılıyor
  • Next.js'i bırakma nedenim, küçük bir projede değişikliklerin tarayıcıda görünmesinin 6-7 saniye sürmesiydi
    • Artık React SPA ve Vite kullanıyorum
  • Geçen yıl Next.js'ten Vike'a geçtik. Geliştirici deneyimi ciddi biçimde iyileşti
    • İhtiyaçlarımızın çoğu sayfaları önceden render etmekle karşılanıyor
  • Next.js hakkında karışık duygularım var. Bir yandan, yatırımcılarla birlikte framework geliştiren bir şirket söz konusu
    • MIT lisanslı olduğu için Netlify ya da başka bir şirket fork'layıp daha iyi bir alternatif sunabilir
    • Vercel'in yatırımcısı olsanız, rekabeti desteklemek yatırım riskini artırmaktan başka bir işe yaramaz
    • Vercel açık kaynağı desteklerken aynı zamanda kendi hosting platformunu en iyi seçenek yapmak için sürtünmeyi korumaya çalışıyor
  • Çalıştığım şirkette React stack'ini seçme sürecindeyiz. Next.js'i alternatifler yerine seçmek için bir neden hayal bile edemiyorum
    • SSR istiyorsanız Remix, React Router v7 veya TanStack daha mantıklı seçimler
  • Serverless yaklaşımın iyi bir varsayılan olduğundan emin değilim. Gereksiz karmaşıklık ekliyor
    • Backend'de JavaScript kullanmayı sevmiyorum
    • Server Components ve Next.js'e odaklanma bana tunnel vision gibi geldi
    • Serverless yaklaşım, HTTP header'ları kullanarak ayrıcalıklı iletişim kurulmasının muhtemel nedeniydi
  • En kötü geliştirme build sürelerine sahip ve yıllardır çok sayıda şikayet olmasına rağmen düzeltilmedi
  • Vercel ve NextJS hiç var olmamalıydı
    • Next'i bir kez denediğimde production'da çok sayıda hydration hatasıyla karşılaştım
    • Framework, sunucuda render etmenin olası kazanımları uğruna her şeyi karmaşık hale getiriyor
    • Tüm framework, onların pahalı bulut hizmetlerini satmak için iyi bir vitrin olarak yapılmış gibi görünüyor
 
ahwjdekf 2025-03-28

Yazarın Netlify çalışanı olduğu ve kendi ifadesiyle Vercel’in doğrudan rakibi olduğu söyleniyor. Bu yüzden biraz tarafsızlıktan uzak görünüyor.

 
preserde 2025-03-28

Metindeki içerik, son dönemde tanstack ya da remix gibi rakip framework'ler arasında karşılaştırma yaptıysanız, büyük ya da küçük ölçekte herkesin zaten bildiği şeyler. Şimdilik nextjs'nin pazar payı çok büyük ve Vercel de bu konuda açıkça agresif bir çizgi izlemediği için bu durum görünür hale gelmedi.

 
alpharoom 2025-03-28

Rakip bir şirkette çalıştığı gerekçesiyle yazının aktarmak istediği bilginin nesnelliğinin yetersiz olduğunu öne sürmek ad hominem saldırıdır. Yazarın geçmişini ve çıkar ilişkilerini bir kenara bırakıp okusanız da garip bir yazı mı? Bence faydalı bir bilgi.