Next.js 15 Üretim Deploy: Vercel vs Self-Host Karşılaştırması 2026
Next.js production ortamına geçiş kararında belirleyici soru “performans” veya “fiyat” değil; operasyonel sahiplik ile platform velositesi arasındaki dengedir. Vercel managed platformunda dakikalar içinde global edge’e ulaşırsınız ama bandwidth ve serverless invocation katmanları ölçekle faturayı süpürür; self-host (AWS, GCP, Hetzner, dedicated Linux) birim maliyeti %40-70 düşürür ama SRE saatleri ve incident response yükünü ekibinize taşır. Next.js 15 (Kasım 2024 release) React 19 ile stable Server Components, Turbopack default, Partial Prerendering (PPR) stable ve revize caching semantiği getirdi.
Bu yazı 2026’da nextjs production deploy seçimini somut rakamlarla ayrıştırıyor: Vercel quota, AWS Fargate, Hetzner birim ekonomisi, Cloudflare Pages, ISR/PPR davranışları. Tablolar platform seçimini 2-3 günde sonuçlandırmak için tasarlandı.

Next.js 15 Üretim Mimarisi: Çalışma Modelleri ve Build Çıktısı
Next.js 15 build çıktısı dört runtime hedefi üretir: Static (HTML), SSR (Node.js), ISR (revalidate’li statik) ve Edge runtime (V8 isolate). App Router default’u Node.js SSR’dır; route segment başına export const runtime = 'edge' eklediğinizde V8 isolate’a kayar. PPR 15.1 ile stable opt-in’e geldi: aynı sayfada statik shell + dinamik suspense boundary’leri streaming SSR ile birleşir. E-ticaret kategori sayfalarında TTFB’yi 80-120ms aralığında sabitler.
Build çıktısının nereye konuşlandığını anlamak deploy seçimini belirler. Statik HTML herhangi CDN’e atılabilir, SSR Node.js process ister, edge route’lar V8 uyumlu runtime ister, ISR ise revalidate-tag invalidate akışı için kontrol düzlemine ihtiyaç duyar. Vercel dört modeli tek dashboard’da yönetir; self-host yolunda her birini ayrı bileşene haritalandırırsınız.
| Runtime hedef | Tipik latency (p50) | Cold start | State desteği | Tipik kullanım |
|---|---|---|---|---|
| Static HTML + CDN | 20-40 ms | Yok | Sadece okuma | Marketing, blog, docs |
| ISR (revalidate) | 40-90 ms (cached) | Yok (background) | Sadece okuma + tag invalidate | E-ticaret listing, haber |
| SSR Node.js | 120-280 ms | 200-800 ms | Full Node API | Dashboard, kullanıcı bağımlı sayfa |
| Edge runtime (V8) | 30-80 ms global | 5-50 ms | Sınırlı (no fs, no native) | A/B test, auth check, redirect |
| Server Action (RSC) | 150-350 ms | 200-800 ms | Full Node | Form submit, mutation |
Next.js 15 önemli bir kırılma getirdi: fetch default’u artık cache: ‘no-store’. Migrate eden projelerde build süreleri uzar, cache hit oranı düşer. Production’da her fetch çağrısı bilinçli { next: { revalidate: 3600 } } ya da cache: 'force-cache' ile işaretlenmeli.
Vercel Platform Modeli: Quota, Fiyat ve Skalalama Eşikleri
Vercel fiyatlandırması üç katman: Hobby (ücretsiz, ticari yasak), Pro ($20/ay kullanıcı başı) ve Enterprise ($20k-200k yıllık tipik kontrat). Pro plan içine 1 TB bandwidth, 1M edge function execution, 100 GB-saat serverless compute dahil. Metering “Active CPU time” ile “Wall time” ayrımı yapar — I/O bound endpoint’ler için avantajlıdır.
| Kaynak | Pro dahil | Aşım birim fiyatı | Enterprise indirim |
|---|---|---|---|
| Bandwidth | 1 TB | $0.15/GB | %30-60 |
| Serverless Function (Active CPU) | 100 GB-saat | $0.18/GB-saat | %30-50 |
| Edge Function Execution | 1 M | $2.00 / milyon | %40-60 |
| Edge Middleware Invocation | 1 M | $0.65 / milyon | %40-60 |
| Image Optimization | 5000 src | $5 / 1000 src | %50-70 |
| ISR Read | 10 M | $0.40 / milyon | %40-60 |
| Build Minutes | 6000 dk | $0.0072/dk | %30-50 |
Tipik SaaS dashboard (50k MAU, 18 sayfa/oturum, %60 SSR + %40 ISR) Vercel Pro üzerinde aylık $400-1100. 200k MAU’ya çıktığında fatura $2200-5600 — Enterprise pazarlığı zorunlu. Vercel’in net avantajı preview deploy, built-in analytics, image optimization, sıfır SRE yükü, 100+ POP edge network. Dezavantajı: bandwidth $0.15/GB — Cloudflare R2 + Workers aynı yükü $0.005/GB civarında yapar.
- Avantaj: Sıfır altyapı kurulumu, git push deploy, preview URL’leri PR review hızlandırır.
- Avantaj: Image optimization, ISR cache invalidation, analytics dahili — third party araç gerekmez.
- Dezavantaj: Bandwidth $0.15/GB sektör ortalamasının 5-30 katı; agresif log/streaming kullanımı patlatır.
- Dezavantaj: Function timeout Pro’da 60s, Enterprise’da 900s; uzun ML/batch işler taşınamaz.
- Ne zaman seç: 10-150k MAU arası ürün, ekip <8 mühendis, hızlı iterasyon önceliği, SRE pozisyonu yok.
Self-Host Yolları: AWS, GCP, Hetzner ve Cloudflare
Self-host tek mimariye işaret etmez. Dört profil: AWS ECS Fargate + CloudFront, GCP Cloud Run + Cloud CDN, Hetzner Cloud + Coolify/Dokploy, Cloudflare Pages + Workers. Her biri farklı operasyonel yüke, birim ekonomiye ve Next.js 15 feature parity’sine sahiptir.
AWS ECS Fargate’te Next.js standalone output Docker image’a paketlenir, ECS task’larına dağıtılır, CloudFront önüne geçer, ISR için ElastiCache cache handler’a bağlanır. GCP Cloud Run benzer paterni daha az config ile sunar: container push edersiniz, auto-scaling 0’dan başlar. Hetzner Coolify ile 2 vCPU CX22 instance €5/ay büyük çoğunluk üretim yüklerini taşır. Cloudflare Pages + Workers Next.js 15 SSR’ı OpenNext.js adapter üzerinden — feature parity %85-90.
| Platform | Min aylık maliyet | Tipik orta segment | SRE saati/ay | Next.js 15 parity |
|---|---|---|---|---|
| Vercel Pro | $20 | $400-1100 | 0-2 | %100 |
| AWS ECS Fargate + CloudFront | $60 | $180-450 | 12-25 | %95 |
| GCP Cloud Run + CDN | $0 (idle) | $120-350 | 8-18 | %95 |
| Hetzner CX32 + Coolify | $11 | $11-45 | 15-30 | %90 |
| Cloudflare Pages + Workers | $0 | $5-60 | 5-12 | %85 |
| DigitalOcean App Platform | $12 | $50-180 | 3-8 | %92 |
| Azure Static Web Apps | $9 | $80-260 | 6-14 | %88 |
Hetzner örneği: Coolify + Next.js 15 standalone, CX22 €4.51/ay, Cloudflare front, PostgreSQL Docker. 30k MAU aylık €5-12. Vercel Pro’da aynı yük $180-280 — fark 30x. Karşılığında OS update, fail2ban, backup, monitoring, incident response sizin sorumluluğunuzda. Go ile yüksek performanslı backend mimarisinde self-host ROI Hetzner/dedicated lehine kayar.

Birim Ekonomisi: 1 Milyon İstek Maliyeti Karşılaştırması
Somut senaryo: 1M istek/ay, 80 KB yanıt (80 GB bandwidth), %70 ISR cached, %25 SSR, %5 Server Action — tipik B2C profili.
| Kalem | Vercel Pro | AWS Fargate | Hetzner CX32 | Cloudflare Workers |
|---|---|---|---|---|
| Compute | $54 (300 GB-s) | $42 (1 task 2vCPU) | €14 (CX32) | $5 (Workers Paid) |
| Bandwidth 80 GB | $0 (dahil) | $7.20 ($0.09/GB CloudFront) | €0 (20 TB dahil) | $0 |
| ISR/Cache | $0 (10M dahil) | $15 (ElastiCache t4g.micro) | $0 (Redis container) | $5 (KV) |
| Edge Middleware 1M | $0 (dahil) | $0 (Lambda@Edge $0.60) | $0 | $0.50 |
| Image Optimization | $0 | $0 (next/image self) | $0 | $0 (Image Resizing) |
| Build Minutes | $0 | $2 (CodeBuild 300dk) | $0 (Coolify) | $0 |
| Aylık toplam | $74 | $66 | €19 (~$21) | $11 |
| SRE saati maliyeti (hesaplanmadı) | 0 saat | ~15 saat ($1500) | ~22 saat ($2200) | ~8 saat ($800) |
Yüzeysel Hetzner kazanır; TCO’ya SRE saati eklenince tablo değişir. Senior SRE saati TR’de $80-150, EU/US’te $150-280. 22 saat/ay Hetzner’i $2200 üzerine taşır. Vercel’in $74’ü 0 SRE yüküyle gerçek $74’tür. Eşik: tam zamanlı SRE varsa self-host ekonomik; yoksa Vercel üstün gelir.
Trafik 10x büyüdüğünde ne olur?
10M istek/ay’da Vercel ~$650-900, AWS Fargate ~$280-380, Hetzner CCX23 + Redis ~€42, Cloudflare Workers ~$45. SRE saati Vercel 0, diğerleri 18-30 saat. Bu kırılma noktasında ($500+/ay Vercel) self-host ROI tartışılır hale gelir. Python backend tarafında FastAPI vs Django seçiminde benzer ölçeklenme eşikleri yaşanır.
Performans: TTFB, LCP ve Core Web Vitals Karşılaştırması
Next.js 15 üretim performansı runtime hedefe, CDN kapsamına ve cache politikasına göre değişir. Tablo aynı uygulamanın (e-ticaret kategori sayfası, 12 image, 4 third-party script) farklı deploy yollarında ölçümleridir. WebPageTest Premium, Istanbul/Frankfurt/Virginia/Tokyo/São Paulo, p75, Mart 2026.
| Metrik | Vercel (PPR on) | AWS CloudFront | Cloudflare Pages | Hetzner + CF front |
|---|---|---|---|---|
| TTFB (Istanbul) | 78 ms | 112 ms | 54 ms | 62 ms |
| TTFB (Frankfurt) | 42 ms | 68 ms | 28 ms | 34 ms |
| TTFB (São Paulo) | 118 ms | 156 ms | 71 ms | 238 ms |
| LCP p75 | 1.4 s | 1.9 s | 1.2 s | 1.6 s |
| INP p75 | 140 ms | 165 ms | 132 ms | 145 ms |
| CLS p75 | 0.03 | 0.04 | 0.02 | 0.04 |
| Image opt aktif mi? | Otomatik | Manuel (sharp) | Cloudflare Polish | Manuel (sharp) |
Cloudflare Pages global TTFB’si 280+ POP ile en düşüktür ama PPR/Server Actions OpenNext.js adapter üzerinden olduğu için %10-15 feature gap kalır. Vercel kendi framework’üne en direkt optimizasyona sahip — PPR shell edge’den 30ms döner. Self-host Hetzner’e Cloudflare front koyunca Avrupa içinde Vercel’le aynı seviyeye gelirsiniz; uzak coğrafyalarda (Güney Amerika, Avustralya) origin tek lokasyon olduğu için TTFB 2-3x artar.
- İlk paint odaklı sayfalar (marketing, blog): Cloudflare Pages veya Vercel — global edge cache.
- Auth’lu dashboard (user-specific SSR): Vercel veya AWS Fargate çoklu region — origin lokasyonu kullanıcıya yakın.
- Geo-spesifik ürün (sadece Türkiye trafiği): Hetzner Helsinki + Cloudflare front — birim maliyet 10x avantaj.
- Yüksek mutation oranlı uygulama: AWS Fargate veya GCP Cloud Run + region yakını DB — Vercel function timeout sınırı sorun yaratabilir.

ISR, Cache ve Revalidate: Self-Host Kurulumunun Zor Kısmı
Next.js 15 ISR ve revalidateTag/revalidatePath API’leri Vercel’de tek tık çalışır; self-host’ta cache handler kurulumu gerektirir. Default cache handler in-memory’dir — multi-instance Fargate task’larda her instance’ın kendi cache’i olur, revalidate sadece o instance’a etkir. Kullanıcıların farklı task’lara düşmesi eski içerik görmelerine sebep olur.
Çözüm: Custom cache handler Redis veya S3 backend’e bağlanmalı. @neshca/cache-handler ve next-cache-handler-redis paketleri 2025’te olgunlaştı. ElastiCache veya Hetzner Redis ile cache state shared olur, revalidate event tüm task’lara yayılır.
| Cache strateji | Vercel | AWS self-host | Hetzner self-host | Komplikasyon |
|---|---|---|---|---|
| In-memory (default) | Otomatik dağıtık | Per-instance, stale risk | Tek instance OK | Multi-instance’da skew |
| Redis cache handler | N/A | ElastiCache $15-60/ay | Docker Redis $0 | TLS, persistence config |
| S3 cache handler | N/A | S3 + tag invalidate | MinIO/B2 | Latency 30-80ms |
| On-demand revalidate | Built-in API | Custom endpoint | Custom endpoint | Authentication, broadcast |
| Time-based revalidate | Otomatik | Cron + queue | Cron + queue | Drift, race condition |
Pratik tavsiye: self-host başlıyorsanız ilk iterasyonda ISR yerine pure SSR + Cloudflare cache rules kullanın (s-maxage, stale-while-revalidate). Invalidation ihtiyacı netleştiğinde Redis cache handler’a geçin — 2-3 hafta entegrasyonu erteleyebilirsiniz.
Edge Middleware, Server Actions ve Runtime Kısıtları
Next.js 15 middleware her istek için çalışır; Vercel’de Edge runtime’da (V8 isolate). Self-host’ta middleware ya Node.js process’inde çalışır (latency penalty) ya da Cloudflare Workers / Lambda@Edge’e dışsal deploy edilir. Cold start Vercel edge’de 5-15ms, Lambda@Edge’de 50-200ms.
Server Actions her zaman Node.js runtime’da çalışır — file system, native module, uzun ömürlü DB connection ihtiyacı vardır. Timeout: Vercel Pro 60s, Enterprise 900s; AWS Lambda 15dk; Fargate sınırsız; Hetzner Docker sınırsız. Uzun süreli işlem (PDF, video transcode, ML inference) varsa Vercel kısıtı engele dönüşür.
- Middleware’de yapılabilen: Auth header kontrolü, geo redirect, A/B test cookie set, rate limit (KV ile), feature flag.
- Middleware’de yapılamayan: DB query (timeout riski), büyük JSON parse (memory), file system access, native crypto.
- Server Action’da yapılabilen: Form submit, DB write, third-party API çağrısı, cache invalidate.
- Server Action’da dikkat: CSRF koruması Next 15’te default ama Origin header validate edilmeli; rate limit zorunlu; secret leak (action body server bundle’a girer).
Modern uygulama mimarisinde tasarım desenleri pratik ve SOLID prensipleri ekseninde Server Action’lar use case katmanına çağrı yapan thin handler olmalı; business logic action body’sine yazılırsa test edilemez.
Deploy Pipeline: CI/CD, Preview ve Rollback
Vercel’de git push deploy default: main production’a, diğer branch’ler unique preview URL’ye. Preview deploy ekstra ücret almaz. AWS Fargate self-host’ta preview deploy için GitHub Actions + ALB listener rule + ECS task definition versioning kurulmalı — 1-2 hafta SRE saati. Coolify, Dokploy, Caprover open source platformları preview deploy’u %70 otomatize eder.
| Pipeline kalemi | Vercel | AWS self-host | Hetzner + Coolify | Cloudflare Pages |
|---|---|---|---|---|
| Build trigger | git push otomatik | GH Actions yaml | git push (Coolify webhook) | git push otomatik |
| Preview URL/PR | Built-in | Custom (ALB + DNS) | Coolify Pro $19/ay | Built-in |
| Build cache | Otomatik | CodeBuild S3 cache | Docker layer cache | Otomatik |
| Rollback süresi | ~10 saniye | 2-5 dk (image swap) | 1-3 dk | ~15 saniye |
| Secret yönetimi | Dashboard | SSM/Secrets Manager | Coolify ENV | Dashboard |
| Build ortalama süre (orta proje) | 2-4 dk | 4-8 dk | 3-6 dk | 2-4 dk |
Rollback hızı production incident response’un kritik metriklerindendir. Vercel’in “Promote previous deployment” butonu 10 saniyede yeniden routing yapar — Pazartesi 09:00 deploy’unda hata çıkıp panik moduna girmemenin garantisidir. Self-host’ta blue-green veya canary release pattern’i ile benzer rollback hızı elde edilir ama setup gerektirir. TDD pratik ve yan etkiler ROI hesabında olduğu gibi pipeline’a yatırım yapan ekipler ilk 6 ayda %30-50 daha az incident yaşar.
Karar Çerçevesi: Ekibinize Uygun Yol Hangisi?
Platform seçimi tek metriğe (fiyat, performans, kontrol) indirgenemez. Karar matrisinde dört eksen: ekip kapasitesi, trafik profili, geliştirme hızı önceliği, TCO ufku. Aşağıdaki matris 2026’da en sık senaryolarda yönlendirir.
| Senaryo | Öneri | Beklenen aylık (orta yük) | Risk |
|---|---|---|---|
| Erken aşama startup, MVP, <20k MAU | Vercel Hobby → Pro | $0-50 | Düşük |
| Scale-up, 20-200k MAU, küçük ekip | Vercel Pro | $200-1500 | Düşük |
| 200k+ MAU, SRE’li ekip | AWS Fargate veya Vercel Enterprise | $500-3000 | Orta |
| Yerel pazar (TR only), bütçe baskısı | Hetzner + Cloudflare | $15-80 | Orta-Yüksek |
| Global edge gerek, edge logic ağır | Cloudflare Pages + Workers | $10-300 | Orta (parity gap) |
| Enterprise compliance (KVKK, SOC2) | AWS/Azure region-locked | $1000-8000 | Yüksek setup |
| Headless e-ticaret, 1M+ ürün | Vercel Enterprise + ISR + Edge Config | $3000-15000 | Orta |
Tipik hata: 3-4 mühendis ölçeğindeki ekibin “ileride büyürüz” diye self-host AWS kurulumuna girip 4-6 hafta ürün süresi kaybetmesi. Ömer Önal danışmanlığında gördüğümüz vakaların %70’inde ilk 18 ay Vercel + 200k+ MAU’da migrate yolu toplam maliyette daha avantajlıdır. Migration Next.js 15 standalone sayesinde 1-2 hafta SRE saatidir; erken self-host kararının opportunity cost’u ay başına 80-160 mühendislik saatidir.

Migration: Vercel’den AWS’ye veya Tam Tersi Geçiş Stratejisi
Platform değişimi 3 fazda yapılır: parallel run (her iki ortam canlı, DNS %10 split), cutover (DNS %100 yeni), cleanup (eski ortam 30 gün sonra kapat). Next.js 15 standalone çıktı platform agnostik olduğu için kod değişikliği genelde sıfır — ENV mapping, cache handler config, image domain whitelist, middleware adapter değişir.
| Geçiş kalemi | Tipik süre | Risk | Tavsiye |
|---|---|---|---|
| Standalone build hazırlama | 1-2 gün | Düşük | output: ‘standalone’ next.config’e ekle |
| Cache handler entegrasyon | 3-5 gün | Orta | @neshca/cache-handler Redis |
| Image domain config | 0.5 gün | Düşük | remotePatterns whitelist |
| Middleware port | 1-3 gün | Orta | Edge → Node downgrade test |
| Analytics/monitoring | 2-4 gün | Orta | OpenTelemetry standart |
| Preview deploy pipeline | 5-10 gün | Yüksek | Coolify veya GH Actions matrix |
| DNS cutover | 0.5 gün | Düşük | TTL 60s + rollback plan |
Geçişte en sık atlanan kalem preview deploy pipeline‘dır. Vercel’in PR başına URL üretmesi geliştirici akışına derin işlemiş özelliktir; kaybetmek günlük velositeyi düşürür. Self-host’a geçerken preview URL akışı kurulmalı (Coolify Pro $19/ay veya custom GH Actions).
Güvenlik, Compliance ve Veri Yerelliği
2026’da KVKK, GDPR, SOC2 Type II compliance gerektiren projelerde platform seçimi compliance posture’una doğrudan etki eder. Vercel SOC2 Type II ve HIPAA’yı Enterprise plan altında verir; region locking (EU veya US) Enterprise dahilindedir. Pro plan’da fonksiyonlar global dağıtıktır — KVKK Türkiye veri yerelliği şartı taşıyan finans projelerinde sorundur.
AWS, GCP, Azure self-host yollarında region locking native — eu-central-1, eu-west-1, me-south-1 gibi region’larda lock edebilirsiniz. ENISA 2024 raporuna göre Avrupa kurumsal cloud kullanıcılarının %78’i region pinning’i zorunluluk olarak tanımlıyor. Hetzner Finlandiya ve Almanya DC’leriyle KVKK + GDPR uyumlu, fiyat avantajlı seçenektir.
- SOC2 Type II: Vercel Enterprise, AWS (kendi audit), GCP, Azure — hepsi mevcut.
- HIPAA: Vercel Enterprise (BAA), AWS BAA, GCP HIPAA — Pro ve community tier’larda yok.
- KVKK veri yerelliği: AWS Frankfurt, Azure Türkiye region (sınırlı servis), Hetzner Almanya — Vercel Pro değil.
- DDoS: Cloudflare native (ücretsiz), Vercel native, AWS Shield Standard ücretsiz/Advanced ücretli.
- WAF: Cloudflare WAF ($20/ay Pro), AWS WAF ($5+rules), Vercel Firewall (Pro dahil basic).
Türkiye merkezli KVKK kritik projelerde Vercel Pro doğrudan elenmeli; Enterprise ile region pin yapılır ama $50k-150k yıllık kontrat eşiği gelir. Bütçe sınırlıysa AWS Frankfurt + CloudFront veya Hetzner Almanya pratiktir.
Sıkça Sorulan Sorular (SSS)
Next.js 15 production için Vercel’siz tam feature parity mümkün mü?
Tam parity (%100) Vercel dışında garanti edilmez çünkü PPR streaming, ISR tag invalidate cluster, edge config gibi bazı özellikler Vercel runtime’ına optimize edildi. AWS Fargate %95, Cloudflare Pages OpenNext.js adapter ile %85-90 parity’ye ulaşır. Geliştirme yaparken Vercel-spesifik API’lerden (Edge Config, Analytics) kaçınırsanız self-host’a geçiş kod değişikliği gerektirmez.
Vercel faturası kontrolden çıkarsa ne yapmalı?
İlk müdahale: bandwidth heavy endpoint’leri Cloudflare proxy ile cache’e almak (Vercel önüne CF koymak); ikinci adım: ISR revalidate süresini artırmak, gereksiz SSR’ı statik üretime almak; üçüncü adım: image optimization’ı Cloudflare Images’a taşımak; dördüncü adım: Enterprise pazarlığa girip volume discount almak. Yıllık $30k+ harcama görünüyorsa AWS/Cloudflare migration ROI hesabı yapın.
Cloudflare Pages Next.js 15 SSR’ı tamamen destekliyor mu?
OpenNext.js Cloudflare adapter (cloudflare/next-on-pages) 2025 boyunca olgunlaştı ve SSR, ISR, edge middleware, Server Actions destekliyor. Eksik kalan: Node.js-only API’ler (fs, native binary, uzun timeout). Image optimization Cloudflare Images servisine yönlendirilmeli. Fiyat avantajı çok yüksek (Workers Paid $5/ay 10M istek), bandwidth ücretsiz — düşük bütçeli Next.js projelerin yeni default’u olmaya aday.
Self-host kurulumda hangi monitoring stack önerilir?
Open source tercih için: Grafana + Prometheus (metrics), Loki (logs), Tempo (traces), OpenTelemetry SDK Next.js’e entegre. Hetzner küçük kurulumda Coolify built-in monitoring + Uptime Kuma yeterli. Managed alternatif: Datadog (pahalı), Better Stack, Axiom (Vercel ile entegre), Sentry (error tracking standardı). Production’da minimum: uptime monitor + error tracking + log aggregation üçlüsü olmazsa olmaz.
Next.js 15 standalone output ne işe yarar?
output: 'standalone' next.config.js opsiyonu, Next.js’in tüm gerekli node_modules’ü tek klasöre (.next/standalone) kopyalayan minimal bir runtime üretir. Docker image boyutu %70-85 düşer (1.2 GB → 180 MB), container start süresi 2-3x hızlanır. Self-host Docker deploy yapan herkesin açması gereken default opsiyondur. Vercel internal’da zaten benzer bir paketleme yapar; dışarı çıkmak istediğinizde standalone build sizi platforma agnostik kılar.
Sonuç
Next.js 15 production deploy seçimi 2026’da bir spektrumdur: Vercel’in sıfır SRE yükü ve DX’i bir uçta, Hetzner’in 10-30x birim maliyet avantajı diğer uçta. Doğru cevap projenin yaşam evresi, ekibin SRE kapasitesi, trafik coğrafyası ve compliance kısıtlarıyla belirlenir. Erken aşama ürünlerin %85’i için Vercel Pro 18-24 ay toplam maliyette rakipsizdir; 200k+ MAU’da self-host migration 1-2 hafta mekanik iştir.
Karar netleşmediğinde iki test: (1) Aylık Vercel faturası $500’ü geçiyor mu? (2) Ekipte tam zamanlı SRE/DevOps var mı? İki cevap “evet” ise self-host fizibildir; biri “hayır” ise Vercel veya managed Cloud Run/Fargate kalıcıdır. Migration’ı acele etmek erken optimizasyondur.
Projenizin trafik profili, compliance gereksinimi ve ekip yapısı özelinde Next.js 15 platform seçimi için iletişim sayfası üzerinden danışmanlık talebi iletebilirsiniz; 48 saat içinde somut karar matrisi ile dönüş yapılır.










Ömer ÖNAL
Mayıs 16, 2026Yazılım geliştirme projelerinde sıkça gözlemlediğim: kod kalitesi metrikleri (cyclomatic complexity, test coverage) baseline’ı belirlenmeden refactoring kararı veriliyor. Bu yaklaşım %40’ı aşan rework oranıyla sonuçlanıyor. Static analysis araçlarını CI pipeline’a entegre etmek ilk adım. Yorumlarınız?