$npx -y skills add komunite/tezgah --skill saas-analyticsSaaS uygulaması için PostHog analytics ve ürün analizi kur. Event tracking, kullanıcı tanımlama, feature flag, session replay, funnel analizi ve gizlilik uyumlu yapılandırma. Bu skill'i kullanıcı analytics, PostHog, event tracking, kullanıcı davranışı, feature flag, A/B test, dön
| 1 | # SaaS Analytics — PostHog ile Ürün Analizi |
| 2 | |
| 3 | Bu skill, bir SaaS uygulamasının analitik katmanını kurar. Göremediğin şeyi iyileştiremezsin — kullanıcıların ürünü nasıl kullandığını, nerede takıldığını ve neden ayrıldığını anlamak büyümenin temelidir. |
| 4 | |
| 5 | **Bağımlılık:** Bu skill **saas-launcher** orkestratör skill'inin deployment fazıyla birlikte veya sonrasında uygulanır. Bağımsız olarak da kullanılabilir. |
| 6 | |
| 7 | **Bağlı skill'ler:** |
| 8 | - **saas-auth** — Kullanıcı kimliği analytics ile ilişkilendirilir. |
| 9 | - **saas-payments** — Gelir metrikleri ve dönüşüm hunileri. |
| 10 | - **saas-legal** — KVKK/GDPR uyumlu tracking yapılandırması. |
| 11 | |
| 12 | --- |
| 13 | |
| 14 | ## Neden PostHog |
| 15 | |
| 16 | ### Alternatiflerle Karşılaştırma |
| 17 | |
| 18 | **PostHog vs. Google Analytics:** |
| 19 | - PostHog ürün analizi için tasarlanmış (event bazlı), GA pazarlama analizi için (sayfa görüntüleme bazlı) |
| 20 | - PostHog self-host edilebilir (veri sende kalır — KVKK avantajı) |
| 21 | - PostHog'da session replay, feature flag, A/B test dahili |
| 22 | - GA cookie consent gerektirir (GDPR), PostHog cookieless mode'da çalışabilir |
| 23 | |
| 24 | **PostHog vs. Mixpanel:** |
| 25 | - PostHog açık kaynak, self-host seçeneği |
| 26 | - PostHog ücretsiz katmanı çok cömert (1M event/ay) |
| 27 | - Mixpanel'in analiz arayüzü daha olgun ama PostHog hızla yaklaşıyor |
| 28 | |
| 29 | **PostHog vs. Plausible:** |
| 30 | - Plausible sadece sayfa analizi — event tracking, funnel, session replay yok |
| 31 | - Plausible gizlilik odaklı basit analitik için iyi ama SaaS ürün analizi için yetersiz |
| 32 | |
| 33 | **Sonuç:** SaaS için PostHog en dengeli seçim — ürün analizi, feature flag ve session replay tek platformda. |
| 34 | |
| 35 | --- |
| 36 | |
| 37 | ## PostHog Kurulumu |
| 38 | |
| 39 | ### Cloud vs. Self-Host |
| 40 | |
| 41 | **PostHog Cloud (önerilen başlangıç):** Kayıt ol, proje oluştur, API key al. Ücretsiz katman: aylık 1M event, 5K session recording, 1M feature flag değerlendirmesi. |
| 42 | |
| 43 | **Self-host:** Docker Compose ile kendi sunucunda çalıştır. Avantaj: veri tamamen sende, KVKK endişesi sıfır. Dezavantaj: sunucu yönetimi, güncelleme sorumluluğu. Büyüdükçe veya yasal gereklilik varsa değerlendir. |
| 44 | |
| 45 | ### Next.js Entegrasyonu |
| 46 | |
| 47 | PostHog'un resmi `posthog-js` kütüphanesini kur: |
| 48 | |
| 49 | ``` |
| 50 | npm install posthog-js |
| 51 | ``` |
| 52 | |
| 53 | **PostHog Provider oluştur:** Client component olarak bir provider yaz. App Router'da root layout'a ekle. Ortam değişkenleri: |
| 54 | - `NEXT_PUBLIC_POSTHOG_KEY` — proje API anahtarı (public) |
| 55 | - `NEXT_PUBLIC_POSTHOG_HOST` — PostHog instance URL'si (cloud için `https://us.i.posthog.com` veya `https://eu.i.posthog.com`) |
| 56 | |
| 57 | **EU instance kullan.** Türkiye'den çalışıyorsan ve KVKK uyumluluğu önemliyse EU instance seç — veri Avrupa'da kalır. |
| 58 | |
| 59 | ### Server-Side Tracking |
| 60 | |
| 61 | API route'ları ve server component'lerde event göndermek için `posthog-node` kütüphanesini kullan. Server-side tracking özellikle ödeme event'leri, webhook işlemleri ve arka plan görevleri için gerekli. |
| 62 | |
| 63 | --- |
| 64 | |
| 65 | ## Event Tracking Tasarımı |
| 66 | |
| 67 | ### İsimlendirme Kuralları |
| 68 | |
| 69 | Tutarlı event isimlendirmesi kritiktir. Kaotik isimler analizi imkânsız kılar. |
| 70 | |
| 71 | Format: `nesne_eylem` — küçük harf, alt çizgi ile ayır. |
| 72 | - `user_signed_up` (kayıt oldu) |
| 73 | - `plan_upgraded` (plan yükseltti) |
| 74 | - `project_created` (proje oluşturdu) |
| 75 | - `checkout_started` (ödeme başlattı) |
| 76 | - `checkout_completed` (ödeme tamamladı) |
| 77 | |
| 78 | **Yapma:** `SignUp`, `user-sign-up`, `Signed Up`, `signup` — tutarsız isimlendirme analiz yapılmasını engeller. |
| 79 | |
| 80 | ### Temel Event'ler |
| 81 | |
| 82 | Her SaaS'ta izlenmesi gereken event'ler: |
| 83 | |
| 84 | **Dönüşüm hunisi:** |
| 85 | 1. `page_viewed` (properties: path, referrer) |
| 86 | 2. `signup_started` (kayıt formunu açtı) |
| 87 | 3. `user_signed_up` (kayıt tamamlandı, properties: method — google/magic_link) |
| 88 | 4. `checkout_started` (plan seçti, properties: plan, period) |
| 89 | 5. `checkout_completed` (ödeme başarılı, properties: plan, amount) |
| 90 | |
| 91 | **Ürün kullanımı:** |
| 92 | - `feature_used` (properties: feature_name) |
| 93 | - `project_created` / `project_deleted` |
| 94 | - `settings_updated` |
| 95 | |
| 96 | **Ayrılma sinyalleri:** |
| 97 | - `plan_cancelled` (iptal etti) |
| 98 | - `plan_downgraded` (düşürdü) |
| 99 | - `account_deleted` (hesabı sildi) |
| 100 | |
| 101 | ### Property'ler |
| 102 | |
| 103 | Her event'e bağlam ekleyen metadata: |
| 104 | - **Kullanıcı property'leri:** plan, kayıt tarihi, ülke |
| 105 | - **Event property'leri:** sayfa yolu, buton konumu, seçilen plan |
| 106 | - **Süper property'ler:** her event'e otomatik eklenen ortak veriler |
| 107 | |
| 108 | --- |
| 109 | |
| 110 | ## Kullanıcı Tanımlama |
| 111 | |
| 112 | ### Anonim → Tanımlı Geçiş |
| 113 | |
| 114 | PostHog her ziyaretçiye anonim bir ID atar. Kullanıcı giriş yapınca `posthog.identify()` ile gerçek kimliğini bağla. Bu sayede giriş öncesi ve sonrası davranışlar tek profilde birleşir. |
| 115 | |
| 116 | Identify çağrısında gönderilecek property'ler: |
| 117 | |
| 118 | - name |
| 119 | - plan |
| 120 | - created_at |
| 121 | - stripe_customer_id (opsiyonel) |
| 122 | |
| 123 | **Identify'ı auth callback'inde yap.** Giri |