Selam, ben Skyversal. Bu rehberde sana komutları ezberletmeyeceğim. Birlikte sıfırdan küçük ama tıkır tıkır çalışan gerçek bir proje geliştirecek, yeni nesil App Router'ı tanıyacak ve günün sonunda kodlarını tüm dünyaya açacağız. Hazırsan kollarımızı sıvayalım!
Bu rehberin sonunda elinde ne olacak?
Şu an bomboş bir ekrana bakıyorsun ama dakikalar içinde şöyle şık ve internete açık bir uygulaman olacak:
Welcome to Skyversal 🚀
Deploy in Seconds. Running on Next.js
1. Nedir Bu Next.js Dedikleri?
Bilirsin, React tek başına arayüz yazmak için harikadır ama işin içine sayfa yönlendirmesi (routing) veya arama motoru optimizasyonu (SEO) girince "Abi ben sadece component çizerim" der. İşte Next.js tam bu noktada devreye giriyor. Üzerine SSR (Server Side Rendering), API katmanları ve performans optimizasyonları ekleyerek React'i tam teşekküllü bir canavara dönüştürüyor.
- Routing: Kullanıcının sitede sayfalar arası geçiş yapabilmesini sağlayan sistem (örn: skyversal.dev/docs sayfasına gitmek).
- SSR (Server Side Rendering): Web sayfasının tarayıcıya gelmeden önce sunucuda oluşturulması. Sitenin Google'da (SEO) çok daha kolay bulunmasını ve hızlı açılmasını sağlar.
- API: Frontend (arayüz) ile veritabanı arasındaki iletişimi sağlayan gizli kurye.
Skyversal olarak biz bu yapıyı çok seviyoruz ve sistemimiz bunu anında tanıyor. Yani senin zahmet edip klasör yapılarını, sunucu komutlarını Skyversal'e anlatmana gerek yok. Biz "Aha, bu Next.js!" deyip her şeyi senin yerine arka planda kuruyoruz.
2. Haydi! İlk Projemizi Oluşturalım
Aç o siyah terminal ekranını (korkma, ısırmaz) ve şu komutu yapıştır:
npx create-next-app@latest hello-skyversal
Next.js kurulum sırasında sana birkaç soru soracak. Benim 20 yıllık tecrübeme güvenerek cevaplarını şöyle verebilirsin:
- Would you like TypeScript? Yes — Beni dinle, sonradan "bu değişken neydi ya" diye ağlamamak için bunu evet yap.
- Would you like Tailwind? Yes — Modern ve hızlı arayüz geliştirmenin en iyi yoludur.
- Would you like App Router? Yes — Gelecek burada. Next.js'in yeni oyuncağı, alışırsan bırakamazsın.
3. Odaları Gezelim (Klasör Yapısı)
Proje klasörüne (cd hello-skyversal) girince bir sürü dosya göreceksin. Gözün korkmasın, senin bilmen gereken temel 4 yer var:
Evimizin salonu. Tüm sayfalar, layout'lar ve rotalar burada takılır.
Kilerimiz. Logolar, fontlar, statik resimler burada tozlanır.
Projenin kimliği ve alışveriş listesi. Hangi kütüphaneler yüklü buradan bakarız.
Kombinin şalteri. Next.js'in can alıcı derleme ayarları burada yatar.
4. İlk Şaheserimizi Yazıyoruz
Hemen app/page.tsx dosyasını aç, içindeki o hazır gelen kuru kalabalığı komple sil ve benim sana hazırladığım şu tatlı kodu yapıştır:
export default function Home() {
return (
<main className="min-h-screen flex items-center justify-center bg-black">
<section className="border border-white/10 p-10 rounded-2xl bg-white/5 text-center">
<h1 className="text-4xl font-bold text-white mb-4">
Welcome to Skyversal 🚀
</h1>
<p className="text-gray-400 mb-8">Deploy in Seconds. Running on Next.js</p>
<div className="flex gap-4 justify-center">
<span className="bg-emerald-500/20 text-emerald-400 px-3 py-1 rounded">
GitHub Connected
</span>
<span className="bg-blue-500/20 text-blue-400 px-3 py-1 rounded">
Tailwind Ready
</span>
</div>
</section>
</main>
);
}
Yeni başlayanların düştüğü en meşhur tuzaklardan birini vereyim: Eğer bu sayfaya bir buton koyup onClick ekleseydin anında patlardın. Çünkü Next.js App Router, tüm bileşenleri varsayılan olarak sunucuda (Server Component) render eder. Kullanıcı tarayıcısında çalışacak bir tıklama eventi (interaktivite) lazımsa, o dosyanın en tepesine gidip şerefle "use client"; yazmayı unutma!
5. Localhost'ta Bir Görelim
Eserimizi görmek hakkımız, terminalde şu komutu ateşle:
npm run dev
Hemen tarayıcından http://localhost:3000 adresine git. Fişek gibi görünüyor değil mi? Kodda bir şeyi değiştirip kaydettiğinde sayfayı F5'lemene gerek bile kalmayacak, anında güncellenecek. Gençler buna HMR (Hot Module Replacement) diyor.
- HMR (Hot Module Replacement): Geliştirme yaparken (localhost), kodu kaydettiğin an tarayıcının tüm sayfayı yenilemeden (refresh yapmadan) sadece değiştirdiğin butonu veya metni anında güncellemesi olayıdır. Geliştiriciyi delirmekten kurtarır.
6. Kodumuzu Paketleyelim (Git Nedir?)
Her güzel şeyin bir yedeği olmalı. Git dediğimiz meret, kodumuzun zaman içindeki fotoğrafını çeken ve yanlış yaptığımızda hayat kurtaran bir sistem. Hemen şu 3 komutla projeyi mühürleyelim:
git init
git add .
git commit -m "İlk şaheserim: Merhaba Skyversal"
7. Kodu GitHub'a Şutluyoruz
GitHub'da hemen boş bir depo (repository) aç, oradaki linki kap ve şu iki sihirli kelimeyi terminale fısılda:
git remote add origin https://github.com/kullanici-adiniz/hello-skyversal.git
git push -u origin main
8. Sahne Zamanı: Skyversal'e Çıkıyoruz
Kodumuz GitHub'da sağlama alındı. Şimdi sıra, onu amcanın, halanın, kısacası tüm internetin görebileceği canlı bir site yapmaya geldi.
Skyversal paneline gir, "Create Project" butonuna yapıştır.
Hesabını yetkilendir ve az önce açtığın `hello-skyversal` reposunu seç.
Zaten her şeyi otomatik anladık. Sen sadece Deploy butonuna bas ve arkanı yasla.
9. Mutfakta Neler Oluyor? (Deploy Log)
Deploy butonuna bastığın an ekranda Matrix gibi bir terminal akmaya başlayacak. Korkma, bak arka planda biz senin için neleri terliyoruz:
Harika İş Çıkardın!
İnan bana, birçok kişi o terminal siyahını görünce pes ediyor. Sen sadece birkaç dakika önce bomboş olan bir klasörden, Skyversal'in Edge CDN altyapısında tıkır tıkır çalışan gerçek bir ürün çıkardın. Ekibimiz adına tebrik ederim!
Peki Şimdi N'apıyoruz?
Artık bizim kulüptesin. Projeni daha da profesyonel hale getirmek için şu adımları bir kurcala derim: