Vaka Çalışması

Çok Kategorili İlan Platformu — Araç, Emlak, İkinci El, Özel Ders

Aktif Kategori4+

Birden fazla dikey kategoriyi (araç, emlak, ikinci el, özel ders) tek platformda yöneten çok-kategorili klasifiye sistemi sıfırdan tasarlayıp canlıya aldık.

Müşteri Profili

Türkiye'de farklı dikey kategorilerde ilan platformları işletmek isteyen bir girişim. Tek bir niş kategoride değil; araç, emlak, ikinci el ve özel ders dikeylerini paralel açabilecek, ileride yeni kategorileri (evcil hayvan, iş ilanı, hizmet) eklenti gibi ekleyebilecek bir altyapı arıyorlardı. Tek bir hazır pazaryeri SaaS ürünü almaktan farkı, kategorilerin birbirinden bağımsız UX'e, ücretlendirmeye ve moderasyon politikasına sahip olmasıydı.

Sorun

Hazır pazaryeri SaaS çözümleri büyük klasifiye platformlarının ölçeğinde performans veya kategori derinliği sunmuyor. Her kategori için farklı şema gerekiyor — araç ilanında "yıl, motor hacmi, vites" zorunlu, emlakta "m², oda sayısı, ısıtma tipi", özel derste "ders seviyesi, online/yüzyüze, fiyat/saat". Bunu tek "custom fields" tablosuna sıkıştırırsanız arama performansı çöker.

Türkiye coğrafyasında lokasyon kritik: "yakınımdaki ilanlar" senaryosu en çok kullanılan akış. Hazır pazaryeri SaaS'larının PostGIS desteği yüzeysel; ilçe / mahalle bazlı filtreleme ve harita üzerinde clustering çoğunda yok. ElasticSearch entegrasyonu opsiyonel ve genelde tek-kategori varsayımıyla geliyor.

Moderasyon büyük baş ağrısı: ikinci el kategorisinde sahte ürün, spam, telefon-only fraud, kategori dışı içerik. Tüm bunları manuel moderasyon ekibiyle kapatmak hem maliyetli hem yavaş. AI moderasyon hazır pazaryeri SaaS'larında ya hiç yok, ya da çok yüzeysel ("küfür filtresi" düzeyinde).

Ödeme tarafında premium üyelik (ilan öne çıkarma, paket ilan, kurumsal mağaza) ve gold/silver paket farklılaştırması; hazır pazaryeri SaaS'ları genelde tek tip ödeme akışı sunuyor.

Çözümümüz

5 aşamalı bir mimari kurduk.

1. Domain Modeling (Kategori-Özel Şema)

Her kategoriyi ayrı domain modeli olarak tasarladık. Ortak base ilan tablosu (id, başlık, açıklama, kullanıcı, lokasyon, görsel, durum, fiyat) + kategori-özel detay tablosu (vehicle_listings, realestate_listings, tutoring_listings, secondhand_listings). Yeni bir kategori eklemek, yeni tablo + yeni form bileşeni + yeni filtre tanımı demek; mevcut kategorileri etkilemiyor.

2. Hibrit Arama Altyapısı

Kategori-özel filtreler ve metin arama için modern bir full-text search motoru; lokasyon (yakınımdaki, mahalle bazlı) PostgreSQL + PostGIS üzerinde. Arama backend'i iki kaynağı paralel sorgulayıp birleştiriyor — farklı kategori filtreleri ve geo-query tek omurgada yaşıyor. Harita üzerinde clustering (zoom seviyesine göre noktalar gruplanır) PostGIS ST_ClusterDBSCAN ile yapılıyor.

3. AI Moderasyon (Görsel + Metin)

Yeni gelen her ilan moderasyon kuyruğuna düşmüyor — bunun yerine iki katmanlı AI moderasyon: hızlı tier (kural tabanlı: telefon numarası açık, yasaklı kelime, kategori uyumu) ve derin tier (vision-language model ile görsel analiz: kategori uyumu, "stok görseli mi gerçek ürün mü", uygunsuz içerik tespiti). Şüpheli ilanlar insan moderatör kuyruğuna; net olanlar otomatik yayında. AI moderasyonun amacı spam/scam riskini düşük tutarken moderatör operasyon yükünü makul tutmak.

4. Premium Üyelik + Boost Motoru

İlan öne çıkarma (1 günlük boost, 7 günlük top, anasayfada vurgu), paket ilan (10 / 25 / 100 ilan paketi), kurumsal mağaza (galeri sayfası, marka logosu, sınırsız ilan) gibi katmanları Stripe ve Iyzico ile entegre ettik. Boost durumu arama sıralama algoritmasına ağırlık olarak giriyor — "öne çıkmış ilan" yapay bir bant değil, gerçek sıralama avantajı.

5. Multi-Tenant Admin

Her kategori için ayrı moderasyon paneli, raporlama, kampanya yönetimi. Aynı admin altyapısı; sadece "vehicle moderator" rolündeki bir kullanıcı emlak ilanlarına dokunamıyor. Yeni kategori eklendiğinde admin tarafında otomatik yeni sekme açılıyor.

Teknik Stack
Next.js + TypeScript (web)Node.js / NestJS (API)PostgreSQL + PostGISFull-text search engine (klasifiye arama)Redis (cache + queue)Cloudflare R2 (medya storage)Sharp (görsel pipeline + thumbnail)Vision-language model (AI moderasyon)Stripe + Iyzico (premium üyelik)Mapbox (harita + clustering)Sentry + Datadog (observability)Docker / Kubernetes

Tasarım & Altyapı Sonuçları

  • 4+ aktif kategori canlı: araç, emlak, ikinci el, özel ders — yeni kategori eklemek artık haftalar değil günler meselesi
  • Ölçeklenebilir arama altyapısı modern bir full-text search motoru + PostGIS hibridi üzerinde kuruldu; kategori-özel filtreler ve geo-search aynı omurgada
  • AI moderasyon pipeline'ı iki katmanlı: hızlı kural tabanı net olanları otomatik yayınlıyor, vision-language model sadece görsel şüpheli içeriği inceliyor — moderatör ekibi sadece şüpheli kuyruğuna bakıyor
  • Premium üyelik + boost motoru Stripe + Iyzico ile entegre; boost gerçek sıralama avantajı olarak çalışıyor
  • Multi-tenant admin sayesinde her kategori için ayrı moderasyon, raporlama ve yetki katmanı

Platform yeni faaliyete geçti, kullanıcı tabanı genişliyor.

Mimari Tercihlerin Önemi

Üç teknik karar fark yarattı. Birincisi, her kategoriyi ayrı şema + ayrı form + ayrı filtre yapısı olarak tasarlamak — hazır pazaryeri SaaS'larının düştüğü "tek custom fields tablosu" tuzağına düşmedik; arama hızlı kalıyor. İkincisi, full-text search motorunu metin/filtre, PostGIS'i lokasyon için ayırmak — her ikisini de zorlayarak değil, güçlü oldukları yerde kullandık. Üçüncüsü, AI moderasyonu iki katmanlı yapmak — hızlı kural tabanı net trafiği temizliyor, vision modeli sadece görsel şüpheli olana bakıyor, hem maliyet hem yanıt süresi makul.

Benzer Bir Proje Konuşalım

Çok kategorili bir ilan platformu, niş bir pazaryeri ya da yatay klasifiye platformu planlıyorsanız 30 dakikalık ücretsiz keşif görüşmesi yapalım.