GörenLabs
MühendislikAraçlarSüreç

İnşa Ettiğim Teknoloji Yığını

Her GörenLabs projesinin arkasındaki araçlara ve teknolojilere bir bakış — neden onları seçtiğim ve nasıl birlikte çalıştıkları.

Kaan Gören

Kaan Gören

Kurucu & Mühendis

İnsanlar bana hangi teknolojileri kullandığımı soruyor. Dürüst cevap şu: yığının kendisi, arkasındaki gerekçe kadar önemli değil. Yine de araçlar işi şekillendiriyor, o yüzden neye uzandığımı ve nedenini anlatayım.

Nuxt ve Vue

Her proje Nuxt ile başlar. Bana sunucu tarafında render, dosya tabanlı yönlendirme ve bir açılış sayfasından tam kapsamlı bir uygulamaya kadar ölçeklenen bir bileşen modeli sunuyor. Altındaki Vue temiz ve öngörülebilir — framework'le hiç boğuşmuyorum.

Nuxt, eskiden ayrı araçlar gerektiren işleri de üstleniyor: SEO meta verileri, görsel optimizasyonu, içerik yönetimi, çoklu dil desteği. Modül ekosistemi o kadar güçlü ki altyapıyı sıfırdan kurmam neredeyse hiç gerekmiyor.

TypeScript

Her şeyi tipliyorum. Sebep konfigürasyondan keyif almam değil; TypeScript, gecenin üçünde fark edeceğim hataları daha baştan yakalıyor. Ayrıca kodu kendini belgeler hâle getiriyor: aylar sonra bir projeye döndüğümde, tipler bana ilk niyetin ne olduğunu anlatıyor.

Tailwind CSS

Stil için Tailwind kullanıyorum. Tasarım sistemini markup içinde görünür tutuyor ve tasarım niyetiyle uygulama arasında sapma oluşmasını engelliyor. Her boşluk değeri, renk ve yazı boyutu ortak bir yapılandırmada yaşadığında, tutarlılık ummaya değil, kendiliğinden gerçekleşen bir şeye dönüşüyor.

Hassas animasyon kontrolü ya da karmaşık bir yerleşim gerektiğinde özel CSS hâlâ devreye giriyor. Ama temel her zaman Tailwind.

GSAP

Hareket konusunda standardım GSAP. ScrollTrigger, kaydırmaya bağlı görünme efektlerini yönetiyor; timeline API'si ise sıralı animasyonlarda kare düzeyinde kontrol sağlıyor. Ekranda onlarca animasyonlu öğe olsa bile performans düşmüyor.

Hareketi süslemek için değil, yapıyı netleştirmek için kullanıyorum. Zamanlaması doğru bir giriş animasyonu kullanıcıya nereye bakması gerektiğini gösterir. Yumuşak bir geçiş, mekânsal yönelimi korur. Amaçsız animasyon dikkat dağıtmaktan başka bir işe yaramaz.

Convex

Bir proje backend gerektirdiğinde Convex'e yöneliyorum. Bana tek bir platformda reaktif bir veritabanı, sunucu fonksiyonları, kimlik doğrulama ve dosya depolama sunuyor. Veri modeli TypeScript-native olduğu için tipler veritabanından bileşene kadar herhangi bir çeviri katmanına takılmadan akıyor.

Convex'i farklı kılan şey, varsayılan olarak gerçek zamanlı çalışması: altta yatan veri değiştiğinde sorgular kendini otomatik günceller. Bu da state management sorunlarının koca bir kategorisini ortadan kaldırıp istemci tarafını sade tutuyor.

Bun

Bun, benim için Node'un yerini aldı: daha hızlı kurulum, daha hızlı script çalıştırma, daha hızlı dev sunucu başlangıcı. Fark her projede, her gün hissediliyor — üstelik kod tabanında hiçbir değişiklik yapmadan aynı JavaScript ve TypeScript'i çalıştırıyor.

Dağıtım

Kendi yürüttüğüm projelerde, kendi altyapımda Coolify üzerinden dağıtım yapıyorum. Bana Docker tabanlı dağıtımları sade bir arayüzle, otomatik SSL ile ve ortam üzerinde tam kontrolle sunuyor. Main'e push atıyorum, Coolify derleyip yayınlıyor. Ne tedarikçiye bağımlılık var, ne sürpriz fatura.

Müşteri projelerinde dağıtım hedefi onların ihtiyacına göre değişiyor. Ama ilke aynı kalıyor: sade pipeline'lar, elle yapılan adım yok, dağıtım kaygısı yok.

Bu kombinasyonun nedeni

Bu araçların ortak bir özelliği var: yolun üstünde durmuyorlar. Her biri belirli bir sorunu iyi çözüyor, bu sırada yeni sorunlar yaratmıyor. Bir yığın seçerken önem taşıyan tek ölçüt bu.

Sonuçta zamanımı araçlarla değil, ürünle geçirdiğim bir iş akışı ortaya çıkıyor. Bir müşteri nihai sonucu gördüğünde, arkasındaki karmaşıklığı değil, deneyimdeki ustalığı hissetmeli.

Şu anda yeni projelere açığım

Aklınızda bir proje mi var?

Ne inşa ettiğinizi ve mevcut dijital varlığınızın nerede eksik kaldığını anlatın. Bir iş günü içinde dürüst bir değerlendirme ve net bir sonraki adım alırsınız.

Proje başlat