Dosya No. MC-2026-01 · Özel beta
Müşteri — Avangard Reklam (şirket içi ürün)
Tür — B2B SaaS — yapay zekâ destekli CRM
Teknoloji — Next.js 16 · Prisma 7 · Neon
Ekip — 2 mühendis, 1 tasarımcı

Her gün kullanacağımız CRM’i, onu kullanan ajans inşa etti.

Marketing CRM, Avangard’ın şirket içi ürünüdür: açıklanabilir lead skorlaması, üç dil desteği ve günler yerine saatler içinde özellik çıkaran bir tasarım sistemine sahip, ajanslara özel çok kiracılı ve yapay zekâ destekli bir CRM. Gerçek fırsatlarımızı içinden yönetiyoruz — bu sayfa da arkasındaki kararların kaydıdır.

Next.js · App RouterPrisma + NeonAçıklanabilir YZ skorlamasıSaaSTasarım sistemleriCROi18n (EN/TR/ES)
01 Özet

Şirket içi bir ürün, portföy işi olarak yayınlandı.

Ajanslar; katı pipeline’lara zorlayan, yapay zekâyı sonradan eklenmiş bir sohbet botu gibi gören elektronik tablolar, Notion veya jenerik CRM’lerle çalışıyor. Marketing CRM bizim cevabımız: ajansa özel fikir sahibi pipeline’lar, altyapı olarak yapay zekâ, ilk günden çok kiracılı yapı — ve dakikalar içinde ilk değeri sunan sıfır kurulumla başlama.

Durum: özel beta (lansman öncesi), yaklaşık altı aylık geliştirme. Ürün henüz lansman yapmadığı için bu sayfa sonuç değil, inşa kaydı ve beta hedefleri yayınlar. Lansman sonrası veri oluştuğunda rakamlar damgalı bir güncellemeyle eklenir.

02 Problem & Yaklaşım

Jenerik CRM’ler ajansların satış biçimine uymuyor.

Ajans pipeline’larının gerçekte nasıl çalıştığını inceledik ve hazır araçlarda dört tekrarlayan boşluk bulduk. Yaklaşımımız basitti: Avangard’da her gün kullanacağımız CRM’i inşa etmek.

Boşluk

  • Ajans satış döngülerine uymayan katı pipeline’lar.
  • Karar katmanı yerine sonradan eklenmiş bot muamelesi gören yapay zekâ.
  • Ajans-müşteri ayrımı için çok kiracılı çalışma alanı izolasyonunun olmaması.
  • İlk değer anından önce haftalarca süren kurulum.

Bizim yaklaşımımız

  • Ajans pipeline’ları için fikir sahibi varsayılanlar: Yeni → Nitelikli → Teklif → Kazanıldı/Kaybedildi.
  • Altyapı olarak yapay zekâ — her lead otomatik olarak skorlanır, açıklanır ve aksiyona dönüştürülür.
  • İlk günden çok kiracılı yapı — çalışma alanı izolasyonu, RBAC, davet akışları.
  • Sıfır kurulumla başlama — dakikalar içinde CSV içe aktarma, Gmail senkronizasyonu ve herkese açık formlar.
03 Teknik Mimari

Serverless Postgres üzerinde Next.js 16, dayanıklı çift sağlayıcılı yapay zekâ.

Varsayılan olarak React Server Components ve explicit istemci sınırları, Prisma üzerinden Neon serverless Postgres, çalışma alanı RBAC katmanlı JWT kimlik doğrulama — ve maliyet ile gecikme gözlemlenebilirliği için loglanan her yapay zekâ çağrısı.

Next.js 16 (App Router)
  RSC/SSR Sayfalar · İstemci Bileşenleri · API Rotaları (/api/ai, /api/auth)
        │                    │                        │
   Prisma 7 + Neon   NextAuth v5 (JWT)   next-intl v4 (i18n)
        │
   PostgreSQL (Neon serverless)
KatmanSeçimGerekçe
FrameworkNext.js 16 + React 19Varsayılan RSC, streaming, Turbopack, React 19 uyumu
VeritabanıPrisma 7 + adapter-pgNeon serverless, driverAdapters ile bağlantı havuzu gerektirir
Kimlik doğrulamaNextAuth v5 beta (JWT + PrismaAdapter)Credentials sağlayıcı (bcrypt), OAuth’a hazır, çok kiracılı oturum
Çok kiracılı yapıWorkspace / WorkspaceMember + RBACKurulum başına tek çalışma alanı; ADMIN / MEMBER / VIEWER rolleri
Yapay zekâÇift sağlayıcı: Groq → Gemini yedeğiMaliyet ve gecikme optimizasyonu, dayanıklılık ve streaming
i18nnext-intl v4, çerez tabanlı dil3 dil (EN/TR/ES), URL öneki yok, middleware dil başlığı
GözlemlenebilirlikÖzel logger + YZ çağrı loglarıHer YZ çağrısı loglanır: token, gecikme, sağlayıcı, sonuç

Veritabanı şeması öne çıkanlar

  • Kullanıcı & Auth: User, Account, Session, VerificationToken (NextAuth uyumlu).
  • Çalışma alanı: Workspace, WorkspaceMember (çok kiracılı izolasyon).
  • Çekirdek CRM: Lead, Client, Contact, Activity, Note, Tag.
  • Pipeline: PipelineStage, Deal, Proposal, Task.
  • YZ & Otomasyon: Automation, Sequence, ScoringRule, AIUsageLog.
  • Entegrasyonlar: Webhook, GmailSync, GoogleCalendar.
  • Analitik: Report, SavedView, CustomField.

API yüzeyi

/api/auth/[...nextauth]    → NextAuth v5 işleyiciler
/api/ai/analyze-stream     → Streaming lead analizi (SSE)
/api/ai/deep-analysis      → Tam yapılandırılmış analiz
/api/ai/generate-sequence  → YZ ile e-posta serisi üretimi
/api/ai/suggestions        → Gerçek zamanlı YZ önerileri
/api/cron/*                → Zamanlanmış işler (özet, seriler, otomasyonlar)
/api/integrations/google/* → OAuth bağlama / çözme / durum
/api/track/*               → E-posta açılma / tıklama takibi
/api/upload-*              → Doğrulamalı görsel / PDF yükleme
04 Tasarım Sistemi & UI/UX

Tek bileşen kütüphanesi, kapsamlı iki tema.

Panel; bilgi yoğunluğu ve nötr bir çerçeve ister, landing sayfası ise duygusal rezonans ve marka kişiliği. İkisi de Radix primitifleri üzerinde 40’tan fazla özelleştirilmiş shadcn/ui bileşeninden besleniyor — tek bir tema sınıfıyla kapsülleniyor, böylece ikisi asla birbirine sızmıyor.

Bileşen temeli

  • Kütüphane: shadcn/ui (New York stili, stone bazı, CSS değişkenleri) + Radix UI primitifleri.
  • İkonlar: Lucide React. Formlar: react-hook-form + Zod doğrulama.
  • Zengin metin: Tiptap (renk, yazı tipi, görsel, bağlantı, hizalama).

Özel tasarım token’ları (OKLCH)

:root {
  --background: oklch(1 0 0);
  --foreground: oklch(0.147 0.004 49.25);
  --primary: oklch(0.216 0.006 56.043);
  --radius: 0.625rem;
}
.landing-theme {
  --canvas: oklch(0.977 0.008 95);
  --bark: oklch(0.245 0.018 75);
  --moss: oklch(0.545 0.075 155);
  --clay: oklch(0.63 0.098 55);
}
RolYazı tipiNot
Arayüz SansGeist SansPanel ve arayüz metinleri
Arayüz MonoGeist MonoVeri, kod, etiketler
TeşhirFraunces (değişken)Landing başlıkları — editoryal sıcaklık

Hareket & etkileşim

  • Scroll reveal (520ms ease-out), hover’da duran marquee, hero’da yavaş aura hareketi.
  • “Canlı ürün” hissi için scroll-bağlantılı 3B dönüşümlü pipeline önizlemesi.
  • Tüm animasyonlar prefers-reduced-motion altında kapalı.

Erişilebilirlik

  • Radix primitifleri ARIA kalıplarını taşır; tüm etkileşimli öğelerde focus-visible halkaları.
  • Semantik landmark’lar, başlıklar ve listeler; baştan sona klavye navigasyonu.
  • Her iki temada da WCAG AA kontrast doğrulaması.
05 Ekran Görüntüleri

Landing, giriş ve mobil — beta’ya çıkan ürün.

Staging sürümünden yedi kare: landing hunisi, karanlık mod hero, giriş kapısı ve responsive mobil görünüm.

06 CRO & Dönüşüm Stratejisi

Landing’de kapılı beta hunisi, panelde aktivasyon.

Anonim ziyaretçiler beta talebine akar; giriş yapan kullanıcıları karşılayanlar ise bir onboarding kontrol listesi, bir komut paleti ve her biri tek bir yönlendirilmiş aksiyona işaret eden boş durumlar.

ÖğeAmaçKarar
HeroDeğer önerisi + interaktif kanıtPipeline önizlemesi gerçek bileşeni render eder, scroll-bağlantılı 3B dönüşümle
Birincil CTALinkedIn DM ile “Erişim İste”Ajans karar vericilerini filtreler; davetten önce manuel eleme
İkincil CTA“Giriş Yap”Mevcut kullanıcılar kapıyı atlar
MarqueeScroll’suz özellik yoğunluğu8 çip, sonsuz döngü, hover’da durma
ManifestoDuygusal konumlandırma“Yazılım, bahçe bakımı gibi hissettirmeli; elektronik tabloyla boğuşmak gibi değil”
Süreç bloğu3 adımda nasıl çalışırİçe aktar → Skorla → Otomatikleştir
Kapanış CTA’sıSon dönüşüm itişiAynı LinkedIn kapısı

Landing sayfasında e-posta yakalama yok — bilinçli bir karar. LinkedIn DM, yüksek temaslı beta kullanıcılarını form doldurmadan çok daha iyi niteler ve meraklı tıklamaları huninin dışında tutar.

KalıpUygulamaDönüşüm etkisi
Onboarding kontrol listesi4 adım: içe aktar, Gmail bağla, pipeline kur, ekip davet etAşamalı açıklama; tamamlanma aktivasyon demek
Komut paleti (⌘K)Global arama ve aksiyonlarGüç kullanıcısı tutarlılığı; aksiyona daha kısa süre
Klavye kısayollarıSağlayıcı + yardım modalı (?)Arayüz kalabalığı olmadan keşfedilebilirlik
Boş durumlarResimli + yönlendirilmiş butonlar“CSV İçe Aktar” / “Lead Ekle” / “Gmail Bağla”
YZ içgörü paneliAçıklanabilir skorlama ve sonraki adımlarGüven → reliance → alışkanlık oluşumu
07 SEO & Çok Dilli Yapı

Üç dil, çerez tabanlı, sayfa bazında meta veriler.

İngilizce (varsayılan), Türkçe ve İspanyolca tam mesaj paritesini paylaşıyor — landing metinleri, panel dizgileri ve hatta YZ analiz istemleri; analiz dili her lead’in tercih ettiği dile uyum sağlıyor.

i18n mimarisi

Middleware (çerez → dil)
      → next-intl isteği (statik mesaj içe aktarmaları)
      → Layout (NextIntlClientProvider)
      → Sayfalar (useTranslations, useFormatter)

Dil algılama sırası

  1. NEXT_LOCALE çerezi (1 yıl max-age).
  2. Accept-Language başlığı (yedek).
  3. Varsayılan: İngilizce.

URL öneki yok (/en/dashboard, /tr/dashboard) — daha temiz UX ve basit middleware; doğrudan dile deep link verememe pahasına. Paylaşılan bağlantılar ?lang= parametresi taşır.

ÖzellikDurum
Sayfa bazında dinamik meta verilerHer rotada generateMetadata
Open Graph / Twitter kartlarıLayout + sayfa meta verilerinde yapılandırıldı
Yapılandırılmış veri (JSON-LD)Landing’de SaaS ürün şeması; panelde WebApplication
hreflangDil başlığı + <head> içinde alternatif bağlantılar
robots.txtTümüne izin; /api/ ve /dashboard/ hariç
Core Web VitalsPaket içe aktarma optimizasyonu, font display: swap

Performans bütçeleri

  • LCP 2,5sn altı (hero görseli + pipeline önizlemesi).
  • CLS 0,1 altı (font swap, dinamik içerik için ayrılmış alan).
  • INP 200ms altı (varsayılan RSC, minimal istemci JS).
08 Fark Yaratan Yapay Zekâ

Bir özellik sekmesi değil, altyapı olarak yapay zekâ.

Skorlama, içgörüler ve seriler tek bir pipeline’ı paylaşıyor: güçlü bir yedeği olan ucuz ve hızlı bir birincil sağlayıcı, üstel geri çekilmeli yeniden denemeler, Zod-doğrulamalı yapılandırılmış çıktı ve her çağrıda kullanım loglaması.

Kullanıcı isteği → Groq (birincil, llama-3.1)
                    → Gemini (yedek, gemini-1.5)
      Üstel geri çekilme (en fazla 3 deneme)
      Yapılandırılmış çıktı (Zod) → Kullanım loglaması (her çağrı)
Lead analiz çıktısı — TypeScript arayüzü (kısaltılmış)
interface LeadAnalysis {
  score: number;                    // 0–100
  confidence: number;               // 0–1
  scoreBreakdown: ScoreFactor[];    // açıklanabilir: faktör, ağırlık, kanıt
  executiveSummary: string;
  bestServiceMatch: ServiceType;
  conversationStarters: string[];
  recommendedActions: Action[];
  nextBestAction: { action, reasoning, urgency };
  outreachStrategy: { channel, multiTouchPlan[], toneGuidance };
  dealStrategy: { positioning, stakeholders, competitiveAngle };
  potentialObjections: { objection, response, proofPoint }[];
  dealRisks: { risk, severity, mitigation }[];
  outreachEmail: { subject, body, followUp };
  proposalGuidance: { angle, deliverables, successMetrics, riskReversal };
}
ÖzellikUygulama
Streaming analizToken token UI güncellemeli SSE uç noktası
Açıklanabilir skorlamaLead başına render edilen skor kırılımı
Çok dilli istemlerAnaliz dili lead’in tercih ettiği dili takip eder
Çalışma alanı geri bildirimiİnsan düzeltmeleri (beğen/beğenme) istemlere geri beslenir
Kullanım paneli/dashboard/ai — sağlayıcı başına token, maliyet, başarı oranı, gecikme
Seri üretimiBrieften tam e-posta serileri: konu, gövde, zamanlama

Maliyet kontrolü

  • Groq yaklaşık $0,0001 / 1K token (birincil); Gemini yaklaşık $0,001 / 1K (yedek).
  • Token tavanları: analizde 4096, önerilerde 2048.
  • Aynı istemler oturum içinde tekilleştirilir.
09 Panel UX Kalıpları

Gereken yerde yoğun, geri kalan her yerde yönlendiren.

Daraltılabilir role-filtreli kenar çubuğu, bildirimli çalışma alanı değiştirici, mobilde alt sekme navigasyonu — ve tek bir etkileşim grameri paylaşan yedi çekirdek görünüm.

GörünümKilit bileşenlerUX kalıpları
Lead’lerTablo + Kanban geçişi, kayıtlı görünümler, toplu aksiyonlar, CSV içe/dışa aktarmaSürükle-bırak, sanallaştırılmış satırlar, sütun görünürlüğü
Lead detayıGenel bakış, zaman çizelgesi, e-postalar, teklifler, dokümanlar, YZ içgörüleriSekmeli, yapışkan başlık, palet aksiyonları
Analitik15+ grafik, tarih aralığı seçici, rapor oluşturucuSekmeler: pipeline, ekip, seriler, e-posta, gelir
SerilerKoşul değerlendirmeli görsel oluşturucuNode tarzı akış + adım adım sihirbaz
OtomasyonlarTetikleyici → koşul → aksiyon kartlarıKart tabanlı, test modu, çalıştırma logu
Gelen kutusuBirleşik Gmail senkronu, thread görünümü, YZ taslak desteğiBölünmüş görünüm, klavye kısayolları (j/k, r, a)
AyarlarKullanıcılar (RBAC), webhook’lar, entegrasyonlar, çalışma alanıBölümlenmiş, satır içi doğrulama

Güç kullanıcısı özellikleri

  • Komut paleti (⌘K): lead, müşteri, görev ve aksiyonlarda fuzzy arama.
  • Global klavye kısayolları: panele git, lead’lere git, yeni lead, arama.
  • Kayıtlı görünümler: kullanıcı başına, paylaşılabilir; filtre, sıralama ve sütun yapılandırmasıyla.
  • Toplu aksiyonlar: çoklu seçimle ata, aşama değiştir, etiketle, dışa aktar veya sil.
10 Kilit Kararlar & Ödünleşimler

Her kestirme, alınmadan önce fiyatlandırıldı.

İnşayı şekillendiren sekiz karar — her birinin kabul edilen maliyetiyle.

KararÖdünleşimNeden seçtik
Çerez tabanlı dil, URL öneki yokDile doğrudan deep link yokDaha temiz UX; middleware neredeyse tüm durumları kapsar; paylaşılan bağlantılar ?lang= kullanır
Prisma driverAdapters (preview)En uç sürüm, olası kırıcı değişikliklerNeon serverless bağlantı havuzu gerektirir — alternatifi yok
NextAuth v5 betaAPI istikrarsızlığı, seyrek dokümantasyonJWT stratejisi + PrismaAdapter modern yol; v4 legacy
Çift YZ sağlayıcıİki kat entegrasyon yüzeyiGroq çok daha ucuz ve hızlı; Gemini daha iyi akıl yürütür; yedek dayanıklılık demek
shadcn/ui + özel token’larUI kit’e karşı bakım yüküTam tasarım sahipliği, vendor lock-in yok, token’lar Figma’ya taşınabilir
Varsayılan RSC, opt-in istemciEkip için öğrenme eğrisiVarsayılan performans; istemci sınırları “use client” ile explicit
Kurulum başına tek çalışma alanıKullanıcı başına çoklu çalışma alanı yokDaha basit zihinsel model: bir ajans, bir çalışma alanı; çoklu organizasyon ayrı deployment demek
Landing’de e-posta yakalama yokHuni girişinde daha az leadLinkedIn DM yüksek temaslı beta için çok daha iyi niteler; meraklı tıklamaları eler
11 Metrik Çerçevesi

Beta için hedefler — sonuç değil.

Ürün henüz lansman yapmadı, bu yüzden dürüstçe raporlanacak bir şey yok. Aşağıda, betanın yargılanacağı AARRR çerçevesi ve teknik sağlık çıtası var.

AşamaMetrikBeta hedefi
EdinmeAylık beta talebi50
EdinmeLinkedIn DM → davet gönderimi> %60
AktivasyonOnboarding kontrol listesi tamamlama> %70
Aktivasyonİlk lead içe aktarma (1. gün)> %80
AktivasyonGmail bağlama (3. gün)> %50
TutarlılıkDAU / MAU (4. hafta)> %40
TutarlılıkÖzellik benimsenmesi: YZ skorlaması> %60
TutarlılıkÖzellik benimsenmesi: seriler> %30
GelirMRR (lansman sonrası)3. ayda $5K/ay
GelirGenişleme (koltuk)Aylık > %20
TavsiyeKullanıcı başına gönderilen davet> 1,5
TavsiyeDavet → aktivasyon> %40
MetrikHedef
p95 API gecikmesi< 500ms
YZ analiz gecikmesi (p95)< 8sn
Hata oranı (5xx)< %0,1
Analiz edilen lead başına YZ maliyeti< $0,02
Derleme süresi (CI)< 5 dk
12 Çıkarımlar & Dersler

Dogfooding kendini amorti etti; istemler ayrı paket ister.

Avangard ekibi gerçek fırsatlarını ürünün içinden yönetiyor, geri bildirim döngüsü anlık. Tasarım sistemi yatırımı sayesinde yeni sayfalar saatler içinde çıkıyor — buna karşılık YZ istemleri, E2E kapsamı ve herkese açık API’nin hepsi olması gerekenden geç geldi.

İşe yarayanlar

  • İlk günden dogfooding — gerçek fırsatlar, anlık geri bildirim döngüsü.
  • Özellik değil altyapı olarak YZ — skorlama, içgörüler ve seriler tek pipeline’ı paylaşıyor.
  • Tasarım sistemi yatırımı — özelleştirilmiş bileşenler sayesinde yeni sayfalar günler değil saatler içinde çıkıyor.
  • Baştan çok kiracılı yapı — sıfır migrasyon sancısı; izolasyon her sorguya gömülü.
  • Yerleşik gözlemlenebilirlik — YZ çağrı logları, sağlayıcı limitlerini kullanıcılardan önce yakaladı.

Farklı yapacaklarımız

  • Sitemap üretimini daha erken eklemek — dinamik rotalar manuel yapılandırma ister; SEO hazırlığı gecikti.
  • YZ istemlerini sürümlü ayrı pakete çıkarmak — manuel sürümlenen 2.000+ satır istem can yakıyor.
  • E2E kapsamına daha erken yatırım — geç eklenen Playwright testleri flaky CI demekti.
  • Tasarım token’larını Figma ile senkron tutmak — CSS tarafındaki token’lar tasarımcı dosyalarından sapıyor.
  • İlk günden herkese açık API — geç eklenen webhook’lar veri modelini şekillendirirdi.

Ajansa kattığı değer

Şirket içi bir araç olmanın ötesinde, bu inşa ajans genelinde bileşik getiri sağlıyor — ve aynı düşünce, müşterilerimize sunduğumuz yapay zekâ otomasyonları, dönüşüm optimizasyonu ve teknik SEO çalışmalarımıza aktarılıyor.

  • Portföy işi: full-stack, YZ, i18n, tasarım sistemleri ve CRO tek bir gösterimde.
  • Şirket içi araç: Avangard içinden yönetiliyor — gerçek gelir etkisi.
  • İşe alım sinyali: mühendisler bu stack’te çalışmak istiyor.
  • Müşteri sohbetleri: “bunu inşa ettik”, “Next.js biliyoruz”dan güçlü.

Staging sürümüne bakın

Beta özel, ancak staging deployment’i bu sayfada anlatılan landing hunisini gösteriyor. İnşa hakkında sorular için LinkedIn üzerinden ulaşın. LinkedIn.

Staging sitesini aç

İşletmeniz için böyle bir inşa ister misiniz?

Pipeline’ınızın nerede ağrıdığını anlatın — slayt destesi değil, ilk okumayla dönelim.