KANIT DOSYASI
Kutunun içindekiler.
Bu sayfa bir satış sayfası değil. Bu sitenin nasıl kurulduğunu, hangi kararların neden alındığını ve arkada ne çalıştığını anlatıyor. Bir ajansın kendi vitrinini nasıl inşa ettiği, o ajansın müşteri işini nasıl kuracağının en dürüst göstergesidir.
- SÜRÜM
- 1.0 · 13 AĞUSTOS 2026
- KAPSAM
- 8 BÖLÜM · MİMARİ KAYDI
- HAZIRLAYAN
- ULAŞ GÖKHAN GÜMÜŞ
ETKEN MADDE
01
Bu site neyden yapıldı
Next.js statik export, Cloudflare Pages, GSAP ve Lenis, kendi sunucumuzda çalışan n8n, Supabase, GTM/GA4/Meta CAPI/LinkedIn ölçüm katmanı, iyzico ödeme hattı, Claude Haiku destekli asistan.
WordPress yok. Eklenti yok. Tema yok. 64 statik sayfa, her biri önceden derlenmiş HTML olarak dağıtılıyor: veritabanı sorgusu yok, sunucu tarafı render yok, güncellenmeyi bekleyen eklenti yok. Bu bir tercih değil, bir güvenlik ve hız kararı — saldırı yüzeyi neredeyse sıfır, sayfa maliyeti sıfıra yakın.
ÖLÇÜM
02
Reklam parası nereye gittiğini bilir
Çoğu sitede ölçüm tek katmandır: tarayıcıya bir pixel konur, gerisi umuda bırakılır. Burada iki katman var.
Tarayıcı tarafı olayları GTM üzerinden akar; sunucu tarafı aynı olayları Meta Conversions API'ye bağımsız olarak gönderir. İki kaynak aynı olayı iki kez saymasın diye her olay tekil bir kimlikle işaretlenir — platform tarafında eşleştirilip tekilleştirilir. Reklam engelleyici tarayıcı tarafını sustursa bile dönüşüm kaydı düşmez.
Eşleşme kalitesi tesadüfe bırakılmaz: hash'lenmiş e-posta ve telefon, ad ve soyad ayrı alanlar hâlinde (tek "ad soyad" alanı, platform tarafında eşleşmeyi doğrudan düşürür), birinci taraf ziyaretçi kimliği, tarayıcı ve tıklama tanımlayıcıları birlikte gönderilir. Sonuç ilk günden ölçüldü: eşleşme kalitesi yükseldi ve tarayıcı tarafında tamamen kaybolan bir dönüşüm sunucu tarafından yakalandı — reklam platformu o satışı hiç görmeyecekti.
GA4 tarafında anahtar olaylar keyfi seçilmedi: yalnız gerçek ticari niyeti temsil edenler işaretli. Kısmi form doldurma kaydediliyor ama anahtar olay değil — çünkü ölçüm, iyimser görünmek için değil karar vermek için kuruluyor.
BU KATMANI KURAN HİZMETPazarlama Veri Analitiği
YAN ETKİLER VE RIZA
03
"Reddet" gerçekten reddetmektir
Çerez bandında üç seçenek var: kabul, reddet, özelleştir. Özelleştir gerçek bir tercih ekranıdır — analitik ve pazarlama ayrı ayrı açılır kapanır, tercih kategori bazında saklanır, geri almak vermek kadar kolaydır.
Reddet dendiğinde: Meta pixel susar, sunucu tarafı da susar, LinkedIn susar. Buradaki kritik detay şu — sunucu tarafı ölçüm, tarayıcıdaki rızayı by-pass etmek için kullanılabilir. Kullanmıyoruz. Rıza kapısı otomasyon hattının içinde de var; rıza yoksa sunucu da göndermiyor. Google tarafında yalnız kimliksiz, çerezsiz bir sinyal kalır.
Bu katman hazır bir rıza yönetimi aboneliğiyle kurulmadı. Piyasadaki paketler her siteye aynı şablonu giydirir; buradaki rıza mekaniği sitenin kendi ölçüm mimarisine göre yazıldı. Hangi etiketin hangi rıza kategorisine bağlı olduğu, rıza geri alındığında neyin duracağı satır satır belirlendi — kiralanan bir çözümde bu görünürlük yoktur.
Rıza verildiğinde ise ölçüm tam kapasite çalışır. İlke net:
Kapı sıkı, kapının arkası cömert.
DAĞITIM SİSTEMİ
04
Formdan sonra ne oluyor
Bir form gönderildiğinde sırayla: bot doğrulaması, alan doğrulaması, ardından veri hedeflerine dağıtım — yapılandırılmış tablo kaydı, anlık bildirim, reklam platformlarına dönüşüm sinyali, ve ödeme akışlarında onaylanan sözleşme metninin sürümüyle birlikte zaman damgalı kaydı.
Bu zincirin tamamı kendi sunucumuzda çalışan n8n üzerinde. Dört ayrı hat, her biri kendi doğrulama katmanıyla. Herhangi bir adım hata verirse hat sessizce ölür.
Yanlış veri yazmaktansa hiç yazmamak tercih edilir.
Hukuki metinler sürümlenir ve gönderilen her kayıt, o an yürürlükte olan metnin sürüm numarasını taşır. "Hangi metni onayladı" sorusunun cevabı altı ay sonra da elimizde.
BU KATMANI KURAN HİZMETAI Otomasyon Paketleri
ASİSTAN
05
Uydurmayan chatbot
Sitedeki asistan bir "yapay zekâ eklentisi" değil, üzerine düşünülmüş bir zincir. Altyapı: Claude Haiku 4.5 — hız ve maliyet için seçildi, akıl için değil; asistanın işi akıl yürütmek değil, siteyi doğru anlatmak.
Her soru için önce sitenin kendi hizmet ve içerik kataloğu modele bağlam olarak verilir — asistan kendi bildiğini değil, sitede gerçekten var olanı anlatır. Sistem promptu repoda sürümlenir; değişiklik önce repoya, sonra çalışan sisteme girer. Model yalnız katı bir JSON şemasıyla cevap verir; verdiği bağlantılar bu sitenin adresleriyle sınırlı bir süzgeçten geçer — uydurulmuş bir link kullanıcıya ulaşmaz. Cevap bozuk gelirse zincir kırılmaz, düz metne düşer.
Sınırları da tanımlı: bilmediğini söyler, alakasız konuya sürüklenmez, kapsam dışı işleri kabul etmez, mesaj iletme sözü vermez. Sohbet kayıtları 12 ay saklanır ve otomatik silinir — süre keyfi değil, aydınlatma metninde yazılı ve teknik olarak uygulanmış.
Maliyet tarafı da mimarinin parçası: mesaj başına giden sabit bağlam bilinçli olarak küçük tutuldu. Bu ölçekte asistanın aylık maliyeti tek haneli dolar seviyesinde kalıyor.
BU KATMANI KURAN PAKETKARŞILA
ÜRETİM KAYITLARI
06
Kararlar nasıl saklanıyor
Bu projenin tüm kalıcı kararları tek bir dosyada, sürümlenerek yaşıyor — bugün 50. sürümde. Her karar, gerekçesi ve iptal edildiyse iptal işaretiyle birlikte duruyor. Yapılan her değişiklik kanıt istiyor: ilgili satır, çıktı, hash. "Yaptım" tek başına kabul edilmiyor.
Bu, yazılım disiplini gibi görünüyor ama aslında ajans disiplini: altı ay sonra "bu neden böyle" diye sorulduğunda cevabı olan bir sistem, cevabı olmayan bir sistemden çok daha ucuzdur.
İSTENMEYEN ETKİLER
07
Premium hevesinin bedeli
Bu sayfanın en dürüst bölümü burası.
Etkileyici arayüz kurma hevesi bu işin en pahalı tuzağı. Klasik senaryo şöyle: sayfayı boydan boya kat eden, scroll'la çizilen bir çizgi. Fikir güzel, ama uygulaması sayfayı sessizce boğuyor — o çizgi, belge boyundaki dev bir katmana her karede baştan çizdiriliyor. Safari'de sayfa saniyede 3 kareye iniyor, Chrome çizgiyi tamamen kaybediyor.
Bu tuzağın sinsi tarafı şu: belirtiyi günlerce kovalayabilirsin, çünkü suçlu koddaki bir hata değil, mimarideki bir tercih. Çözüm ölçüm aletini değiştirmekten geçiyor — tarayıcı profilleyicisi darboğazın yeniden boyama olduğunu gösteriyor, tek katmanı kapatan bir izolasyon testi suçluyu kesinleştiriyor. Burada da öyle oldu: animasyon kaldırıldı, sayfa saniyede 3 kareden 50 kareye çıktı.
Bu deneyim benim için kalıcı bir kurala evrildi: animasyonlar yalnız tarayıcının bedava işlediği özelliklerle kurulmalı; kare başına boyanan alan ekranı aşmamalı. Bu sayfa açısından da dürüst bir kazanım olarak sizinle paylaşmak istediğim bir detaydı.
Güzel görünen ama tekleyen bir arayüz, güzel değildir.
KAPANIŞ
08
Bu sitenin görünen yüzü sade. Arkasındaki sistem değil.
Bu mühendisliği, sizin pazarlama ağınız için de inşa edelim — otomasyon mimarisiyle güçlendirelim.
Bu sayfadaki katmanların hepsi, ölçüm altyapısından AI otomasyonuna kadar hizmet olarak da kuruluyor.