Next.js Nedir? Uygulama Geliştiriciler İçin Sade Rehber
Next.js, React ile web siteleri ve web uygulamaları geliştirmek için bir çatıdır. React arayüzün yapı taşlarını verir: düğmeler, formlar, listeler. Next.js bunların etrafındaki web sitesinin geri kalanını ekler: sayfalar ve URL’ler, sayfaları okunmaya hazır olarak sunucuda render etmek, veri yüklemek ve aynı projede arka uç kodu çalıştırmak. Açık kaynaklıdır, Vercel adlı şirket tarafından geliştirilir ve React siteleri yapmanın en yaygın yollarından biridir.
Yapay zekâyla yapı kurarken Next.js neden önemli?
Bir yapay zekâ oluşturucuya bir uygulamayı anlattığınızda, teknik bir temel seçmesi gerekir. Bu seçim, daha sonra önem verdiğiniz şeyleri etkiler:
- Arama görünürlüğü. Google’da sıralanması gereken herkese açık bir site, gerçek HTML göndermekten fayda sağlar; Next.js bunu iyi yapar.
- Arka ucun nerede yaşadığı. Next.js, ön yüz sayfalarının ve sunucu kodunun (“bu formu kaydet” ya da “ödeme API’sini çağır” gibi) aynı projede durmasına izin verir.
- Barındırma. Sunucu özellikleri olan bir Next.js uygulamasının çalışacağı bir sunucuya ihtiyacı vardır; düz bir Vite uygulaması ise statik dosyalar olarak sunulabilir.
Mythex yeni projeleri varsayılan olarak Vite + React + TypeScript + Tailwind ile başlatır ve siz istediğinizde Next.js kullanır; ilk isteminizde “Next.js kullan” demeniz yeterlidir (teknolojinin nasıl seçildiği). Bu yüzden bunu ne zaman istemeye değer olduğunu bilmek faydalıdır.
Günlük bir benzetme
React bir kutu dolusu kaliteli Lego parçasıysa, Next.js talimatları, taban plakası ve kapı ile tesisat parçaları da dahil olan bir Lego setine benzer.
Aynı evi düz parçalardan da yapabilirsiniz; ama odaların nasıl bağlanacağına, ön kapının nereye geleceğine ve suyun nasıl gireceğine kendiniz karar vermeniz gerekir. Next.js bu kararları standart bir biçimde sizin için alır; böylece her Next.js projesi benzer bir düzende olur ve yeni bir geliştirici (ya da bir yapay zekâ) hızla yolunu bulabilir.
Next.js’in React’e neler eklediği
| Özellik | Sizin için anlamı |
|---|---|
| Dosya tabanlı yönlendirme | Her sayfa bir dosyadır. app/pricing/page.tsx dosyası /pricing sayfası olur. Ek kurulum gerekmez. |
| Sunucu tarafı render | Sayfalar her istekte sunucuda HTML’e çevrilebilir; böylece hızlı görünürler ve arama motorları okuyabilir. |
| Statik üretim | Nadiren değişen sayfalar önceden bir kez oluşturulup çok hızlı sunulabilir. |
| Sunucu bileşenleri (Server Components) | Sayfanın bazı parçaları yalnızca sunucuda çalışabilir — veritabanını doğrudan okuyarak — ve tarayıcıya kod değil, hazır HTML gönderir. |
| Yol işleyicileri ve sunucu eylemleri | Bir API uç noktası ya da form işleyicisi gibi arka uç kodu, sayfalarla aynı projede yaşar. |
| Yerleşik optimizasyonlar | Resim boyutlandırma, yazı tipi yükleme ve kod bölme sizin için yapılır. |
Next.js’te sayfaları düzenlemenin iki yolu vardır. App Router (app/ klasörü) daha yenisidir ve sunucu bileşenlerini destekler. Pages Router (pages/ klasörü) özgün olanıdır ve hâlâ desteklenir. Yeni projeler genellikle App Router kullanır. Yapay zekâ oluşturucunuzun kodu ya da bir eğitim size tanıdık gelmiyorsa, sebebi çoğu zaman budur.
Çalışılmış bir örnek: yerel kafelerin herkese açık bir dizini
Şehrinizdeki kafeleri listeleyen, her kafe için bir sayfası olan ve arama sonuçlarında görünmesini istediğiniz bir site düşünün.
Bir kafe için bir Next.js sayfası kabaca şöyle görünebilir:
// app/cafes/[slug]/page.tsx → /cafes/blue-door, /cafes/hilltop ...
export default async function CafePage({ params }) {
const { slug } = await params;
const cafe = await db.cafe.findUnique({ where: { slug } });
return (
<main>
<h1>{cafe.name}</h1>
<p>{cafe.address}</p>
</main>
);
}
Biri (ya da Google) /cafes/blue-door adresini ziyaret ettiğinde olanlar:
- Next.js URL’yi o dosyayla eşleştirir.
[slug]klasörü “herhangi bir kafe” anlamına gelir. - Bileşen sunucuda çalışır, kafeyi veritabanından okur ve HTML’i oluşturur.
- Tarayıcı, kafenin adı ve adresi zaten içinde olan eksiksiz bir sayfa alır; veri için JavaScript’in beklenmesi gerekmez.
Düz bir istemci tarafı React uygulamasında ise tarayıcı önce neredeyse boş bir sayfa alır, sonra JavaScript’i indirir, sonra kafeyi getirir ve sonra gösterir. Arama motorları bunu çoğu zaman işleyebilir, ama tam oluşmuş bir sayfa daha güvenilirdir. Bkz. yapay zekâyla yapılmış web siteleri için SEO.
Buna karşılık, bir girişin arkasındaki yalnızca personele açık bir panel düşünün: arama motorları zaten onu göremez, dolayısıyla sunucu tarafı render çok fayda sağlamaz ve daha basit bir Vite uygulaması çoğu zaman daha uygundur.
Temel terimler
| Terim | Anlamı |
|---|---|
| Çatı (framework) | Uygulamanın nasıl düzenleneceğini belirleyen kurallara sahip bir yapı. Next.js bir çatıdır; React bir kütüphanedir. |
| SSR (sunucu tarafı render) | Her ziyarette sayfanın HTML’ini sunucuda oluşturmak. |
| SSG (statik site üretimi) | Sayfaları yayımlama sırasında önceden HTML’e çevirmek. |
| CSR (istemci tarafı render) | Tarayıcının yüklemeden sonra JavaScript ile sayfayı oluşturması. Tipik bir Vite + React uygulaması böyle çalışır. |
| SPA (tek sayfalık uygulama) | Bir kez yüklenen ve tam sayfa yenilemeleri olmadan görünümleri tarayıcıda değiştiren uygulama. |
| Hydration (canlandırma) | Tarayıcının sunucudan gelen HTML’i “uyandırması”; böylece düğmeler ve formlar etkileşimli olur. |
| Route (rota) | /pricing gibi bir URL yolu ve ona yanıt veren kod. |
Yaygın yanlış anlamalar
- “Next.js, React’in yerini alır.” Almaz. React’i kullanır. Bileşenleriniz hâlâ React bileşenleridir.
- “Next.js her zaman daha iyi seçimdir.” Daha yeteneklidir, ama anlaşılması da daha fazla şey gerektirir. Sunucu tarafı render, önbellekleme ve sunucu ile istemci kodu arasındaki fark, kafa karıştırıcı hataların sık kaynaklarıdır. Büyük ölçüde giriş arkasında çalışan bir uygulama için düz bir React uygulaması genellikle daha basittir.
- “Next.js yalnızca Vercel’de çalışır.” Açık kaynaklıdır ve herhangi bir Node.js sunucusunda ya da bir Docker konteynerinde çalışabilir. Sunucu özelliklerini kullanmazsanız tam statik dışa aktarım da mümkündür.
- “Next.js kullanmak iyi SEO’yu garanti eder.” Okunabilir sayfaları kolaylaştırır. Sıralamalar yine başlıklara, içeriğe, hıza ve bağlantılara bağlıdır.
- “Next.js’te sunucu kodu otomatik olarak gizlidir.” İstemci için işaretlenen kod tarayıcıya iner. Gizli bilgiler yalnızca sunucu tarafı kodda kalmalı ve ortam değişkenlerinde tutulmalıdır.
Yapay zekâ oluşturucunuzdan ne isteyin
- “Next.js’i App Router ile kullan” — istersen ilk isteminde.
- “Hangi sayfalar sunucuda render ediliyor, hangileri statik ve hangileri tarayıcıda çalışıyor — ve neden?”
- “Herkese açık pazarlama ve listeleme sayfalarını, doğru başlık ve açıklamalarla sunucu tarafında render edilmiş ya da statik yap.”
- “API anahtarlarını yalnızca sunucu tarafı kodda ve ortam değişkenlerinde tut. Her birinin nerede okunduğunu göster.”
- “Bu uygulamanın Next.js’e ihtiyacı var mı, yoksa yapmak istediğimiz şey için Vite + React daha basit olur mu?”
Mythex’te Next.js
Mythex varsayılan olarak Vite + React + TypeScript + Tailwind kullanır ve isteminizde belirttiğinizde Next.js’e geçer; bunu erken söylemek, sonradan değiştirmekten daha az kredi harcatır. Uygulamayı canlı Önizlemede görürsünüz; Yayımla ise hosting’i kendiniz kurmadan uygulamayı canlı bir URL’ye koyar. Mythex dokümanları, istemci tarafında render edilen tek sayfalık uygulamaların SEO açısından sunucu tarafında render edilmiş ya da statik HTML’den daha zayıf olduğunu belirtir; bu yüzden arama önemliyse bunu baştan söylemeye değer (uygulamanız için SEO).
Sorular
Next.js basitçe nedir?
Next.js, React üzerine kurulu bir çatıdır. React, arayüzün yapı taşlarını oluşturur; Next.js ise bunların etrafındaki web sitesinin geri kalanını ekler: sayfalar ve URL’ler, sunucuda render, veri yükleme ve arka uç kodu. Böylece tam bir web uygulamasını tek bir projede kurabilirsiniz.
React ile Next.js arasındaki fark nedir?
React, arayüz bileşenleri oluşturmak için bir kütüphanedir. Next.js ise React’i kullanan ve yönlendirme, sunucu tarafı render, statik sayfalar ve sunucu tarafı kod ekleyen bir çatıdır. Her Next.js uygulaması bir React uygulamasıdır, ama her React uygulaması Next.js kullanmaz.
Next.js SEO için daha mı iyi?
Olabilir. Next.js, arama motorlarına ve ziyaretçilere sunucudan ya da önceden oluşturulmuş statik sayfalardan tamamen oluşmuş HTML gönderebilir. İstemci tarafında çalışan düz bir React uygulaması ise JavaScript’in doldurduğu neredeyse boş bir sayfa gönderir. Yine de iyi başlıklar, açıklamalar ve içerik, çatıdan daha önemlidir.
Next.js kullanmak için Vercel’e ihtiyacım var mı?
Hayır. Next.js açık kaynaklıdır ve Vercel tarafından geliştirilmiştir; ama Node.js çalıştıran herhangi bir sunucuda, bir Docker konteynerinde ya da sunucu özelliklerine ihtiyaç duymayan siteler için statik dışa aktarım olarak çalışabilir. Bazı özellikler Vercel’de kurmak daha kolaydır.
Uygulamam için Next.js mi Vite mi kullanmalıyım?
Bir panel ya da dahili araç gibi giriş yapılan bir uygulama için Vite + React daha basittir ve iyi çalışır. Next.js ise arama motorlarının kolayca okuyabildiği içeriğe, çok sayıda herkese açık sayfaya ya da arka uç kodunuzla aynı projede sunucu tarafında render edilen sayfalara ihtiyacınız olduğunda değer kazanır.