HepYeni’nin Medya Akışını Yeniden Tasarlamak
Son birkaç gün HepYeni (ortak medya çevreleri uygulaması) üzerinde büyük bir sprint ile geçti. Temel arayüz estetiğinden sunucu tarafı gizlilik kurallarına ve Büyük Dil Modeli (LLM) entegrasyonuna kadar her şeyi ele aldık.
1. Çift Tipografi ve Hibrit Tokenlar
Arayüzü hibrit mimari tokenlar kullanarak tamamen yeniden tasarladık. En büyük görsel değişim mi? Çift tipografi yaklaşımımız için EB Garamond’u benimseyerek, okuma ve medya arayüzüne editoryal, dokunsal bir his kazandırdık. Sıradan SaaS görünümünden kurtulup yüksek kontrastlı estetiğe ağırlık verdik.
2. Medya Yaşam Döngüsü
Grup medyaları için katı bir 3 bölümlü yaşam döngüsü tanıttık:
- Sıradaki (Oylama ve Öneriler)
- Devam Eden (Şu anda okunan/izlenen)
- Biten (Arşivlenmiş ve incelenmiş)
Bu yapı, ortak medya öğelerini yönetmenin bilişsel yükünü anında çözdü. Sağlam durum geçişleri sağlamak için bunu veritabanı şema güncellemeleri ve 487’den fazla başarılı TDD testi ile destekledik.
3. YZ “Metinden Çıkar” İçe Aktarıcısı
Veri içe aktarmak her zaman zahmetlidir. Kullanıcıların yapılandırılmamış bir metin yığınını doğrudan yapıştırmasına olanak tanıyan, ortam değişkeniyle korunan bir YZ içe aktarıcısı oluşturduk.
// İş akışı:
// 1. YZ ham başlıkları çıkarır
// 2. Bunları kanonik sağlayıcılarla (Google Books, TMDB, vb.) eşleştiririz
// 3. Kullanıcı doğrular ve doğrudan bir rafa veya gruba ekler.
YZ çıktıları temelde güvenilmez olduğundan, katı bir doğrulama boru hattı (pipeline) inşa ettik. Birden fazla çalışma ağacı (worktree) kullanan yoğun bir paralel inceleme döngüsünün ardından, içe aktarıcıyı kalıcı YZ kotaları, sağlayıcı doğrulaması ve katı gizlilik onayları ile güçlendirdik.
Güvenlik ve Mimari Değişmezler
Özellikler harikadır, ancak değişmezler (invariants) gemiyi su üstünde tutar. Çeşitli kod, performans ve güvenlik düzeltmeleri uyguladık:
- İnceleme metni görünürlüğü için sunucu tarafı erişim kontrollerini zorunlu kıldık.
- Gereksiz veritabanı sorgularını önlemek için oturum ve erişim kontrollerini üst katmanlara taşıdık (hoisting).
- Kod içine gömülü İngilizce/Türkçe arayüz metinlerini katı tipli bir
Translationssözlüğüne taşıyarak %100 i18n eşitliğini koruduk.
Next.js Turbopack "use server" sınırlarımızı bun test && bun x tsc --noEmit && bun next build ile doğrulayarak tüm değişiklikleri kanıtladık.
Exit 0. Temiz dağıtım.