Yanlış frontend framework’ünü seçerseniz sonraki üç yıl boyunca her sprint’te bunu hissedersiniz. Doğrusunu seçerseniz tartışmaların çoğu ortadan kalkar. Bu yazı, 2025’te seçim yapan ekipler için React, Vue, Angular — ve Svelte, Solid, Astro — üzerine görüş bildiren bir analiz.
Genel manzara
“Framework savaşları” bitti. React hacim oyununu yıllar önce kazandı: npm haftalık indirme sayısı 25 milyonun üzerinde ve iş ilanlarının çoğu hâlâ ismen React istiyor. Ama “kazandı” “en iyi varsayılan” anlamına gelmiyor. State of JS 2024 anketi React için memnuniyetin düştüğünü, Svelte ve Solid için yükseldiğini gösteriyor. Vue ise Asya ve Avrupa’da sessiz sedasız en yüksek retention skorlarını tutuyor.
Memnuniyet anketlerinden daha önemli iki yapısal değişim var:
- Signals, Virtual DOM’u yiyor. Solid, Vue 3, Svelte 5, Angular 17+, Qwik ve hatta Preact ince taneli reaktiviteye geçti. React tek istisna.
- Server geri döndü. React Server Components, Nuxt server components, Astro server islands ve SvelteKit form actions render’ı edge’e itiyor. Artık önemli olan tek şey tarayıcı bundle’ı değil.
Bugün seçim yapıyorsanız sadece bir framework değil, bir render modeli seçiyorsunuz.
React: artık aşikâr olmayan varsayılan
React’in gücü her zaman ekosistemdi. Date picker, form kütüphanesi, chart aracı, 3D renderer mı lazım? Her biri için beş olgun seçenek var. İşe alım? Bir hafta içinde 200 başvuru alırsınız.
Bedeli fragmentasyon. “React kullan” bir mimari değildir. Next.js mi Remix (artık React Router 7) mi Vite + TanStack mı; Zustand mı Redux Toolkit mi Jotai mi; TanStack Query mi SWR mi RSC fetching mi — hepsine karar vermelisiniz. Her yeni mühendis konuya dair güçlü görüşlerle gelir.
// React 19, bir Server Component ile
async function ProductList() {
const products = await db.products.findMany();
return (
<ul>
{products.map(p => <li key={p.id}>{p.name}</li>)}
</ul>
);
}
React 19 Actions, use() ve gerçek bir compiler getirdi. Compiler son yıllardaki en önemli değişiklik — useMemo ve useCallback yazma sebeplerinin çoğunu ortadan kaldırıyor. Zaten React’teyseniz, güncelleyin. Değilseniz, bir sonraki bölüm sizin için önemli.
2026’da sıfırdan başlıyorsanız React Server Components muhtemelen yanlış varsayılan. Vercel boyutunda altyapı ekibi olan içerik ağırlıklı uygulamalar için gerçek sorunlar çözüyorlar. 4 kişilik bir ürün ekibi için zihinsel maliyet nadiren değer.
Vue: aklı başında orta yol
Vue 3’ün Composition API’si React Hooks’un olmak istediği şey: dependency-array tuzakları olmayan reaktif primitive’ler. Single-file component’ler template, logic ve stilleri JSX cambazlığı olmadan bir arada tutuyor.
<script setup>
import { ref, computed } from 'vue';
const count = ref(0);
const doubled = computed(() => count.value * 2);
</script>
<template>
<button @click="count++">Sayı {{ count }}, iki katı {{ doubled }}</button>
</template>
Nuxt 3 gerçekten mükemmel — dosya tabanlı routing, server route’ları, hybrid rendering ve Next’inkinden daha küçük ama daha küratörlü bir modül ekosistemi. Pinia, Vuex’in yerini aldı ve büyük framework’ler arasındaki en keyifli state kütüphanesi.
Dürüst tarafı: büyük teknoloji merkezleri dışında işe alım daha zor. İstanbul’da Vue geliştiricisi bulabilirsiniz ama havuz React havuzunun yaklaşık beşte biri. Kadro büyütmektense ürün gönderme önceliğindeki küçük ekipler için bu takas sorun değil. Hızla işe alım planlıyorsanız hesaba katın.
Angular: tasarımı gereği enterprise
Angular insanların küçümseyip sonra bankada, havayolunda ve devlet portalında sessizce kullandığı framework. Angular 17 Signals’ı, yeni control-flow syntax’ını (@if, @for) ve standalone component’leri getirdi — sonuç 2016 kalıntısı değil, modern bir framework gibi.
@Component({
selector: 'product-list',
standalone: true,
template: `
@for (p of products(); track p.id) {
<li>{{ p.name }}</li>
}
`,
})
export class ProductListComponent {
products = signal<Product[]>([]);
}
Angular opinionated, her şey dahil (router, forms, HTTP, i18n, test) ve TypeScript-first. Öğrenme eğrisi gerçek — RxJS, dependency injection, modules vs standalone, change detection strategies — ama karşılığında büyük ekiplerin tek bir yapma biçiminde buluşması var. 20+ mühendisin üstünde gerçekten değerli.
MVP yapan 2 kişilik ekip için yanlış seçim. 5 yıllık codebase’i koruyan 50 kişilik ekip için çoğu zaman doğru seçim.
Svelte: en küçük bundle, en az kavram
Svelte derlenip ortadan kalkıyor. Virtual DOM yok, tarayıcıya yüklenen runtime framework yok — sadece component’inizin gerçekten ihtiyacı olan cerrahi DOM güncellemeleri. Bundle’lar React eşdeğerinden rutin olarak 3-5 kat küçük geliyor.
<script>
let count = $state(0);
let doubled = $derived(count * 2);
</script>
<button onclick={() => count++}>
Sayı {count}, iki katı {doubled}
</button>
Svelte 5’in rune’ları ($state, $derived, $effect) ince taneli reaktivitede Solid ve Vue ile aradaki farkı kapattı. SvelteKit ise framework tarafı — dosya tabanlı routing, server actions, her hosting hedefi için adapter. Çıktı boyutunu önemseyen solo geliştiriciler ve küçük ekipler için varsayılan önerimiz.
Solid: React’in API’si, doğru yapılmış
Solid React’e benziyor, Svelte gibi çalışıyor. Aynı JSX, aynı component modeli — ama component’ler bir kez çalışıyor ve reaktivite signals üzerinden oluyor. Re-render yok, dependency array yok, memo sarmalama yok.
function Counter() {
const [count, setCount] = createSignal(0);
return <button onClick={() => setCount(count() + 1)}>
{count()}
</button>;
}
krausest JS Framework Benchmark’ında sürekli zirvede ve ekosistem (SolidStart, Solid Router) hızla yetişiyor. Risk: topluluk büyüklüğü. Solid hacim yerine kalite üzerine bir bahis. Stack Overflow olmadan debug yapabilen kıdemli ekipleriniz varsa kullanın.
Astro: içerik için doğru cevap
Pazarlama sitesi, blog, doküman portalı veya içerik öncelikli bir e-ticaret frontend’i yapıyorsanız — Next.js’e uzanmayı bırakın. Astro varsayılan olarak sıfır JavaScript gönderir ve React, Vue, Svelte veya Solid island’larını sadece gerektiği yerde serpiştirmenize izin verir.
IWWOMI’nin kendi sitesi için Astro kullanıyoruz. Lighthouse skorları zahmetsizce yeşil kalıyor ve editörler bir component dosyasına dokunmadan Markdown yazabiliyor. İçerik ağırlıklı frontend’ler hakkında daha fazlası için e-ticaretin geleceği yazımıza bakın.
Pratikte nasıl karşılaştırılıyorlar
| Framework | Bundle (hello world) | Öğrenme eğrisi | Ekosistem | TR iş piyasası | En uygun olduğu yer |
|---|---|---|---|---|---|
| React | ~45 KB | Orta | Devasa | En büyük | Ürün ekipleri için varsayılan |
| Vue | ~34 KB | Kolay | Büyük | Orta | Küçük ekipler, içerik + uygulama melezi |
| Angular | ~130 KB | Dik | Enterprise | İstikrarlı (banka, telekom) | 20+ mühendis, regüle sektörler |
| Svelte | ~10 KB | Kolay | Büyüyor | Küçük ama yükselen | Solo geliştiriciler, performans kritik |
| Solid | ~8 KB | Orta | Küçük | Niş | Kıdemli ekipler, perf odaklı |
| Astro | ~0 KB JS | Kolay | Orta | Niş | İçerik siteleri, pazarlama, docs |
Sayılar minimal bir uygulama için yaklaşık gzip boyutları ve bundler’ınıza göre değişir.
Performans: tartışmayı bırakın
Bu listedeki her framework 95+ Lighthouse skoru tutturabilir. Gerçek Core Web Vitals sorunları neredeyse hiç framework seçiminden gelmez — optimize edilmemiş görsellerden, blocking üçüncü taraf script’lerden ve şişmiş client bundle’larından gelir. krausest benchmark okuması eğlencelidir ama keyed-update zamanındaki %20’lik fark, 600 KB’lık bir analytics SDK’sı gönderirseniz TTI’nizi kurtarmaz.
Performans gerçekten varoluşsalsa — ad tech, gömülü widget’lar, gelişen pazarlarda low-end mobil — Svelte veya Solid savunulabilir. Aksi takdirde önce stack’in geri kalanını optimize edin. Bulut göç rehberimiz framework’ünüzden çok daha fazla fark yaratan hosting ve CDN seçimlerini ele alıyor.
2025’te Türkiye’de işe alım gerçeği
İstanbul ve Türkiye genelinde:
- React geliştiricileri en bulunabilir — ve en commodity fiyatlı. Kalite çok değişken. Güçlü bir teknik mülakat planlayın.
- Vue tatlı bir nokta. Daha küçük havuz, ama adaylar genelde daha kıdemli çünkü Vue dokümantasyon okuyan insanları seçiyor.
- Angular geliştiricileri banka, telekom ve danışmanlık şirketlerinde yoğunlaşmış. Daha yüksek maaş ve uzun ihbar süreleri beklenir.
- Svelte / Solid işe alımı bir tutku pazarı. İlan verip 50 başvuru almazsınız ama başvuranlar genelde mükemmel olur.
Ekip büyüklüğüne göre rehberlik
- Solo geliştirici veya 2-3 kişilik ekip: SvelteKit veya Nuxt. Minimum config, maksimum hız istiyorsunuz.
- Küçük startup (4-15): Next.js veya Remix/React Router 7 ile React. Ekosistem ve işe alım avantajı fragmentasyonu telafi ediyor.
- Orta ölçekli ürün ekibi (15-30): Aynı React stack’i, ama erken bir design system’e ve lint kurallarına yatırım yapın. Ekibinizin Vue kas hafızası varsa Vue + Nuxt güçlü bir alternatif.
- Enterprise (30+ veya regüle sektör): Angular ya da codegen ve lint ile sıkı konvansiyonlar uygulanan Next.js. Hedef seçenek eklemek değil, seçenekleri kaldırmak.
Mobil ve güvenlik
Web ile mantık paylaşan bir mobil uygulama gerekiyorsa React’in çekim kuvveti çok güçlü hale gelir — React Native hâlâ en yaşayabilir cross-platform seçeneği ve Expo bunu gerçekten keyifli hale getiriyor. Bunu mobil uygulamaların gücü yazımızda ele aldık.
Ne seçerseniz seçin, framework’ünüz sizin güvenlik sınırınız değildir. CSP header’ları, dependency audit’leri ve auth flow’ları render stratejinizden daha önemli. Bunu güvenli web uygulamaları yazısında anlattık.
Seçim için yardım mı lazım?
Evrensel olarak doğru bir cevap yok — ama ekibinize, codebase’inize ve yol haritanıza özgü genelde belirgin biçimde daha iyi bir cevap vardır. IWWOMI’de Türkiye ve AB’deki ekipler için frontend audit ve framework göçleri yapıyoruz. Seçenekler arasında kaldıysanız ya da üç yıl önce kimsenin hatırlamadığı sebeplerle seçilmiş bir stack’in ağırlığını hissediyorsanız bize ulaşın. Bir ay içinde satış sunumu değil, bir hafta içinde net bir cevap veririz.