- Frontend’i 2008 civarında bırakmış geliştiricilere, son 20 yıldaki değişimleri açıklayan bir yazı
- Genel tez şu: Her araç gerçek bir sorunun (yaranın) üzerinde oluşmuş bir yara dokusu; her katmandaki çözüm, bir sonraki katmanın sorununu yaratarak üst üste birikti
- Yazı boyunca tek bir
<button>örnek alınarak, her dönemde düğmenin nasıl değiştiği izleniyor
- Katman I — jQuery (2006–2010)
- Tüm sayfayı yenilemeden yalnızca bir bölümünü değiştirme ihtiyacından doğdu
- jQuery tarayıcılar arası farkları ortadan kaldırıp AJAX’ı yaygınlaştırdı; ancak verinin hem JS değişkenlerinde hem de ekranda bulunması, geliştiricinin bunları elle senkronize etmesi sorununu doğurdu
- Bu elle DOM manipülasyonu, sonraki tüm katmanların çözmeye çalıştığı “ilk günah”tır
- Katman II — Framework’ler (2010–2015)
- Deklaratif UI: Ekranı güncelleme prosedürü yerine, veriye göre ekranın nasıl görüneceği tarif edilir; güncellemeyi framework halleder
- React, component + JSX + Virtual DOM ile döneme yön verdi; Vue/Angular/Svelte/Solid onu izledi
- Bugün tüm framework’ler, bağımlılık ilişkilerini izleyip yalnızca gerekli yerleri güncelleyen signal kavramına doğru yakınsıyor
- htmx, Alpine.js, Hotwire gibi sunucudan HTML gönderen yaklaşıma geri dönen bir kanat da var
- Katman III — Build (2012–2018)
- JS’te modül sistemi olmadığı için CommonJS ve ES Modules rekabet etti; eski tarayıcı uyumluluğu için Babel transpile ve webpack bundling gerekli hale geldi
- Build süreci minify, tree-shaking, code splitting ve source map üretimini içerir
- Bunun bedeli olarak node_modules ortaya çıktı; boş bir starter proje bile yaklaşık 250 bin dosya kurar
- Katman IV — Tooling Yarışı (2018–2024)
- Yavaş build’ler ve karmaşık webpack yapılandırması sorunlarının Go/Rust ile yeniden yazılarak çözüldüğü dönem
- esbuild (Go), bundling’i 10–100 kat hızlandırdı; SWC (Rust) Babel’in yerini aldı
- Vite varsayılan araç haline geldi; production bundler Rust tabanlı Rolldown ile değiştiriliyor ve ilgili stack VoidZero (yakın zamanda Cloudflare tarafından satın alındı) altında birleşiyor
- Paket yöneticileri de pnpm, Bun gibi araçlarla aynı akımı izliyor
- Katman V — Sunucu Tarafı Rendering’in Dönüşü (2014–2026)
- SPA’larda sunucu yalnızca boş bir div gönderdiği için ilk yüklemede boş ekran görünmesi ve arama motorlarının da boş sayfa görmesi sorunu vardı
- Çözüm, HTML’i yeniden sunucuda render etmekti; bu da 2008’deki yaklaşıma geri dönüş anlamına gelir
- SSR (her istekte render), SSG (build sırasında önceden render), ISR (otomatik güncellenen SSG) ortaya çıktı; Next.js, Astro, SvelteKit, Nuxt gibi meta-framework’ler bunu üstleniyor
- Sunucu HTML’ini tarayıcıda yeniden canlandırmanın hydration maliyeti yeni bir sorun oldu; Islands (Astro), Resumability (Qwik) ve React Server Components, hydration’ı azaltan yaklaşımlar olarak ortaya çıktı
- Katman VI — Mühendislik Araçları (2015–2026)
- TypeScript, tip sistemiyle refactoring güvenliğini sağladı ve fiili standart haline geldi
- Tailwind utility class yaklaşımıyla styling’e yön verirken, native CSS de nesting, değişkenler, container query gibi özelliklerle gelişti ve mevcut tooling’e duyulan ihtiyaç azaldı
- shadcn/ui, component’leri kurmak yerine kaynak kodunu kopyalayıp sahiplenme yaklaşımını yerleştirdi; TanStack Query, Zustand, Zod, Vitest, Playwright ise 2026 uygulamalarının temel sözlüğünü oluşturuyor
- Katman VII — Dağıtım (2015–2026)
- FTP ile yükleme yerine Git deposunu Vercel/Netlify/Cloudflare’e bağlayınca her push’ta otomatik build ve dağıtım yapılır, her PR için canlı preview URL’i oluşturulur
- Serverless function ve edge (kodun kullanıcıya yakın yüzlerce veri merkezinde çalışması) kavramları yerleşti
- Katman VIII — Yapay Zeka (2023–2026)
- v0, Lovable, Bolt’a doğal dille açıklayınca çalışan frontend üretiliyor; Cursor, Claude Code, Copilot kodu sizin yerinize yazıyor
- Backend/sistem mühendisleri de bir gün içinde frontend yapabilir hale geldi; mühendislik alanları arasındaki sınırlar bulanıklaştı
- Ancak üretilen kod, yukarıdaki 8 katmanın bilgisini varsayıyor; bu boşluğu kapatmak yazının amacı
- Bedrock — Sonuç
- 2026’da en ön cephedeki yönelim, HTML’i sunucuda render etmek, neredeyse hiç JS göndermemek ve web platformundan yararlanmak
- Sektörün 20 yıl boyunca büyük bir daire çizdikten sonra, FTP ile yüklenen dosyalara benzeyen bir noktaya geri döndüğü sonucuna varılıyor
4 yorum
Gerçekten baş döndürücü...
Daha dün Node.js 0.8 sürümünü kullanıyormuşum gibi geliyor...
Frontend dağıtımları da çoğunlukla container üzerinde nginx odaklı değil mi...
Keyifle okudum haha