65 kayıt, girişime göre gruplanmış — her satır gerçek bir tarih, gerçek bir ilerleme notu.
35
Payda
35 kayıt
Kayıt 65Profil ve sosyal takipPayda
Esnaf modu gitti, kişisel panel geldi
Bugün Payda'yı sadeleştirdim: esnaf modunu ve ona bağlı tahsilat, veresiye, üyelik, e-ticaret gibi yan sistemleri önce yedekleyip sildim, yalnız yüzdelik sistem kaldı. Ardından herkesin kendi adını ve fotoğrafını her projede aynı gösterebildiği bir Profilim alanı ekledim. Üstüne YouTube, Instagram, TikTok, Threads ve X için günden güne takip kurdum; artık tek satırda 'bugün toplam kaç beğeni, kaç yorum aldın' görünüyor. Hepsi yine tek Claude üyeliğiyle, testleri yeşil geçerek canlıya çıktı.
Kayıt 64kopilotPayda
Kopilot tek akışa indi, sami skill denetiminden geçti
Kopilot sayfası iki paralel akış taşıyordu; tek kutu, tek gönder tuşu, tek sonuç kartına indirdim ve 12 uzman modlu denetimin bulduğu 20'den fazla açığı (idem anahtarı, metin kaybı, kaydırma, balon-kasa örtüşmesi, uzun sohbette hükmün kaçması) dört turda kapattım. Her tur 13 kapı ve tarayıcı testinden geçti, canlıya çıktı. Hepsi tek Claude Pro üyeliğiyle, kanıtsız tek satır iddia yok.
Kayıt 63Müşteri kartı akışıPayda
Numaranın yanına tutar, kartın üstüne 'Şimdi ne oldu?', sohbetten fiyat listesi ve banka kendiliğinden doluyor
Sami'nin üç isteğini tek akışa bağladım: ayrı 'Gelir ekle' tuşu kalktı, müşteri numarasının yanında tutar var; müşteri bulununca kartın en üstünde 'Şimdi ne oldu?' — satış olduysa geliri kaydet, olmadıysa almadı notu — önceki kayıtlar altta. En keyiflisi: yapıştırılan sohbette hangi hazır metin (fiyat listesi, IBAN) geçiyorsa fiyat listesi ve banka alanı kendiliğinden doluyor, yapay zekâ çağrısı yok, ücretsiz. Kural gevşemedi: eşleşme yoksa soru yine sorulur, elle seçim ezilmez. 16 yeni test, 320px'te taşma sıfır, hepsi Claude ile.
Kayıt 62Claude Design yenilemesiPayda
Tasarımı canlıya birebir taşıdım: sol menü, tek sütun Özet, Ayarlar grupları
Claude Design'da çizdiğim yenileme canlıda yarım kalmıştı; bugün planı adım adım uyguladım: masaüstünde sol menü ve sayfa başlığı, Özet'te KPI şeridi ile yan yana Kasa ve Ödenecekler, Defter'e tür seçicili Kayıtlar tablosu, Ekip'e hakediş tablosu, Ayarlar'a sol grup listesi. Her parça 13 test kapısından ve parolasız ekran ölçümünden (320px'ten 1280px'e taşma sıfır) geçti. Bir dağıtımı kendim durdurdum — testler koşarken bir belge düzenledim, deploy.sh yakaladı — ve temiz ağaçla yeniden çıkardım. Hepsi Claude ile.
Kayıt 57araştırmaPayda
Süper app araştırması: Payda iyi bir defter, ama defter
Sistem oturdu, bugün tek satır kod yazmadım — "süper app" fikrini araştırdım. Önce bugünkü envanteri çıkardım: 29 uç, 8 koleksiyon, 1.400 kontrol; para tarafı (4-göz onayı, işlem anında mühürlenen kurlar, ortak carisi, dönem kapatma, denetim izi) gerçekten sağlam. Ama tek cümlelik gerçek şu: Payda'daki her sayı, başka bir yerde olmuş bir şeyin insan eliyle yazılmış kaydı — satış başka yerde oluyor, reklam başka yerde harcanıyor, para başka yere düşüyor. Süper app kalıbının üç sütununa baktığımda kimlik güçlü çıktı, ödeme yalnızca kayıt düzeyinde, mini-app platformu ise bu ölçekte gereksiz; benim bağlamımda süper app "defterden tezgâha geçmek" demek. Beş aday yön listeledim — konuşma katmanı, banka ekstresi eşleştirme, biriken veriye soru soran bir zekâ katmanı, çalışan için kurulabilir uygulama ve bildirim, çoklu ekip — ve karar vermeden önce kendime üç soru bıraktım.
Ürün Stratejisi · Araştırma · Süper App · Yol Haritası
Kayıt 56özellikPayda
Pasife alma düğmesi geldi, iki test kapısı kör çıktı
Dört maddelik kısa bir tur: üye kartına pasife alma düğmesi (ceza için de tatil için de aynı düğme — pasif üye projeyi listesinde göremiyor, veri yazamıyor, ama hakedişi ve geçmişi duruyor, pasifken bile ödeme yapabiliyorum), çalışanın reklam hesabı atamasının davetten sonra da değiştirilebilmesi, reklam hesabı kartında "bugüne kadar harcanan" satırı ve elle payment girişinin tamamen kapatılması — ödeme kayıtlarını artık yalnız sistemin kendi akışları üretiyor. Denetçi onay metnindeki yanlış vaadi yakaladı: "pasife alınan üye giriş yapamaz" yazıyordu, oysa hesap kapanmıyor, düşen şey proje erişimi; metin gerçeğe çekildi ve test artık yanlış vaadin yokluğunu da ölçüyor. Turun asıl bulgusu ise iki kapının kör olmasıydı — dünkü parite kapısı bayat istisnayı fark edemiyordu ve şablon bağ kapısı 16 iç listenin satır özelliklerini hiç denetlemiyormuş; kapsam 75 bloktan 87'ye çıktı. Dokuz mutasyonun dokuzu da kapıları adıyla kırdı; commit aa18bb2, 1.400 kontrol yeşil.
Üye Yönetimi · Reklam Hesapları · Test Kapıları · Emülatör Testi · Cloud Functions
Kayıt 55refactorPayda
Backend'de olan her şey arayüzde var mı: parite kapısı ve ölü kod süpürmesi
"Backend'de olan her şey frontend'de var mı?" sorusunu iki yönlü bir denetime çevirdim: her uç, çok-op'lu uçların her bir op'u ve sunucunun yazdığı alanlar tek tek "arayüzden ulaşılabilir mi" süzgecinden geçti. Uç düzeyinde 26 callable'ın 26'sı da bağlıydı, ama alt-op düzeyinde beş gerçek boşluk çıktı — reklam hesabının adı ve uyarı eşiği kuruluştan sonra değiştirilemiyordu, yanlış girilen hatırlatma silinemiyordu, eski satışları taşıyarak kategori yeniden adlandıran uç hiç tetiklenemiyordu; hepsini bağladım. Ölü kod tarafında silinen her parça grep kanıtlıydı (eski vardiya modelinin rotationQueue kalıntısı, yazılıp hiçbir yerde okunmayan lastProduct alanı, ölü CSS ve state) ve bağımsız bir denetçi ajan hem silinenleri hem "kullanılıyor" denilenleri rastgele örneklemle doğruladı. Asıl kazanç tek seferlik temizlik değil: "her uç ya arayüzden çağrılır ya gerekçeli istisnadır" kuralı artık teste bağlı — kapıyı üç sabotajla sınadık, üçünde de suçluyu adıyla yakaladı. Aynı turda satış girişine opsiyonel kısa not alanı geldi (müşteri kartındaki alım satırında görünüyor, boş bırakılınca hiç yazılmıyor); commit 85bfb79, 1.322 kontrol yeşil.
Ölü Kod Temizliği · Parite Kapısı · Cloud Functions · Kod Denetimi · Test
Kayıt 54düzeltmePayda
Vardiya sırasını elle dizme, 40 gün vade hatası ve bölünen müşteri kayıtları
Dün akşam başlayan beş maddelik tur sabah canlıya çıktı. Vardiya listesinde her satıra ↑/↓ taşıma okları geldi — sıra artık elle dizilebiliyor ve taşıma kimsenin çalışma saatini değiştirmiyor, yalnız devir dizilişini değiştiriyor. "40 gün" diye gördüğüm vade hatası gerçekti ve sandığımdan derindi: formül şablonun ödenmemiş ilk ayını atlıyordu, üstüne Öde'ye basınca sunucu "bu ay zaten ödendi" diye reddediyordu; kural sunucu ve istemciye birebir aynı yazıldı, 1.344 kombinasyonluk ızgara testinde red penceresi sıfır çıktı. Müşteri kayıtları da kaybolmuyormuş, bölünüyormuş — aynı numara "0555…", "+90 555…" gibi farklı yazımlarla ayrı dokümanlara düşüyordu; sunucu artık hepsini tek kanonik anahtara indiriyor ve canlıdaki 121 müşteri kaydı kopyala-doğrula-sil ile taşındı, sıfır kayıp. Grup bazlı kalan pastası ve ödeme formunun üstündeki "hangi gruptan öde" rehberi de aynı dağıtımda; commit fe7122d, 1.212 kontrol yeşil.
Vardiya Rotasyonu · Vade Hesabı · Veri Migrasyonu · Firestore · Test
Kayıt 53köklü sadeleştirmePayda
İş modeline göre köklü sadeleştirme canlıda
Payda bugün en büyük değişimini yaşadı: iş modeline uymayan her şey silindi, kalan her şey tek kurala oturdu. Komisyon artık tek model — satıştan brüt yüzde; maaş ve satış-başı modeller, görev atama, bankacı giriş rolü ve genel gider kategorileri tamamen kaldırıldı. Satış girişi dört zorunlu alana indi (hesap, banka, kategori, üslup), müşteri kaydına numara bazlı engelleme geldi (taciz eden müşteri hangi hesaptan gelirse gelsin sorguda 🚫 ENGELLİ çıkıyor), görevlerin yerini hesaba bağlı tarihli hatırlatmalar aldı. Silmenin en zor kısmı kod değil kanıttı: her silinen parçanın gerçekten çağrılmadığı grep kanıtıyla raporlandı, bağımsız bir denetçi ajan rastgele örneklemle doğruladı ve test takımı yeni modele göre yeniden yazıldı — 1140 kontrol yeşil. Canlıdan da dört ölü fonksiyon silindi; biri açık kalsaydı dört-göz onayını atlatma yolu olurdu.
Sadeleştirme · Ölü Kod Temizliği · 4-Göz Onayı · 1140 Test
Kayıt 38düzeltmePayda
E-posta doğrulama şeridi ve teslimat çalışması
Doğrulanmamış e-postayla girenlere artık panelde bir güvenlik şeridi çıkıyor: 'Doğrulama e-postası gönder' tek tık. Hızlı işlem formundaki kapanma hatası da düzeltildi; ikisi de canlıda doğrulandı. Sıradaki iş belli: e-postalarımızın spam klasörüne düşmemesi için teslimat (SPF/DKIM) çalışmasına başladık.
E-posta Doğrulama · Güvenlik · UX
Kayıt 37kullanıcı testiPayda
Canlıda kullanıcı testi: giriş ve e-posta onayı düzeldi
Sentetik bir hesapla siteye gerçek kullanıcı gibi girdim: kayıt ol → çıkış → tekrar giriş → işlem. Testin yakaladıkları aynı gün kapandı: yeni üyeye doğrulama e-postası gitmiyordu, onaysız üyelik mümkündü, şifre sıfırlama sonrası giriş takılıyordu — hepsi düzeltildi. Arayüzde sağ üstteki zil kalktı; bildirimler Özet'e taşındı ('Okundu' ve 'Tümünü okundu' ile), gelir/gider formu artık yerinde açılıyor. 8 maddelik düzeltme listesinin tamamı canlıya alındı.
Firebase Auth · E-posta Doğrulama · UX
Kayıt 36özellikPayda
Vardiya rotasyonu: +1 saat kayar kuyruk canlıda
Vardiya sistemi artık ekipteki herkesi sırayla döndürüyor: her döngüde sıradaki kişinin vardiyası +1 saat kayıyor, kimin ne zaman geleceği 9 döngü önceden görünüyor. Panele 'şu an vardiyada' rozeti ve rotasyon sekmesi (şu anki/sıradaki kişi + bildirimler) eklendi. 16'sı gecesi başlayıp sabaha karşı bitirdik; 182 testin tamamı yeşil, deploy edildi.
Rotasyon Kuyruğu · Bildirimler · 182 Test
Kayıt 35tasarımPayda
Gerçek app bottom-sheet: + yerinde form açıyor
Haklı bir eleştiriyi düzelttim: 'Ekle' butonu boş bir yönlendirme ekranı açıyordu, hepsi özete gidiyordu — gereksizdi. Artık '+' butonuna basınca telefon uygulamalarındaki gibi aşağıdan gerçek bir işlem formu (bottom sheet) yükseliyor: Gelir/Gider seç, tutarı gir, kaydet — anında kaydediyor ve kapanıyor, hiçbir yere gitmiyorsun. Yerinde, akıcı, native app hissi. Masaüstünde ortalı bir kart, mobilde tam genişlik olarak çalışıyor. 166 test yeşil, canlıda.
Bottom Sheet · Mobil UX · Test
Kayıt 34tasarımPayda
Telefon uygulaması hissi: alt navigasyon + büyük butonlar
Payda'ya gerçek bir telefon uygulaması hissi verdim: üstteki sekmeler yerine artık altta sabit, yüzen bir navigasyon çubuğu var — Özet, Defter, ortada kocaman '+' Ekle, Ekip ve Ayarlar. Ekle'ye basınca 'Ne eklemek istiyorsun?' diye iki dev kart çıkıyor (Gelir / Gider) ve tek dokunuşla forma götürüyor. Baş parmakla tek elle kullanım çok kolaylaştı. Masaüstünde de yüzen bir bar olarak şık duruyor. Hepsini emülatörde deneyerek doğruladım, 166 test yeşil, canlıda.
Alt Navigasyon · Mobil UX · Test
Kayıt 33tasarımPayda
Sekmeli panel (buton mantığı) + ölü kod temizliği
Payda'nın uzun kaydırmalı yönetici panelini buton mantıklı sekmelere böldüm: üstte sabit üç büyük sekme (Özet · Defter · Ekip & Vardiya), her biri diğerini gizliyor — artık aşağı kaydırmadan bölüm değiştiriyorsun, kişisel vardiya/görev özeti hep üstte. Sonra da daha önce kaldırdığım özelliklerden (banka preseti, bankacı bakiye-yükleme paneli) geriye kalan ölü kodu temizledim — 16 kullanılmayan bağ ve 3 ölü fonksiyon gitti; bankacı ve yönetici ekranlarını canlı deneyerek beyaz-ekran/hata olmadığını doğruladım. Masaüstü+mobil, 166 test yeşil.
Sekmeli Arayüz · Refactor · Test
Kayıt 32tasarımPayda
Görsel derinlik + dokunsal butonlar + canlı deneyim testi
Bu kez Payda'yı gerçekten kullanarak test ettim: emülatörde açıp her bölümü tıkladım, ayarları açtım, arayüzden gelir/gider ekledim — hepsi çalıştı, konsol hatası yok. Şikayet edilen 'düz/flat' görünümü giderdim: KPI kutularına üstte accent çizgisi ve katmanlı gölge, kartlara yumuşak derinlik ve hover kalkışı, tüm butonlara dokunsal his (üstüne gelince parlama, basınca içeri gitme), bölüm başlıklarına accent nokta ekledim. Sadece CSS ve metin; iş mantığına dokunmadım, 166 test yeşil, masaüstü+mobil sağlam.
Tasarım · CSS · Deneyim Testi
Kayıt 31özellikPayda
Vardiya takip sistemi + para dalgalanması düzeltmesi
Bugün Payda'ya vardiya takip sistemi ekledim: dönen vardiyaları (örn. 12:00 başla, her gün +1 saat kay) otomatik hesaplıyor, herkes kendi ve ekibin saatlerini görüyor, vardiyaya yarım saat kala kırmızı geri sayım uyarısı çıkıyor. Bir de sinir bozucu bir hatayı düzelttim: sabit giderin fiyatı canlı döviz kuruyla oynuyordu — artık girdiğin tutar girdiğin para biriminde sabit duruyor. Yönetici/ortak için 'hangi bankada kesintiden sonra ne kadar kaldı' ekranı ve almayan müşteriye hangi hesaptan denendiğini yazma alanı da geldi. 166 kontrol yeşil, masaüstü ve mobilde doğruladım.
Vardiya · Döviz Sabitleme · Test
Kayıt 30sadeleştirmePayda
Bankacı e-postasız, ortak payı otomatik, banka karmaşası kalktı
Payda'yı daha da sadeleştirdim: bankacıyı artık e-posta olmadan sadece isim ve yüzdeyle ekleyebiliyorsun (biz bilelim yeter; daveti sonra göndeririz). Ortak payı artık net kârdan otomatik ve her ortak KENDİ yüzdesini görüyor — önceden hep ilk ortağın yüzdesi görünüyordu, bunu düzelttim. Kafa karıştıran 'banka hesabı ödetme' preset'ini tamamen kaldırdım. Hazır metinler artık tek dar kolon yerine ekranı dolduran grid. 162 otomatik kontrol yeşil, canlıda.
Sadeleştirme · Kâr Payı · Test
Kayıt 29sadeleştirmePayda
Gereksizleri attım: notlar, bankacı karmaşası, sabit üslup
Bugün Payda'yı sadeleştirdim: gereksiz bulunan 'notlar' özelliğini tamamen kaldırdım; satış ve görüşme üslubunu artık sabit (yumuşak/nötr/sert) seçenekler yerine kişi kendi yazıyor; bir müşteriye olumsuz dönüş kaydederken 'hangi banka gösterildi' de tutuluyor; ve bankacının kafa karıştıran 'bakiye yükle/gider gir' panelini kaldırdım — gider artık yalnız yönetici/ortak işi. 159 otomatik kontrol yeşil, canlıda.
Sadeleştirme · UX · Test
Kayıt 28güvenlikPayda
Ortak onayı genişledi, çevrimiçi göstergesi, güvenlik taraması
Bugün Payda'da 4 iş: (1) müşteri numarasını aratınca hangi hesaptan hangi bankaya ödediği de görünüyor. (2) Ortak varken artık sadece kâr payı değil; üye %'si değiştirme, üye çıkarma ve proje silme de diğer ortağın onayına düşüyor — kimse tek başına yapıyı bozamıyor. (3) Ortaklar çalışan/ortakların çevrimiçi olup olmadığını yeşil noktayla görüyor. (4) OWASP Top 10 güvenlik taraması: erişim kontrolü, XSS, başlıklar, enjeksiyon — hepsi temiz; kalan iki madde (2FA, bot koruması) panelden açılacak. 163 otomatik kontrol yeşil, canlıda.
4-Göz Onayı · OWASP · Test
Kayıt 27özellikPayda
Satış üslubu + kıl müşteri takibi + genel görev
Bugün Payda'nın mini-CRM'ini büyüttüm: artık her satışın hangi üslupla (yumuşak/sert) ve hangi yöntemle yapıldığı kaydediliyor. Daha önemlisi, satın ALMAYAN müşterileri de kaydedebiliyoruz — 'bu numarayı şu hesaptan yumuşak tonla denedik, almadı, olumsuz döndü' gibi. Böylece aynı kıl müşteri başka bir hesaptan tekrar denendiğinde geçmişi görünüyor. Bir de tek tuşla herkese görev atama ekledim. 142 otomatik kontrol yeşil, canlıda.
Mini-CRM · Görevler · Test
Kayıt 26güvenlikPayda
Tüm roller için yetki denetimi + 3 düzeltme
Bugün Payda'yı beş rolün (yönetici, ortak, bankacı, çalışan, pay ortağı) gözünden uçtan uca denetledim: her rol verilen yetkinin dışına çıkmayı denedi ve sistem hepsini reddetti. Bu sırada bir açık buldum — yetkisiz bir çalışan ekip notlarını silebiliyordu; kapattım. Ayrıca hiç işe yaramayan bir yetki anahtarını temizledim ve bankacının varsayılan yetkisini işine göre daralttım. Otomatik güvenlik testini 104'ten 131 kontrole çıkardım, hepsi yeşil, canlıya aldım.
Yetki Denetimi · Güvenlik · 131 Test
Kayıt 25refactorPayda
Yeni arayüzde panel çalışıyor
Faz 2'nin en büyük parçası düştü: yönetici paneli artık yeni React arayüzünde — KPI'lar, dönem ve para birimi anahtarları, geri sayımlı yaklaşan ödemeler, hızlı gelir/gider, defter ve CSV. Hepsini emülatörde gerçek akışla doğruladım: satış ekledim, sildim, kirayı ödedim, hatalı girdinin reddedildiğini gördüm. Kanıt dosyası ve denetim kapısı yeşil; canlı site hâlâ eski arayüzde, geçiş güvenli ilerliyor.
React · TypeScript · Emülatör Testi
Kayıt 24refactorPayda
Yeni React arayüzünün ilk ekranları çalışıyor
Faz 2'de somut ilk adım: Payda'nın yeni React+TypeScript arayüzü ayağa kalktı — giriş, üye olma, şifre sıfırlama ve Projelerim ekranı birebir taşındı. En güzel kısmı: yeni arayüz backend'le artık tipli bir sözleşme üzerinden konuşuyor; ilk projeyi bu kanaldan oluşturup emülatörde uçtan uca doğruladım. Canlı site hâlâ eski arayüzde, geçiş ekran ekran ve testli ilerleyecek.
React · TypeScript · Tip Sözleşmeleri
Kayıt 23refactorPayda
Faz 1 bitti: repo düzeni, CI ve tip sözleşmeleri
Payda'yı büyük yeniden yapılanma planına soktum ve ilk fazı bitirdim: proje artık gerçek bir git deposu; kök çalışma alanı, mimari/veri modeli dokümanları ve GitHub Actions test kapısı hazır. Eski prototipler arşive kalktı, açıklı paketler güncellendi (yüksek riskli açık kalmadı) ve 104 test hâlâ yeşil. Üstüne Faz 2'nin ilk taşını koydum: frontend ile backend'in ortak dili olacak tip sözleşmeleri. Tek Claude oturumu, tam şeffaflık.
Git · CI/CD · Tip Sözleşmeleri
Kayıt 21özellikPayda
Yaklaşan ödemelere geri sayım
Bugün Payda'ya küçük ama günlük hayatta en çok bakılacak şeylerden birini ekledim: sabit aylık ödemeler artık geri sayımla görünüyor — 'kira, her ayın 5'i, 4 gün sonra ödenecek' gibi. Panelin tepesinde Yaklaşan Ödemeler kartı en yakın ödemeyi üste alıyor; bugün ödenecekler kırmızıya dönüyor. Matematiğini birim testiyle doğrulayıp yayınladım.
Geri Sayım · Ödemeler · Birim Testi
Kayıt 15refactorPayda
Ödeme onayı + backend'i modüllere böldüm
Bugün ortakların çalışan/bankacı ödemelerini parça parça ya da tek seferde yapabilmesini ekledim; ikinci ortak varsa değişiklik ona onaya düşüyor (4-göz). Sonra 800 satırlık backend'i tek dosyadan lib/core + handlers/ (proje, işlem, üye, finans, görev, paylaşım, zamanlanmış) diye modüllere böldüm — davranış birebir aynı kaldı, 104 test hâlâ yeşil. Ölü kodları da attım. Hep tek Claude oturumu.
Cloud Functions · Modüler Mimari · Test
Kayıt 14özellikPayda
Mini-CRM, görev sistemi ve tekrarlı gider otomasyonu
Bugün Payda'ya gerçek bir mini-CRM ekledim: bir numarayı aratınca kişinin alıcı olup olmadığı, ne aldığı ve satışı KİMİN girdiği satır satır çıkıyor; müşteri notu da tutuluyor. Yanında gerçek görev sistemi (yönetici atar, çalışan 'Görevlerim'den tamamlar), aylık sabit giderler için otomatik işleyen zamanlanmış fonksiyon ve bir kâr-payı bug'ı düzeltmesi geldi. Test paketi 84/84 yeşil, hepsi tek Claude oturumunda.
Mini-CRM · Görev Sistemi · Zamanlanmış Fonksiyon
Kayıt 13özellikPayda
Lansman öncesi büyük tarama: 10 eksik, 10 çözüm
Bugün Payda'yı lansmana hazırlarcasına baştan taradım: dönem filtresi, CSV dışa aktarım, satış silmede tam ters kayıt, KVKK sayfaları, hesap paneli, PWA manifesti ve daha fazlası — bulduğum 10 eksiğin 10'unu da aynı gün kapattım. Güvenlik turunda CSV formül enjeksiyonunu ve çift-silme yarışını da yakalayıp düzelttim; test paketi 68/68 yeşil. Hâlâ tek Claude oturumu, hâlâ build in public.
KVKK · PWA · CSV Dışa Aktarım · Güvenlik Denetimi
Kayıt 12Payda
Müşteri kaydı (mini-CRM) ve modüler yetkiler
Satış girerken artık isteğe bağlı müşteri numarası ve ürün eklenebiliyor; bir numarayı aratınca kimin ne aldığı ve hangi hesaptan alındığı görünüyor. Müşteri bilgisi kişisel veri sayıldığı için yalnızca yetkisi olan görebiliyor. Yetkilendirme tamamen modüler hale geldi: rol ekranı belirliyor, her yetenek tek tek açılıp kapanabiliyor (örneğin bankacıya sadece bankacılık, istenirse reklam da). 61 entegrasyon testinin tamamı geçti; backend ve arayüz canlıya alındı.
Bugün Payda'ya üç uzman ajanı birden saldım: tasarımcı OKLCH token'lı, mobil uyumlu ve erişilebilir bir tasarım sistemi kurdu; güvenlik uzmanı OWASP denetiminde yüzde alanlarını ve tutar sınırlarını sıkılaştırdı; SEO ajanı da hreflang, favicon ve WebSite schema'sını ekledi. Aralarda müşteri kaydı (mini-CRM) ve tamamen modüler yetki sistemi de canlıya çıktı — 61 güvenlik testi hâlâ yeşil. Hepsi tek Claude oturumunda, ben sadece yön verdim.
Tasarım Sistemi · OWASP Denetimi · SEO
Kayıt 08bot korumasıPayda
reCAPTCHA ile bot koruması
Payda'nın giriş ve kayıt akışına reCAPTCHA ekleyerek otomatik/bot kötüye kullanımına karşı koruma getirdik.
reCAPTCHA · Güvenlik
Kayıt 06roller & izolasyonPayda
Rol yetkileri ve proje yönetimi
Kimin neyi görüp neye müdahale edebileceğini tanımladık: çalışan, partner ve bankacı rolleri. Proje oluşturma/silme akışını güvenli onaylarla düzelttik; hata ayıklama ve güvenlik denetimi planını faz faz uyguladık.
Firebase · Rol/Yetki · Güvenlik
Kayıt 04güvenlikPayda
Banka seviyesinde güvenlik ve veri izolasyonu
Giriş, e-posta doğrulama ve şifre sıfırlamayı çalışır hale getirdik ve tüm özellikleri gerçek backend'e bağladık. En önemlisi mimariyi 'çalışan başkasının verisini göremez/değiştiremez' olacak şekilde rol-izolasyonlu kurduk — banka standartlarına yakın, tüm yazma işlemleri sunucu tarafında.
Firestore Rules · Firebase Auth · Güvenlik
Kayıt 02kuruluşPayda
Payda serüveni başlıyor
Proje yönetim ve muhasebe platformu Payda'yı Firebase'e kurduk: veritabanı, kimlik doğrulama ve barındırma. Tüm veri altyapısını sıfırdan oluşturduk.
Firebase · Firestore · Firebase Auth
12
Ekran Çeviri
12 kayıt
Kayıt 61kararEkran Çeviri
Grok API'den vazgeçtim: tek yapay zeka merkezi Claude
Grok API aboneliğini iptal ettim; bundan sonra tek yapay zeka merkezim Claude. Ekran Çeviri'nin çeviri motoru Grok'a bağlıydı — kodda Google ve Bing motorları yedek olarak duruyor, ama kalite kapıları Grok yolunu varsayıyor. Yani bu iptal, uygulamanın çeviri hattında yeniden düzenleme gerektiriyor; kod hâlâ GrokMotor'u içeriyor. Vazgeçilen kararları da yazıyorum, çünkü build in public sadece işe yarayanları değil, geri alınanları da göstermek demek.
Grok API · Claude · Çeviri Motoru · Karar Değişikliği
Kayıt 50yayınEkran Çeviri
Depoyu Windows'a indirdim ve v1.1.0'ı yayınladım
Eski platform kaynağını depodan çıkarıp (git geçmişinde duruyor) Windows projesini köke taşıdım ve README'yi baştan Windows kullanıcısına göre yazdım. API anahtarı akışını uçtan uca bağladım: anahtar ilk açılışta soruluyor, yazarken maskeleniyor, Windows'un kendi şifrelemesiyle (DPAPI) saklanıyor ve ayar dosyasına asla düşmüyor; 'xai-' ile başlamayan metin reddediliyor, çünkü yanlış yapıştırma bütün çevirileri sessizce bozuyordu. GitHub Actions gerçek bir Windows makinesinde 54/54 testi geçirdi ve kurulum gerektirmeyen 74 MB'lık tek dosyalık .exe'yi üretti — testler geçmezse .exe hiç çıkmıyor.
Yayın · GitHub Actions · DPAPI · API Anahtarı
Kayıt 49guvenlikEkran Çeviri
Beş Uzman Denetimi: 77 Bulgu ve Ekrandan Gelen Talimat Riski
Arka planda beş ayrı uzman bakış açısıyla (sistem, güvenlik, dilbilim, UX, QA) denetim koşturdum; 77 bulgu çıktı, tekrarlar elenince 18'e indi. En kritiği güvenlikti: karşı tarafın ekrandaki mesajları sistem talimatına ham giriyor ve çıktı ben okumadan yapıştırılabiliyordu, yani ekrandaki bir metin bana mesaj yazdırabilirdi — güvenilmez içerik artık veri olarak etiketleniyor. Dilbilimci "1,5 saat 150 chf" girdisinin giden mesajda "15 stund 150"ye dönüştüğünü yakaladı; sayı koruma kuralı ve kalite kapısı ekledim. Ayrıca sızmış xAI anahtarı için önce yedek alıp 13 commit'lik git geçmişini yeniden yazdım ve QA'nın en sinsi bulgusunu kapattım: testler üretim kodunun kopyasını doğruluyordu, artık gerçek fonksiyonları çağırıyor.
Güvenlik · Prompt Injection · Git Geçmişi · Test · Denetim
Kayıt 48yeni platformEkran Çeviri
Windows sürümünü sıfırdan ikinci bir uygulama olarak yazdım
Arkadaşlarım Windows kullandığı için mevcut sürümü 'uyarlamak' mümkün değildi — ekran yakalama, yazı tanıma ve arayüzün tamamı platforma özgüydü. C# / .NET 8 / WPF ile ayrı bir uygulama yazdım: yakalama GDI BitBlt, yazı tanıma cihazda çalışan Windows.Media.Ocr, çeviri katmanı tıklamayı geçiren WPF katmanlı pencere, kısayol RegisterHotKey + SendInput. Çeviri zekâsının tamamını (lehçe algılama, sözlükler, istemler, rakam ve fiyat koruma kapıları) birebir taşıdım. 44 saf mantık testini koşturdum ve test gerçek bir hata yakaladı: 'chli' kelimesi Zürih'in güçlü işaret listesindeydi, oysa Bern'de de kullanılıyor — Bern lehçesiyle yazan birine Zürih lehçesinde cevap yazılıyormuş; iki sürümde de düzelttim.
Windows · C# · .NET 8 · WPF · Port
Kayıt 47denetimEkran Çeviri
Denetim 32 kusur çıkardı; en kötüsü silinen fiyatlardı
'Çeviriler yanlış anlaşılacak kadar bozuk' şikayetinin kökünü buldum: canlı modda bloklar yalnız ekrandaki konumlarına bakılarak eşleştiriliyordu, metne hiç bakılmıyordu — yeni mesaj gelip liste yukarı kayınca her mesaj bir üsttekinin çevirisini alıyordu. İkinci ağır hata daha sinsiydi: saat damgası temizleyicisi 12.50 (fiyat), 10-15 (süre) ve 12.05 (tarih) desenlerini de saat sanıp metinden siliyordu; düzeltmeden sonra ölçtüm, sayı kaybı 0/5. Ayrıca ekran yakalama çağrılarına zaman aşımı koydum — yanıt gelmezse iş kuyruğu kalıcı kilitleniyordu — ve kirlenmiş çeviri hafızasını sürümleyip temizledim, çünkü uygulamanın kendi çıktısı ve tek harflik anahtarlar orada kayıtlıydı.
Uygulamayı kapatıp tekrar "Bölgeyi Çevir" dediğimde hiçbir şey olmuyordu — uyarı da yoktu. Sebep, arka plan iş kuyruğunun ortasında ana iş parçacığını bekleyen bir çağrıydı: ana iş parçacığı bir pencereyle meşgulse sıra kilitleniyor ve "çeviri sürüyor" bayrağı sonsuza dek açık kalıyordu. Bekleyen çağrıyı kaldırdım, onay penceresini kuyruktan çıkardım, takılı işi 15 saniye sonra iptal eden bir kurtarma ve 5 saniyede bir kontrol yapan sağlık bekçisi ekledim. Kendi senaryomu 20 tur koşturdum, 20/20 temiz geçti; bu döngü artık yayın kapısında, testler geçmeden paket üretilmiyor.
Swift · Eşzamanlılık · Deadlock · Test Otomasyonu
Kayıt 43kararlılıkEkran Çeviri
Çökmenin kök nedeni: aynı veriye iki iş parçacığından yazmak
Uygulama arada çöküyor, arada ağ hatası verip hiç çevirmiyordu. Denetimde çeviri önbelleği, blok listesi ve çeviri metinlerine iki iş parçacığından aynı anda erişildiğini buldum — bu bellek bozulması, yani çökme demek; hepsini kilitledim ve 8 kuyruk × 3.000 turluk saldırı testinde tek çökme almadım. Ağ tarafında tek bir geçici hata tüm çeviriyi düşürüyordu; kendi ağ oturumumu açıp 0,6 ve 1,8 saniye arayla 3 deneme koydum, erişilemez adreste bekleme 11 saniyeden 0'a indi. Üçüncü sorun bendendi: gün içinde ~20 kez yeniden derlediğim için uygulamanın imzası her seferinde değişiyor ve sistem erişilebilirlik iznini iptal ediyordu — sabit bir imza kimliği oluşturup iznin derlemeler arasında korunduğunu doğruladım.
Çökme · Eşzamanlılık · Ağ Dayanıklılığı · İzinler
Kayıt 40ozellikEkran Çeviri
Yerel Çeviri Hafızası Kurdum, OCR'da Harf Düşmesini Ölçüp Kapattım
Her çeviriyi diske kaydedip yeni mesajda önce hafızaya bakan bir akış kurdum: aynı mesajların ikinci çevirisi 8.3 saniyeden 0.00 saniyeye indi, OCR metni biraz farklı okusa bile bulanık eşleşme yakalıyor ve motora hiç gitmiyor. "Harf düşmesi" şikayetinin kök nedenini ölçerek buldum — metin Vision'a çok küçük gidiyordu; Lanczos ile büyütünce karakter hata oranı %0.50'den %0.16'ya, tam doğru satır oranı %88.5'ten %96.6'ya çıktı. Yol boyunca çevirilerin yanlış mesajlara yazılmasına yol açan numaralandırma hatasını yakalayıp sıralamayı modele emanet etmeyi bıraktım ve regresyon testi ekledim. 6 dakikada 31 MB'dan 106 MB'a büyüyen bellek sızıntısını da kapattım; şimdi 81 MB'da sabit.
OCR · Apple Vision · Önbellek · Bellek Sızıntısı · Grok API
Kayıt 39yeni özellikEkran Çeviri
İsviçre Almancası lehçelerini tek tek ayırt etmeyi öğrettim
Uygulama düz Almanca'yı çeviriyordu ama İsviçre Almancası'nda saçmalıyordu; asıl ihtiyacım tam da oradaydı. Gerçek sohbet geçmişinden 15.610 mesajlık bir altın test seti çıkardım ve Züridütsch, Bärndütsch, Baseldytsch, Doğu İsviçre, Wallis lehçelerini otomatik ayırt eden bir algılama yazdım — panel hangi lehçede olduğunu gösteriyor ve benim Türkçe yazdığım cevap da o lehçede yazılıyor. Sohbet geçişi testinde Bern → Zürih → Bern → Hochdeutsch geçişlerinin hepsi doğru çıktı; 31/31 birim testi ve 6 dakikalık 40 turluk dayanıklılık testi hatasız geçti. Bir de yerel çeviri hafızası ekledim: daha önce çevrilmiş bir cümle modele hiç gitmiyor.
Lehçe Algılama · İsviçre Almancası · Test · Çeviri Hafızası
Kayıt 22güvenlikEkran Çeviri
Kısayolla yazdığımı çevirme ve pakete sızan API anahtarı
Türkçe yazdığım mesajı kısayola basınca karşı tarafın dilinde ve seçtiğim üslupta yeniden yazan bir özellik ekledim; kısayolu artık uygulama içinden atayabiliyorum. Denetimde paketleme betiğinin geliştirme makinemdeki config.json'u uygulama paketine varsayılan ayar olarak kopyaladığını gördüm — yani kişisel API anahtarım dağıtılan pakete giriyordu; bunu kestim. Ayrıca 13 ağsız birim testi yazıp yayın betiğini testlere bağladım: testler geçmeden paket üretilmiyor.
Kısayol · Güvenlik · Test · Yayın Kapısı
Kayıt 20hata düzeltmeEkran Çeviri
Uygulama kendi çevirisini okuyup tekrar çeviriyordu
Canlı modun sonsuz döngüye girdiğini fark ettim: ekrana yazdığı Türkçe çeviriyi bir sonraki turda 'yeni mesaj' sanıp tekrar çeviriyordu. Çeviri katmanını ekran yakalamanın dışına aldım, döngü kapandı. Aynı turda motorları zincire bağladım — Bing → Google → Grok; biri düşerse diğeri devralıyor ve panelde hangisinin çalıştığı yazıyor. Ayrı sohbet balonlarını tek blok sanıp birleştiren gruplama mantığını da düzelttim, çünkü birleşen balonlar anlamı tamamen bozuyordu.
Canlı Çeviri · OCR · Çeviri Motoru · Balon Gruplama
Kayıt 19yeni projeEkran Çeviri
Alfred betiğini gerçek bir masaüstü uygulamasına çevirdim
İş, Alfred'e bağlı tek bir çeviri betiği olarak başlamıştı; onu menü çubuğunda kendi başına duran kurulu bir uygulamaya taşıdım. Ekranda bir bölge seçiyorsun, uygulama o alandaki yazıyı okuyup çeviriyi geri veriyor. Yol boyunca iki tuzağı çözdüm: arka plan uygulaması olduğu için işletim sistemi uygulamanın tüm bildirim pencerelerini sessizce gizliyordu ve ekran kaydı izni doğru kimlikle istenmiyordu. İlk gün sonunda uygulama gerçekten açılıp bölge seçebiliyordu.
Masaüstü · OCR · Ekran Yakalama · Menü Çubuğu
14
samiaktas.com
14 kayıt
Kayıt 60düzeltmesamiaktas.com
Defterin kendi verisini denetledim: mükerrer girişim ve id çakışmaları
Bu kez kodu değil defterin kendi verisini denetledim ve altı somut hata çıktı: girişim listesinde "Payda" iki kez kayıtlıydı (anasayfadaki şişik sayaç hatasının asıl kök nedeni buymuş — kodda savunma vardı ama veri hâlâ kirliydi), dört kayıt numarası ikişer kez kullanılmıştı (10, 30, 31, 32), dört kayıt içeriksiz otomatik girdiydi ve bunların bir kısmında Ekran Çeviri ile Devam işleri yanlışlıkla samiaktas.com'a atanmıştı, beş kaydın etiketi boştu ve bir kayıt İngilizce sayfada Türkçe görünüyordu. Ayrıca 16 Ağustos'tan beri deftere hiç işlenmemiş iş birikmişti. Hepsini tek geçişte düzelttim: mükerrer girişim kaldırıldı, çakışan numaralar yeniden verildi, içeriksiz kayıtlar gerçek işleriyle değiştirilip doğru girişime taşındı, eksik etiketler ve çeviri tamamlandı.
Firestore · Veri Kalitesi · i18n · İçerik
Kayıt 59refactorsamiaktas.com
Denetim sonrası onarım: 36 değişiklik, 18 dosya, bağımsız doğrulama
Denetimin ardından onarım fazını koşturdum: çakışmayan beş grupta 36 değişiklik uygulandı, 18 dosya değişti ve sitenin kimlik üretimi (kayıt numarası, proje slug'ı, sayfa ankoru, JSON-LD kimliği) dört ayrı yerde kopyalanmak yerine tek bir yeni modülde toplandı. Yayında görünen üç doğruluk hatası düzeldi: aynı güne düşen kayıtların ters sırası, mükerrer "Payda" kaydı yüzünden "Aktif girişim" sayacının 3 yerine 4 yazması ve aynı yazının yapısal veride birden fazla kimlikle yayınlanması. Yerel önizleme aracındaki bir açık kapatıldı ve araç artık yalnız kendi makinemi dinliyor; günlük yazan betik de yazmadan önce yedek alıyor ve doküman arada değiştiyse üzerine yazmayı reddediyor. Her grup, onarımı yapmayan bağımsız bir ajanla yeniden denetlendi: dördü temiz geçti, yayın hattı grubunda onarım ajanının üç değişikliği yeni sorun doğurmuştu ve doğrulayıcı üçünü de geri aldı. Canlıya hiçbir şey yayınlanmadı, canlı veriye dokunulmadı ve değişen 20 dosyanın tek komutla geri alınabilir yedeği alındı.
Siteyi ve etrafındaki araçları dokuz uzman modunda (hata ayıklama, mimari, performans, temiz mimari, backend, frontend, teknik liderlik, güvenlik, DevOps) paralel denetlettim; toplam 53 ajan koştu ve her kritik bulgu iki bağımsız hakemin çürütme testinden geçti. Sonuç beklediğim gibi çıkmadı: 19 "kritik" iddianın 13'ü ölçüm yapılınca düştü — "site üç gündür yayınlanmıyor", "HTML hiçbir katmanda önbelleklenmiyor", "analytics kritik CSS'i geciktiriyor" gibi maddelerin hiçbiri canlı ölçümde doğrulanmadı. Geriye kalan gerçek acil üç madde ise sitenin kendisiyle değil, çevresindeki yerel araçlarla ilgiliydi. Uygulama katmanı sandığımdan sağlam çıktı: URL güvenlik filtresi denenen 21 saldırı vektörünün tamamını engelledi ve derlenmiş çıktıda hiç sır sızıntısı yok. Bu projeye kalıcı kuralım şu oldu: kod okuyarak varılan sonuç, canlıdan ölçülmeden bulgu sayılmaz.
Çok-Ajanlı Denetim · Güvenlik · Performans · Astro · Firestore
Kayıt 42özelliksamiaktas.com
Yönetim Paneli ve API Entegrasyonu
Bugün Grok API'yi siteye bağladım. Yeni proje eklemek ve resim değiştirmek için basit bir yönetim arayüzü oluşturdum. Otomatik paylaşım özelliği de eklendi. (Sonradan iptal edildi: Grok API aboneliğinden vazgeçtim.)
Yönetim Paneli · Otomatik Paylaşım · İptal Edildi
Kayıt 41güncellemesamiaktas.com
Günlük Sistemi İyileştirmeleri
Bugün günlük sistemimi geliştirdim. Verilerin daha gerçekçi işlenmesini sağladım.
Yapım Günlüğü · Otomasyon · Veri İşleme
Kayıt 18optimizasyonsamiaktas.com
Kod diyeti: 8 MB ölü ağırlık gitti, yapı modülerleşti
Eski tek-dosyalık sitenin kalıntılarını (8 MB'a yakın ölü dosya) temizledik; orijinali arşive kaldırdık. Üç sayfada kopyala-yapıştır duran başlık, alt bilgi ve günlük kaydı blokları tek tek bileşenlere indi — artık bir görünümü değiştirmek tek dosya düzenlemek demek. Türkçe sitede hiç kullanılmayan Kiril/Yunan/Vietnam font paketleri de atıldı (39 tanımdan 16'ya). Görünüm piksel piksel aynı kaldı.
Refactor · Modüler Mimari · Performans
Kayıt 17kilometre taşısamiaktas.com
Site artık iki dilli: İngilizce sürüm yayında
samiaktas.com/en açıldı — anasayfa, günlük arşivi ve girişim sayfalarıyla sitenin tamamı İngilizce. Sağ üstte TR/EN düğmesi var; otomatik yönlendirme bilerek yok (Google'ın tavsiyesi: hreflang + kullanıcı seçimi). 15 günlük kaydının tamamı, Hakkımda hikâyem ve tüm arayüz elden çevrildi; tarihler bile dile göre biçimleniyor. Kod tekrarı sıfır: aynı dosyalar iki dili birden üretiyor. Yapay zeka motorları ve Google artık İngilizce sorgularda da bu defteri kaynak gösterebilir.
i18n · hreflang · SEO · Astro
Kayıt 16şeffaflıksamiaktas.com
Gerçek giderler ve teknoloji etiketleri
Defterdeki 'sıfır gider' gerçeği yansıtmıyordu — 'İş Akışı & Araçlar' diye bir genel gider sınıfı açtık ve Claude Pro aboneliğini (17 USD ≈ ₺796) işledik. Şeffaflık artık gerçek rakamı gösteriyor; bu sınıf girişim olarak sayılmıyor, kendi başlığı altında dökümlü. Ayrıca günlükteki her kayda o gün kullanılan teknolojiler ve güvenlik çalışmaları etiket olarak eklendi — ziyaretçi hangi işin neyle yapıldığını tek bakışta görüyor.
Şeffaflık · Genel Gider · Etiketleme
Kayıt 11samiaktas.com
Günlük arşivi ve girişim sayfaları
Yapım günlüğü büyüyünce yapıyı değiştirdik: anasayfada artık yalnızca son 5 kayıt var, defterin tamamı /gunluk sayfasında. Her girişimin kendi günlük sayfası oluştu — Payda ve samiaktas.com ayrı ayrı okunabiliyor, yeni bir girişim eklediğimde sayfası kendiliğinden açılacak. Kayıtlar yeniden eskiye sıralandı, her sayfa kendi başlığı ve şemasıyla arama motorlarına ayrı ayrı tanıtıldı; site haritası kendini güncelliyor.
Astro · SEO · Schema.org
Kayıt 09otomasyonsamiaktas.com
Site kendini yayınlıyor + üçlü uzman denetimi
Bugün siteyi her düzenlemede otomatik derleyip yayınlayan bir hat kurduk (derle → yayınla → arama motorlarına anında bildir). Ardından tasarım, SEO/GEO ve güvenlik olmak üzere üç ayrı uzman denetimi yaptırdık: erişilebilirlik/kontrast düzeltmeleri, daha zengin yapısal veri ve veritabanı yazma kuralının sahibime kilitlenmesi. Not: bu sitenin tamamı tek bir Claude Pro üyeliğiyle, yapay zekayla birlikte kuruldu.
CI/Otomasyon · Güvenlik · SEO · Erişilebilirlik
Kayıt 07astro'ya geçişsamiaktas.com
Siteyi sıfır-JavaScript Astro ile yeniden yazdık
AI ve Google'da en hızlı görünürlük için siteyi tamamen statik, sıfır-JavaScript bir Astro yapısına taşıdık. Sonuç: ~34 KB boyut, yarım saniyenin altında açılış ve tüm içeriğin botların anında okuyabileceği şekilde gömülü olması. Tasarımı da sadeleştirdik: metin odaklı bir açılış ve Hakkımda'da tek büyük fotoğraf.
Astro · Tailwind CSS · Sıfır-JS
Kayıt 05kimlik & girişsamiaktas.com
Kimlik, giriş ve arayüz oturdu
Hakkımda metnini (Adana, yazılım girişimciliğine bu siteyle başlama hikayem) yazdık, yönetici girişini Firebase ile güvene aldık ve arayüzü elden geçirdik. E-posta tarafındaki eksik DNS kaydını bulup düzelttik; artık [email protected] çalışıyor.
Firebase Auth · DNS · Güvenlik
Kayıt 03seo & aisamiaktas.com
Arama motoru ve yapay zeka görünürlüğü paketi
Siteyi Google, Bing ve Yandex'e tanıttık; sitemap, robots.txt, llms.txt, Schema.org işaretlemeleri ve IndexNow'ı kurduk. GPTBot/ClaudeBot gibi yapay zeka tarayıcılarına okuma izni verdik. Cloudflare ile hız, güvenlik (SSL, WAF) ve önbellek katmanı ekledik.
SEO · Schema.org · Cloudflare · WAF/SSL
Kayıt 01ilk yayınsamiaktas.com
Site nihayet açıldı
Açılmayan portföy sitesini Firebase Hosting'e taşıyıp yayına aldık. 7 MB'lık tek dosyayı parçalara böldük ve Firestore ile kalıcı hale getirdik; sayfa artık her yenilemede sıfırlanmıyor. Kod bilmeden, yapay zekayla adım adım.
Firebase Hosting · Firestore · JavaScript
04
Reels Stüdyo
4 kayıt
Kayıt 52geliştirmeReels Stüdyo
Her işlemede platform açıklaması, kanca bandı ve A/B kapak üretiliyor
Araştırma dosyasında uygulanmamış kalan beş boşluğu kapattım. Artık her işlemede platform ve dil başına açıklama dosyası üretiliyor ve "kapak metni başlıkla aynı olmasın" kuralı gerçekten işliyor: kapak "KODU AI YAZDI" derken başlık "Gün 1: Claude siteme güvenlik yaması yazdı" oluyor. Kapaktan sonraki 0.4–2.9 saniyeye en fazla 8 kelimelik bir kanca bandı bastım; kapakla aynı encode içinde gömüldüğü için ek işlem süresi yok, 1.5. saniyenin karesini çıkarıp gözle doğruladım. Damga kararının verisi olmadığı için her işlemede kapağın damgalı ve "?" işaretli iki varyantını birden üretiyorum, böylece YouTube Test & Compare için malzeme her gün hazır. Son 9 kapağı Instagram'ın 3:4 kırpmasıyla profil ızgarası olarak diziyorum ve Yayınlar sekmesine izlenme/tutma notu alanı ekledim; 38/38 test ve kalite kapısı -14.0 LUFS ile geçti.
Kapağı ayrı dosya olmaktan çıkarıp videonun ilk karesine gömdüm
Kapakta yazı mı yoksa videodan bir kare mi daha iyi çalışıyor sorusunu tahminle cevaplamak istemedim; 6 araştırmacı ve 1 sentezci ajanı paralel çalıştırdım, 68 web araması sonunda 10 kanıta bağlı karar çıktı. En değerli bulgu şuydu: üç platformda da akışta video otomatik oynuyor, yani kapak feed'de hiç görünmüyor, yalnızca profil ve keşifte bir varlık. Bunun üzerine kapağı videonun ilk 0.4 saniyesine gömdüm ve çıktının ilk karesini çıkarıp gerçekten kapak olduğunu doğruladım. Araştırma üç eski kararımı devirdi: sol koyu şerit gitti (TikTok ızgarası kapağı merkez kareye kırpıyor), daire damga gitti (izleyicide clickbait sinyali) ve "şaşkın yüz seç" mantığı gitti; yerlerine merkez blok yerleşim, köşeli eğik etiket ve günün aracının ekran görüntüsünü taşıyan kanıt kartı geldi. Yeniden derledikten sonra 38 birim test ve kalite kapısı yine geçti, süre 19.66 + 0.4 = 20.075 saniye olarak tuttu.
Reels Stüdyo'yu sıfırdan yazıp imzalı macOS uygulaması olarak kurdum
Planı kod yazmadan bırakmadım: StudyoKit video motorunu, SwiftUI panelini ve CLI'ı aynı gün yazıp imzaladım, uygulama /Applications/Reels Stüdyo.app olarak kuruldu. Doğrulamak için Türkçe TTS sesi ve gerçek bir yüz fotoğrafıyla bilerek karanlık ve kısık sesli bir test videosu ürettim; ses -24.6 LUFS'tan tam -14.0'a çekildi, 25.3 saniyelik video 19.6 saniyeye indi ve eşiğin altındaki 0.3 saniyelik boşluk doğru şekilde korundu. 38 birim testin hepsi geçti; kalite kapısı LUFS, çözünürlük, fps, ilk kare parlaklığı ve süre oranını her işte otomatik kontrol ediyor. Homebrew'un ffmpeg 8.x sürümünde libass olmadığını fark edince altyazı gömmeyi CoreText → PNG → overlay yoluyla kendim yazdım, whisper large-v3-turbo ile Türkçe transkripsiyon dört cümlenin dördünde birebir doğru çıktı. Devam uygulamasındaki günlük ve site altyapısını 15 dosya halinde GunlukKit olarak taşıdım, tek satır değişiklik gerekmeden derlendi.
Swift · SwiftUI · ffmpeg · Apple Vision · whisper.cpp · CoreText
Kayıt 45araştırmaReels Stüdyo
Dikey video hattının standartlarını araştırmayla kilitledim
Telefonla çekilmiş dikey videoyu tek adımda yayına hazırlayacak hattı kodlamadan önce araştırdım: ses hedefi olarak -14 LUFS'u, sessizlik kırpma eşiği olarak 0.4 saniyeyi ve 1080x1920 30 fps çıktıyı sabitledim. Kapak şablonunu iki kez elden geçirdim; ilk taslakta metin sol altta kalıyordu, Instagram profil ızgarasının kapağı 3:4'e kırptığını görünce kritik her öğeyi merkezdeki güvenli kutuya taşıdım. Almanca altyazı için Apple'ın cihaz içi çeviri motorunu denedim, Türkçe'nin macOS 26'da bulunmadığını görünce yolu Türkçe → İngilizce → Almanca olarak kurguladım. YouTube, Instagram ve TikTok'un 2026 API kısıtlarını tek tek doğruladım ve on kararı PLAN.md'ye yazdım. Bu turda bilerek tek satır kod yazmadım.
ffmpeg · loudnorm · Apple Translation · Platform API · Planlama