Alesta WEB

Kısa cevap: Next.js 15'in desteği 21 Ekim 2026'da bitiyor. Next.js destek politikasına göre her ana sürüm ilk yayımlanmasından itibaren iki yıl bakım (Maintenance LTS) alır; 15.x 21 Ekim 2024'te çıkmıştı. Bu tarihten sonra 15.x için güvenlik yaması garanti edilmiyor. 15.x hattının son sürümü 14 Ekim'de çıkan 15.5.28. Yapılacak iş Next.js 16'ya geçmek: en az Node.js 20.9 ve TypeScript 5.1 gerekiyor, senkron params/cookies() erişimi tamamen kaldırıldı, middleware dosyası proxy oldu, Turbopack varsayılan derleyici, next lint kaldırıldı ve next/image varsayılanları değişti. Resmî codemod işin büyük kısmını yapıyor.

21 Ekim neden önemli? (Why the date matters)
Next.js'in destek politikası iki aşamalı. Yeni ana sürüm çıkınca o sürüm Active LTS olur ve yeni özellik, hata düzeltmesi, güvenlik yaması alır. Bir önceki ana sürüm Maintenance LTS'e geçer ve yalnız kritik hata düzeltmeleri ile temel güvenlik güncellemelerini alır. Bakım süresi, sürümün ilk yayımlanmasından itibaren iki yıl.
| Sürüm | Yayın | Durum | Son sürüm |
|---|---|---|---|
| 16.x | 21 Ekim 2025 | Active LTS | 16.4.2 (15 Ekim 2026) |
| 15.x | 21 Ekim 2024 | Maintenance LTS → 21 Ekim 2026'da biter | 15.5.28 (14 Ekim 2026) |
| 14.x | 26 Ekim 2023 | Desteklenmiyor | 14.2.35 |
Politika "nadir durumlarda, hatanın ciddiyetine göre" destek dışı sürümlere de yama çıkarılabileceğini söylüyor; ama buna güvenmek bir plan değil. Son iki ayda üst üste güvenlik sürümleri geldiğini Next.js Ekim 2026 güvenlik güncellemesi yazımızda anlattık; 15.x'te kalan bir site bundan sonraki açıkta yamasız kalabilir.
Geçişten önce: gereksinimler (Requirements)
| Gereksinim | Next.js 16 |
|---|---|
| Node.js | En az 20.9.0 (Node.js 18 desteklenmiyor) |
| TypeScript | En az 5.1.0 |
| Tarayıcılar | Chrome 111+, Edge 111+, Firefox 111+, Safari 16.4+ |
| React | 19.2 (App Router en güncel React Canary'yi kullanır) |
Sunucunuz hâlâ Node.js 18 kullanıyorsa önce onu yükseltin. Node.js tarafındaki değişiklikler için Node.js 26 LTS geçiş rehberimize bakabilirsiniz.
Codemod ile yükseltme (Using the codemod)
# Ana yükseltme codemod'u
npx @next/codemod@canary upgrade latest
# Senkron params / cookies() / headers() kullanımı kaldıysa
npx @next/codemod@canary next-async-request-api .
# Tip yardımcılarını üretmek (PageProps, LayoutProps, RouteContext)
npx next typegenAna codemod şunları yapıyor: next.config'teki Turbopack ayarını üst düzeye taşıyor, next lint'ten ESLint CLI'a geçiriyor, middleware'i proxy'ye çeviriyor, kararlı hâle gelen API'lerden unstable_ önekini kaldırıyor. Asenkron istek API'leri codemod'unu ayrıca çalıştırmak gerekiyor.
Codemod tek başına yetmez: kodun çalıştığını test etmeden "bitti" denmemeli. Resmî kılavuz da "yeşil bir derleme tek başına çalışma zamanı sorunlarını kapatmaz" diye uyarıyor.
Kırıcı değişiklikler (Breaking changes)
Senkron istek API'leri tamamen kalktı
Next.js 15'te geçici uyumluluk vardı; 16'da cookies(), headers(), draftMode(), params ve searchParams yalnız await ile okunabiliyor:
export default async function Sayfa(props: PageProps<'/blog/[slug]'>) {
const { slug } = await props.params
const sorgu = await props.searchParams
return <h1>{slug}</h1>
}Aynı değişiklik opengraph-image, icon gibi görsel üreten dosyalarda ve sitemap fonksiyonundaki id parametresinde de var: id artık bir Promise ve dize döner. Çoklu site haritası üreten projelerde Number(await id) dönüşümü unutulursa site haritası bozulur.
middleware → proxy
middleware.ts dosyasının ve dışa aktarılan middleware fonksiyonunun adı proxy oldu. Dikkat: proxy yalnız Node.js çalışma zamanında çalışır, edge desteklenmez. Edge middleware kullanıyorsanız dosyayı körü körüne yeniden adlandırmayın, şimdilik middleware olarak bırakın.
Turbopack varsayılan
next dev ve next build artık Turbopack ile çalışıyor. Projede özel bir webpack yapılandırması varsa (bir eklenti de eklemiş olabilir) derleme bilerek hata verir. Seçenekler: yapılandırmayı Turbopack'e taşımak ya da next build --webpack ile devam etmek.
revalidateTag ikinci argüman istiyor
// Eski
revalidateTag('haberler')
// Yeni
revalidateTag('haberler', 'max')Anında güncelleme gerekiyorsa Server Action içinde updateTag kullanılıyor. updateTag yalnız Server Action'da çalışır; bir API route'unda çağrılırsa hata verir. Cron veya webhook ile önbellek yenileyen uç noktalarda bu ayrıma dikkat edin.
Diğerleri
- Paralel route slotlarının hepsinde
default.jszorunlu; yoksa derleme başarısız olur. next devçıktısı.next/devdizinine yazılıyor; dev ve build aynı anda çalışabiliyor.scroll-behavior: smoothartık sayfa geçişlerinde ezilmiyor; eski davranış için<html data-scroll-behavior="smooth">.next buildçıktısındakisizeveFirst Load JSsütunları kaldırıldı.
next/image varsayılanları (Image defaults)
| Ayar | Next.js 15 | Next.js 16 |
|---|---|---|
minimumCacheTTL | 60 saniye | 4 saat (14.400 sn) |
qualities | Tüm değerler | Yalnız [75] |
imageSizes | 16 dahil | 16 çıkarıldı |
maximumRedirects | Sınırsız | 3 |
| Yerel IP optimizasyonu | Açık | Kapalı (dangerouslyAllowLocalIP) |
| Sorgu dizeli yerel görsel | Serbest | localPatterns.search gerekli |
En çok sorun çıkaran qualities: koddaki quality={80} en yakın izinli değere (75) çekilir, doğrudan /_next/image?q=80 isteği ise 400 döner. Farklı kalite kullanıyorsanız images.qualities dizisine ekleyin. images.domains da kullanımdan kalktı; yerine remotePatterns.
Kaldırılan özellikler (Removals)
- AMP:
next/amp,useAmpveampyapılandırması tamamen kaldırıldı. next lint: Komut venext.config'tekieslintseçeneği yok;next buildartık lint çalıştırmıyor. ESLint veya Biome'u doğrudan kullanın.- Runtime config:
serverRuntimeConfigvepublicRuntimeConfigkalktı; ortam değişkenleri (NEXT_PUBLIC_öneki) kullanılıyor. experimental.dynamicIOveexperimental.useCache: Yerine üst düzeycacheComponents. Bunu açmak basit bir yeniden adlandırma değil, Cache Components modelini benimsemek demek.
Kontrol listesi (Checklist)
- Node.js 20.9+ ve TypeScript 5.1+ kurulu mu?
- Ayrı bir dalda codemod'ları çalıştırın, codemod'un bıraktığı hata yorumlarını ve
UnsafeUnwrappeddönüşümlerini temizleyin. - Özel webpack ayarı varsa Turbopack'e taşıyın veya
--webpackkullanın. - Edge middleware'i
proxy'ye çevirmeden önce çalışma zamanını kontrol edin. - Görsel isteklerini test edin: kalite değerleri, uzak kaynak listesi, yönlendirme yapan görsel adresleri.
revalidateTagçağrılarına ikinci argüman ekleyin.- Site haritası ve OG görselleri üreten fonksiyonlarda asenkron
id/paramskullanın, üretilen adresleri açıp kontrol edin. - CI betiklerinde
next lintkaldıysa değiştirin. - Canlıya almadan önce derlemeyi ayrı dizinde yapın, sonra yer değiştirin; çalışan sitenin
.nextdizininde derleme yapmayın.
Alesta WEB olarak yönettiğimiz Next.js projelerinde sürüm geçişini bu sırayla yapıyoruz; en sık takıldığımız yerler updateTag'in yalnız Server Action'da çalışması ve görsel kalite listesi oldu. Web projeniz için destek isterseniz web yazılım hizmetlerimize bakabilirsiniz.
Sık sorulan sorular
21 Ekim'den sonra sitem çalışmaz mı?
Çalışmaya devam eder. Bitecek olan, yeni güvenlik açıklarına yama gelme garantisi.
Next.js 15.5.28'de kalırsam ne olur?
Bilinen açıklar kapalı, ama bundan sonra bulunacak açıklar için yama garantisi yok. Geçişi birkaç hafta içinde planlamak en güvenli yol.
Pages Router kullanıyorum, etkileniyor muyum?
Evet, destek süresi ana sürüme bağlı. Pages Router 16'da da destekleniyor; Node.js, görsel varsayılanları, AMP ve runtime config değişiklikleri sizi de etkiler.
Geçiş ne kadar sürer?
Küçük bir App Router projesinde codemod ve testlerle birkaç saat. Özel webpack ayarı, edge middleware ve çok sayıda dinamik route varsa daha uzun.
Kaynaklar (References)
İlgili yazılar: Next.js 16.4.1 / 15.5.28 güvenlik güncellemesi · Next.js 16 yenilikleri · React 19 ve React Compiler · Web yazılım hizmetleri · İletişim
Kapak fotoğrafı: Emile Perron / Unsplash

