Next.js, 2025 itibarıyla kurumsal web projelerinin tercih ettiği framework olmaya devam ediyor. Vercel tarafından geliştirilen bu React tabanlı framework, hem geliştirici deneyimi hem de son kullanıcı performansı açısından rakiplerinden önde. Bu yazıda, Next.js'i neden seçmeli ve nasıl verimli kullanmalısınız sorularına yanıt veriyoruz.
Neden Next.js?
Sıfırdan bir web projesi başlatırken framework seçimi kritik. Next.js'i öne çıkaran faktörler:
- Hybrid Rendering: Sayfa bazında SSR, SSG, ISR veya Client-Side rendering seçebilirsiniz. Her sayfa için en uygun stratejiyi bağımsız uygulayın.
- SEO Avantajı: Server-side rendering sayesinde arama motorları sayfalarınızı kolayca indeksliyor. SPA'ların yaşadığı SEO sorunları Next.js ile ortadan kalkıyor.
- Yerleşik Optimizasyonlar: Image, Font ve Script optimizasyonları için hazır bileşenler geliyor. Elle yapılandırma gerekmeden performans artıyor.
- API Routes: Ayrı bir backend'e gerek kalmadan API endpoint'leri aynı projede yazabiliyorsunuz.
- Geniş Ekosistem: Vercel, AWS, GCP başta olmak üzere her platformda deploy edebilirsiniz.
App Router: Yeni Nesil Yönlendirme
Next.js 13 ile tanıtılan App Router, 2025'te olgunlaşmış durumda. Pages Router'dan farklı olarak:
- Dosya sistemi tabanlı yönlendirme daha sezgisel hale geldi.
- Server Components varsayılan — sadece gereken yerlerde "use client" direktifi kullanılıyor.
- Nested layouts ile tekrar eden UI elemanlarını (navbar, sidebar) tek yerden yönetebilirsiniz.
- Loading ve error boundary'ler dosya sistemiyle entegre çalışıyor.
// app/blog/layout.tsx
export default function BlogLayout({ children }) {
return (
<div>
<BlogSidebar /> {/* Her blog sayfasında gösterilir */}
<main>{children}</main>
</div>
);
}
Server Components ile Performans
Server Components, Next.js'in en güçlü özelliklerinden biri. Avantajları:
- JavaScript bundle boyutunu küçültür — bileşen istemciye gönderilmez.
- Veritabanı sorgularını, API çağrılarını doğrudan component içinde yapabilirsiniz.
- Hassas veriler (API key, veritabanı bağlantısı) istemciye sızmaz.
// Server Component — "use client" yok
async function ProductList() {
const products = await db.products.findMany(); // Doğrudan DB sorgusu
return <ul>{products.map(p => <li key={p.id}>{p.name}</li>)}</ul>;
}
Image Optimizasyonu
Next.js'in next/image bileşeni otomatik olarak şunları yapıyor:
- WebP ve AVIF formatlarına dönüştürme (tarayıcı desteğine göre)
- Viewport boyutuna göre doğru görsel boyutunu sunma
- Lazy loading
- Layout shift önleme (width ve height prop'ları ile)
import Image from 'next/image';
<Image
src="/hero.jpg"
width={1200}
height={600}
alt="Hero görseli"
priority // LCP görseli için
/>
Metadata API ile SEO
App Router ile birlikte gelen Metadata API, SEO yönetimini kolaylaştırıyor:
// app/blog/[slug]/page.tsx
export async function generateMetadata({ params }) {
const post = await getPost(params.slug);
return {
title: post.title,
description: post.excerpt,
openGraph: {
images: [post.coverImage],
},
};
}
Deployment: Vercel ile Sıfır Konfigürasyon
Next.js projelerini Vercel'e deploy etmek en kolay seçenek:
- GitHub reposunu bağlayın, her push'ta otomatik deploy.
- Her PR için preview URL oluşturuluyor.
- Edge Network sayesinde global CDN otomatik.
- Environment variable yönetimi dashboard üzerinden.
Performans İpuçları
- next/font ile sistem font'larından Web fontlarına geçin, layout shift önleyin.
- Dynamic import ile ağır bileşenleri lazy load edin.
- React Server Components ve Suspense ile streaming kullanın.
- next/script ile üçüncü taraf script'lerin yüklenme stratejisini optimize edin.
Sonuç
Next.js, kurumsal web projelerinde doğru araç seçimi. Özellikle SEO gerektiren, performans kritik ve ölçeklenebilir projeler için ideal. Öğrenme eğrisi başlangıçta dik görünse de ekosistem zenginliği ve topluluk desteği bu süreci kolaylaştırıyor.
