Blog/Teknoloji

Next.js Nedir? React'in Geleceği ve Modern Web Geliştirme

Erdi Doğan

Erdi Doğan

Founder & Developer

•Güncellendi: •9 dk okuma
Next.js framework server-client mimarisi

Web geliştirme dünyası sürekli evrim geçiriyor. React tek başına güçlü bir kütüphane olsa da, production-ready uygulamalar için daha fazlasına ihtiyaç var. İşte tam bu noktada Next.js devreye giriyor.

Kısa cevap: Next.js, Vercel'in geliştirdiği, React üzerine kurulu açık kaynaklı bir full-stack web framework'üdür. React arayüz bileşenlerini yazmanızı sağlar; Next.js bunlara şunları ekler:

  • Dosya tabanlı routing (klasör = URL)
  • Sunucuda render (SSR), statik üretim (SSG) ve önbellekleme; bu sayede SEO dostu HTML
  • Aynı projede API uç noktaları ve Server Actions ile backend
  • Görsel, font ve kod bölme optimizasyonları

Ekim 2026 itibarıyla güncel ana sürüm Next.js 16'dır (ilk sürümü 21 Ekim 2025'te yayımlandı). Kısaca: React bir kütüphane, Next.js ise onu canlıya çıkacak bir web sitesine dönüştüren çatı.

Next.js Nedir?

Next.js, Vercel tarafından geliştirilen ve React üzerine inşa edilmiş bir full-stack web framework'üdür. 2016'da piyasaya sürülmesinden bu yana, React ekosisteminin en popüler framework'ü haline geldi.

Basitçe söylemek gerekirse: Next.js = React + Routing + SSR + Tooling

React size component'ler ve state yönetimi sağlarken, Next.js bunun üzerine:

  • Dosya tabanlı routing sistemi
  • Server-side rendering (SSR)
  • Static site generation (SSG)
  • API routes ile backend işlevselliği
  • Otomatik code splitting
  • Image ve font optimizasyonu

ekler.

Neden Next.js Kullanmalısınız?

1. SEO Dostu

Geleneksel React uygulamaları client-side rendering (CSR) kullanır. Bu, içeriğin JavaScript çalıştıktan sonra render edilmesi demektir. Arama motorları için bu bir problem:

// Geleneksel React - Google bunu görmekte zorlanır
function Page() {
  const [data, setData] = useState(null);
  
  useEffect(() => {
    fetch('/api/data').then(res => setData(res));
  }, []);
  
  return <div>{data?.title}</div>;
}

Next.js ile server-side rendering kullanarak içeriği HTML olarak sunarsınız:

// Next.js - içerik sunucuda HTML olarak üretilir
export default async function Page() {
  const res = await fetch('https://api.example.com/data');
  const data = await res.json();

  return <div>{data.title}</div>;
}

2. Mükemmel Performans

Next.js, performansı varsayılan olarak optimize eder:

  • Otomatik code splitting: Her sayfa sadece ihtiyacı olan JavaScript'i yükler
  • Prefetching: Viewport'taki linkler otomatik olarak ön yüklenir
  • Image optimization: next/image ile otomatik WebP/AVIF dönüşümü
  • Font optimization: Google Fonts bile self-host edilir
  • Turbopack: Next.js 16 ile varsayılan derleyici oldu; Vercel'e göre production build'leri 2-5 kat, Fast Refresh'i 10 kata kadar hızlandırıyor

3. Full-Stack Geliştirme

Next.js ile hem frontend hem backend tek projede:

// app/api/users/route.ts - API endpoint
export async function GET() {
  const users = await db.users.findMany();
  return Response.json(users);
}

export async function POST(request: Request) {
  const body = await request.json();
  const user = await db.users.create(body);
  return Response.json(user);
}

4. Vercel ile Mükemmel Entegrasyon

Vercel, Next.js'in yaratıcısı olduğu için deploy işlemi inanılmaz basit:

git push origin main
# Otomatik olarak production'a deploy edilir

Next.js'in Temel Kavramları

App Router vs Pages Router

Next.js 13 ile birlikte gelen App Router, modern React özelliklerini (Server Components, Streaming, Suspense) kullanır:

app/
├── layout.tsx        # Root layout
├── page.tsx          # Ana sayfa (/)
├── about/
│   └── page.tsx      # /about
├── blog/
│   ├── page.tsx      # /blog
│   └── [slug]/
│       └── page.tsx  # /blog/nextjs-nedir

Pages Router ise eski yöntem:

pages/
├── index.tsx         # /
├── about.tsx         # /about
├── blog/
│   ├── index.tsx     # /blog
│   └── [slug].tsx    # /blog/nextjs-nedir

💡 Öneri: Yeni projeler için App Router kullanın. Daha modern, daha performanslı.

Server Components vs Client Components

App Router'da component'ler varsayılan olarak Server Component'tir (bu yaklaşımın ayrıntıları için React Server Components rehberimize bakabilirsiniz):

// Server Component (varsayılan)
// - Sunucuda render edilir
// - Direkt veritabanına erişebilir
// - useState, useEffect KULLANILAMAZ
async function ProductList() {
  const products = await db.products.findMany();
  return (
    <ul>
      {products.map(p => <li key={p.id}>{p.name}</li>)}
    </ul>
  );
}

Etkileşimli component'ler için Client Component kullanılır:

'use client'; // Bu direktif ile client component olur

import { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);
  return (
    <button onClick={() => setCount(count + 1)}>
      Count: {count}
    </button>
  );
}

Rendering Stratejileri

Next.js dört farklı rendering stratejisi sunar:

StratejiNe Zaman RenderKullanım Alanı
SSGBuild timeBlog, dokümantasyon
SSRHer requestKişiselleştirilmiş içerik
ISRPeriyodikE-ticaret, haber
CSRClient-sideDashboard, admin panel
// Static Generation (SSG)
export const dynamic = 'force-static';

// Server-side Rendering (SSR)
export const dynamic = 'force-dynamic';

// Incremental Static Regeneration (ISR)
export const revalidate = 3600; // 1 saat

Next.js 16 ile Değişen Önbellekleme: Cache Components

Ocak'taki ilk yayında anlattığımız dynamic ve revalidate ayarları hâlâ çalışıyor, ama Next.js 16 yeni ve daha açık bir model getirdi: Cache Components. Resmi duyuruya göre bu modelde önbellekleme tamamen isteğe bağlı: sayfa, bileşen ya da fonksiyonun başına "use cache" yazana kadar dinamik kod her istekte çalışıyor. Eskiden "bu sayfa neden güncellenmiyor?" sorusunun kaynağı olan örtük önbellekleme böylece ortadan kalkıyor.

// next.config.ts → cacheComponents: true
async function PopulerUrunler() {
  'use cache'; // bu bileşenin çıktısı önbelleğe alınır
  const urunler = await db.products.findMany({ take: 8 });
  return <UrunListesi urunler={urunler} />;
}

Aynı sayfada önbelleklenen kısımlar anında, kişiye özel kısımlar (sepet, kullanıcı adı) Suspense içinde akışla gelir. Bu, 2023'te deneysel olarak duyurulan Partial Prerendering fikrinin oturmuş hali.

Next.js ile Proje Başlatma

Kurulum

npx create-next-app@latest my-app

Next.js 16 ile kurulum sihirbazı sadeleşti: varsayılan şablon App Router, TypeScript, Tailwind CSS ve ESLint ile geliyor. Başlamadan önce bilgisayarınızda Node.js 20.9 veya üzeri olduğundan emin olun; Node.js 18 artık desteklenmiyor.

Dosya Yapısı

my-app/
├── src/
│   ├── app/
│   │   ├── layout.tsx      # Root layout
│   │   ├── page.tsx        # Ana sayfa
│   │   └── globals.css     # Global stiller
│   ├── components/         # Paylaşılan component'ler
│   └── lib/                # Utility fonksiyonlar
├── public/                 # Statik dosyalar
├── proxy.ts                # İstek yakalama (eski adıyla middleware.ts)
├── next.config.ts          # Next.js config
└── package.json

İlk Sayfanız

// src/app/page.tsx
export default function Home() {
  return (
    <main className="flex min-h-screen flex-col items-center justify-center">
      <h1 className="text-4xl font-bold">
        Merhaba Next.js! 👋
      </h1>
    </main>
  );
}

Next.js 16'da Neler Değişti?

İlk yayından bu yana en büyük değişiklik Next.js 16'nın çıkması oldu. Mevcut bir projeyi yükseltecek ya da eski bir eğitimi takip ediyorsanız şu farkları bilin:

KonuEskidenNext.js 16
Derleyici (bundler)Webpack varsayılanTurbopack varsayılan (--webpack ile eskiye dönülebilir)
İstek yakalamamiddleware.tsproxy.ts (middleware.ts kullanımdan kalkıyor)
ÖnbelleklemeÖrtük, karmaşık"use cache" ile açık, isteğe bağlı (Cache Components)
params, cookies(), headers()Senkron erişimSadece await ile asenkron erişim
Lintnext lint komutuKaldırıldı; ESLint veya Biome doğrudan
React CompilerDeneyselStabil destek (varsayılan kapalı)
AMP desteğiVardıKaldırıldı
Minimum Node.js1820.9

Yükseltme için Vercel'in otomatik aracı çoğu değişikliği kendisi yapıyor: npx @next/codemod@canary upgrade latest. Bu blogun yayınlandığı digitexa.com da Next.js 16 ile çalışıyor; bizim deneyimimizde yükseltmede en çok vakit alan kısım asenkron params dönüşümü ve özel webpack ayarları oldu.

Next.js ile React Arasındaki Fark

"React mi, Next.js mi?" sorusu aslında yanlış kurulmuş bir soru, çünkü Next.js React'in yerine değil üzerine kullanılır:

ReactNext.js
Ne?Arayüz kütüphanesiReact tabanlı framework
RoutingEk kütüphane gerekirDosya tabanlı, yerleşik
Sunucuda renderKendiniz kurarsınızVarsayılan
Backend / APIAyrı sunucu gerekirAynı projede
SEOEk çaba isterKutudan çıkar
Ne zaman tek başına yeter?Giriş gerektiren paneller, gömülü widget'larHerkese açık siteler, e-ticaret, içerik siteleri

React'in kendi dokümantasyonu da yeni projelere başlarken Next.js gibi bir framework kullanmayı öneriyor.

Next.js vs Diğer Framework'ler

ÖzellikNext.jsNuxtReact Router v7 (eski Remix)Astro
DilReactVueReactÇoklu (React, Vue, Svelte...)
SSR✅✅✅✅
SSG / prerender✅✅✅✅ (ana güç)
File-based Routing✅✅Opsiyonel✅
API / sunucu uç noktaları✅✅✅ (loader/action)✅ (endpoint)
React Server Components✅ Stabil❌Deneysel❌ (island mimarisi)
En iyi olduğu işFull-stack React uygulamalarıVue ekipleriVeri odaklı React uygulamalarıİçerik ağırlıklı, az JS'li siteler

İlk yayındaki tabloda Remix'i statik üretim yapamaz, Astro'yu Server Components destekler gibi göstermiştik; ikisi de hatalıydı ve düzeltildi. Remix ekibi, Remix'in özelliklerini React Router v7 içinde birleştirdi.

Gerçek Dünya Örnekleri

Next.js'in resmi vitrin sayfasında listelenen örneklerden bazıları:

  • Netflix - Netflix Jobs (kariyer sitesi)
  • Nike - nike.com
  • OpenAI - web siteleri
  • Claude - Anthropic

Biz de bir yazılım ajansı olarak web projelerimizin büyük çoğunluğunda Next.js kullanıyoruz; neden bu tercihi yaptığımızı ve ne zaman kullanmadığımızı Next.js ile neden çalışıyoruz? yazısında anlattık. MEF Üniversitesi, Stuudy ve E-Kuralkan gibi projeler Next.js ile geliştirildi.

Next.js Öğrenme Yol Haritası

  1. Temel React bilgisi (component'ler, hooks, state)
  2. Next.js App Router (routing, layouts, loading states)
  3. Data Fetching (server components, fetch, "use cache" ile önbellekleme)
  4. Server Actions (form handling, mutations)
  5. Route Handlers ve proxy.ts (REST uç noktaları, istek yakalama)
  6. Deployment (Vercel, Docker, Node.js)

Sonuç

Next.js, React ile herkese açık, SEO önemli bir web sitesi ya da uygulama geliştirecekseniz bugün en olgun seçenek. Tek başına her iş için doğru araç değil: içerik ağırlıklı, neredeyse hiç etkileşim içermeyen bir sitede Astro daha hafif, Vue bilen bir ekipte Nuxt daha doğal olabilir. React biliyorsanız, Next.js öğrenmek doğal bir sonraki adım.

Eğer detaylı bilgi istiyorsanız, Next.js teknoloji sayfamıza göz atabilirsiniz. Orada daha teknik detaylar, kod örnekleri ve best practice'ler bulacaksınız.


Next.js ile proje mi kuracaksınız? Yazılım şirketi hizmetlerimizi inceleyin veya bizimle iletişime geçin — ücretsiz danışmanlık alın.

Bu yazı 7 Ekim 2026'da güncellendi: Next.js 16 değişiklikleri (Turbopack, proxy.ts, Cache Components ve "use cache", asenkron params, Node.js 20.9) ve "Next.js ile React farkı" bölümü eklendi; framework karşılaştırma tablosundaki Remix ve Astro hataları ile kullanıcı listesi resmi vitrine göre düzeltildi; kısa cevap eklendi.

#Next.js#React#SSR#Web Development#Frontend
Paylaş:

Projenizi Hayata Geçirelim

Bu teknolojileri kullanarak projenizi geliştirmek ister misiniz?

Ücretsiz Danışmanlık Alın