smaple.tr
niranar.com

niranar.com'un Teknik Mimarisi: Tatil Kiralama Platformunun Altyapısı

Mehmet Kurtipek
January 15, 2026
10 min read
niranar.com
teknik mimari
case study
vaka çalışması

Bir kullanıcı niranar.com'u açtığında ve "Bodrum'da havuzlu villa" araması yaptığında, ekranında saniyeler içinde düzinelerce ilan belirir. Bu listeyi döndürmek için arka planda bir istek zinciri çalışır: tarayıcı Next.js ile oluşturulmuş bir sayfayı yükler, arama sorgusu Supabase'e iletilir, PostgreSQL veritabanından sonuçlar çekilir, Leaflet harita bileşeni noktaları görselleştirir. Tüm bu akış, tek bir geliştiricinin yazdığı ve AWS Amplify üzerinde çalışan bir sistemde gerçekleşir.

Bu makalede niranar.com'un nasıl inşa edildiğini katman katman inceliyoruz. Platformun ne olduğuna dair geniş bir bakış için niranar.com Ürün Tanıtımı yazısını inceleyebilirsiniz. Hedef kitle geliştiriciler değil; teknik kararlara katkıda bulunan ürün sahipleri, yöneticiler ve potansiyel iş ortakları. Kod yazmak zorunda değilsiniz, ama mimarinin arkasındaki tercihleri anlamanız mümkün ve bu tercihler rastgele değil.

Tatil kiralama kategorisi teknik açıdan zorlu bir problem alanı. Binlerce mülk için anlık fiyat ve müsaitlik göstermek, coğrafi arama yapmak, mobil ve masaüstü deneyimi eşzamanlı desteklemek ve arama motorlarında görünür kalmak — bunların tamamı aynı sistemin üzerinden çalışıyor. Mimari bu gerekliliklere yanıt verecek biçimde tasarlanmış.

Mimari Genel Bakış

niranar.com üç temel katmana oturuyor: frontend (kullanıcının tarayıcısında çalışan katman), backend-as-a-service (veritabanı ve API'yi tek çatı altında sunan Supabase) ve hosting (AWS Amplify üzerinde barındırma). Bu üç katmanın her biri farklı bir sorumluluk üstleniyor ve birbirinden bağımsız olarak geliştirilebiliyor.

Bir sistemin mimarisi, o sistemin gelecekte ne kadar kolaylıkla büyüyebileceğini, bir sorun çıktığında nerede aranacağını ve bakım maliyetinin ne olacağını belirler. Bu yüzden mimari tercihler salt teknik değil, aynı zamanda iş kararlarıdır.

niranar.com'un mimari tercihleri, tek kişilik bir ekibin 300.000'den fazla ilanlık bir platformu sürdürülebilir biçimde yönetmesi üzerine tasarlanmış. Her seçimde "bu, tek kişilik bakıma uygun mu?" sorusu bir filtre işlevi görüyor.

Katmanlar Arası Akış

Bir kullanıcı arama yaptığında şu akış gerçekleşir:

Tarayıcı, Next.js App Router tarafından oluşturulmuş bir sayfa ister. Next.js, isteği sunucuda işler ve HTML oluşturarak tarayıcıya gönderir. Arama parametreleri (konum, tarih, misafir sayısı) Supabase'e sorgu olarak iletilir. Supabase, PostgreSQL veritabanına erişir ve eşleşen ilanları döndürür. Bu yanıt Next.js bileşenlerine akar, kullanıcı arayüzünde ilgili verilerle birlikte görüntülenir. Harita ekranında Leaflet devreye girer; konum bilgileri istemci tarafında görselleştirilir.

Bu akışın her adımı, mümkün olduğunca az sürtüşmeyle çalışmak üzere optimize edilmiş.

Bir mimariyi değerlendirmenin pratik yolu, karmaşıklık noktalarını sormaktır: "Yeni bir özellik eklemek istesem nereye dokunmam gerekir?" niranar.com mimarisinde katmanlar belirgin; her yeni özellik kendine ait katmana ekleniyor. Frontend değişikliği, veritabanı yapısını etkilemiyor. Veritabanı sorgusu optimize edildiğinde, frontend kodu değişmiyor. Bu ayrım, uzun vadede bakım maliyetini düşürüyor.

Frontend Katmanı: Next.js

niranar.com'un arayüzü Next.js ile inşa edilmiş. Next.js, React üzerine kurulu bir framework; React'ın bileşen modelini alıp üzerine performans ve SEO odaklı yetenekler ekliyor.

App Router ve React Server Components

Next.js'nin App Router mimarisi, sayfaların büyük bölümünü sunucuda oluşturuyor. Ziyaretçinin tarayıcısına hazır HTML gönderiyor; tarayıcı bu HTML'i anında görüntüleyebiliyor. React Server Components (RSC) kavramı da bu çerçeveye dahil: bazı bileşenler yalnızca sunucuda çalışıyor, tarayıcıya hiç gönderilmiyor. Bu, sayfanın boyutunu küçülterek yükleme hızını artırıyor.

Geliştiriciler için değil, ürün sahipleri için pratik anlamı şu: kullanıcı sayfayı açtığında içerik zaten hazır geliyor. Ekran önce boş kalıp sonra dolmuyor. Bu, kullanıcı deneyimi üzerinde doğrudan ölçülebilir bir etki yaratıyor ve arama motorları için de kritik.

Streaming SSR

Sunucu tarafı render (SSR) esnasında tüm veriler hazır olmadan sayfanın bir bölümü tarayıcıya gönderilebilir. Buna Streaming SSR deniyor. Büyük ilan listeleri için bu yaklaşım önemli: kullanıcı listenin ilk kısmını anında görür, kalan ilanlar arka planda yüklenirken sayfa donup kalmaz.

Tatil kiralama gibi arama ağırlıklı ürünlerde, arama sonucunun ne kadar çabuk görüntülendiği dönüşüm oranlarını doğrudan etkiler. Streaming SSR bu açıdan bir kullanıcı deneyimi yatırımı. Kullanıcı aramayı yapıp beklemeye girmez; içerik parça parça gelirken sayfa canlı hissettiriyor.

Skeleton Ekranlar

Veriler tam olarak gelmeden önce, ilanların şekillerini temsil eden gri bloklar görüntüleniyor. Bu "iskelet" görünümü (skeleton screens), kullanıcıya sistemin çalıştığını ve yüklemenin sürdüğünü gösteriyor. Aksi durumda boş bir sayfa "sayfa bozuk" yorumuna yol açabilir. Skeleton screens, algılanan performansı gerçek performanstan bağımsız olarak iyileştiriyor.

Bu teknik detay gibi görünse de gerçekte bir tasarım kararı: kullanıcıya belirsizlik yerine süreç gösterme tercihini yansıtıyor.

Tailwind CSS ile Mobil Uyum

Arayüzün görsel katmanı Tailwind CSS ile inşa edilmiş. Tailwind, utility-first adı verilen bir yaklaşımla çalışıyor: her stil kuralı küçük, tekrar kullanılabilir parçalar halinde tanımlanıyor ve doğrudan HTML bileşenlerine uygulanıyor.

Bunun pratik sonucu: niranar.com'un aynı kod tabanı telefon, tablet ve masaüstü ekranlara uyum sağlıyor. Ayrı bir mobil uygulama geliştirme maliyeti yok. Tek bir değişiklik tüm cihazlara yansıyor. Tatil araştırmasının büyük bölümü mobil cihazlarda yapılıyor; Tailwind ile inşa edilmiş responsive tasarım bu davranışı karşılıyor.

Backend Katmanı: Supabase BaaS

Backend-as-a-Service (BaaS) kavramı şöyle açıklanabilir: bir uygulamanın arka planı olan veritabanı, API ve kullanıcı yönetimi altyapısını kendiniz kurmak ve işletmek yerine, hazır hizmet olarak dışarıdan temin edersiniz. Siz ürün mantığı yazarsınız; altyapı servisi geri kalanı üstlenir.

niranar.com bu kategori için Supabase'i seçti.

Supabase Nedir?

Supabase, PostgreSQL veritabanını, otomatik oluşturulmuş API katmanını ve serverless fonksiyon çalıştırma kapasitesini tek platformda sunuyor. Açık kaynak tabanlı, Google Firebase'e alternatif olarak konumlanıyor — fakat ilişkisel bir veritabanı (PostgreSQL) üzerine kurulu olması, veri modelleme esnekliği açısından önemli bir fark yaratıyor.

niranar.com için Supabase şu yükleri üstleniyor:

  • Veritabanını barındırma ve yönetme
  • İlan sorgularını işleyen API katmanı
  • Serverless fonksiyon altyapısı

Neden BaaS?

Tek kişilik bir ekip için BaaS'ın gerçek anlamı şudur: bir veritabanı sunucusu kurmanıza, güvenlik yamalarını takip etmenize, yedekleme stratejisi tasarlamanıza gerek yok. Supabase bunu üstleniyor. Geliştiricinin zamanı, altyapı yönetimi yerine ürün özelliklerine ayrılabiliyor.

Bu tercih bilinçli. Supabase, niranar.com gibi hızlı gelişim döngüsü gerektiren ve tek kişilik bakıma optimize edilmesi gereken ürünler için özellikle uygun bir araç. Tek bir geliştirici daha az bakım yükü ile daha fazla ürün özelliği sunabiliyor.

PostgreSQL Veritabanı

Supabase'in altında, 30 yılı aşkın geliştirme geçmişine sahip PostgreSQL var. PostgreSQL, başta finansal sistemler ve büyük ölçekli platformlar olmak üzere kurumsal düzeyde güvenilirliğiyle kanıtlanmış açık kaynak bir veritabanı sistemi.

niranar.com'daki arama sorguları doğrudan PostgreSQL üzerinde çalışıyor. 300.000'den fazla ilan bu veritabanında tutuluyor. Kullanıcının yaptığı filtrelemeler — konum, tarih aralığı, misafir sayısı, havuzlu/denize yakın gibi özellik filtreleri, fiyat aralığı — her biri veritabanı sorgusuna dönüşüyor.

Önemli bir mimari tercih: niranar.com arama için ayrı bir arama motoru kullanmıyor. Elasticsearch veya Algolia gibi özel arama altyapılarına başvurulmuyor. Supabase PostgreSQL'in sorgu kapasitesi, beta aşaması için yeterli bulundu. Bu tercih sistemi basit tutuyor ve bakım maliyetini düşürüyor.

Serverless Fonksiyonlar

İş mantığı gerektiren operasyonlar — veri işleme, harici servislerle iletişim gibi görevler — Next.js API rotaları ve Supabase serverless fonksiyonlar aracılığıyla çalışıyor. Serverless mimarinin anlamı: bu fonksiyonlar sürekli çalışan bir sunucu gerektirmez. Talep geldiğinde devreye girer, iş tamamlandığında kapanır. Kaynak tüketimi işin gerçekleştiği süreyle sınırlıdır.

Harita Katmanı: Leaflet

niranar.com'da ilanlar harita üzerinde görüntülenebiliyor. Bu işlevsellik Leaflet ile sağlanıyor.

Leaflet, açık kaynak bir JavaScript harita kütüphanesi. Google Maps ya da Mapbox gibi ticari alternatiflere kıyasla iki temel avantajı var:

Maliyet: Leaflet'in API anahtarı ücreti yok. Ticari harita servisleri, trafik arttıkça maliyeti önemli ölçüde artırabilen kullanım bazlı fiyatlandırma modeliyle çalışır. 300.000'den fazla ilan içeren ve büyüme hedefli bir platform için bu fark anlamsız değil.

Bağımsızlık: Ticari bir servise bağımlılık olmadığından, servis koşullarının ya da fiyatlandırmanın değişmesi platformu etkilemiyor. Açık kaynak araç, uzun vadeli öngörülebilirlik sunuyor.

Harita üzerinde ilan noktaları istemci tarafında (kullanıcının tarayıcısında) render ediliyor. Bu, sunucu üzerindeki yükü azaltırken etkileşimli harita deneyimini koruyor.

Hosting: AWS Amplify

niranar.com AWS Amplify üzerinde barındırılıyor. Next.js uygulamaları için en yaygın tercih Vercel — Next.js'i geliştiren şirketin kendi hosting platformu. AWS Amplify bu denklemde bilinçli bir alternatif.

AWS Ekosistemi Entegrasyonu

AWS (Amazon Web Services) dünyanın en büyük bulut altyapı sağlayıcısı. AWS Amplify, AWS ekosistemi içinde frontend ve fullstack uygulamaları deploy etmek ve barındırmak için özelleşmiş bir hizmet.

AWS Amplify seçmenin stratejik anlamı: tüm altyapı tek bir bulut sağlayıcısı çatısı altında birleşiyor. Platform ilerledikçe, AWS'nin diğer hizmetlerine — veri işleme, mesaj kuyruğu, CDN veya gelişmiş analitik — entegrasyon gerektiğinde, aynı ekosistem içinde kalmak teknik sürtüşmeyi azaltır. Kimlik doğrulama, erişim yönetimi, faturalama tek merkezden yönetilir.

Maliyet Profili

Vercel'in fiyatlandırması trafik ve build sayısı arttıkça hızla yükselir. AWS Amplify, özellikle büyük ölçekte farklı bir maliyet eğrisi sunuyor. Büyüme hedefli bir platform için hosting maliyetinin öngörülebilirliği, teknik bir tercihten fazlası — bir iş kararı.

SEO ve Arama Motoru Görünürlüğü

niranar.com, Next.js SSR'ın sağladığı sunucu taraflı HTML'in üzerine iki önemli teknik standart ekliyor.

Schema.org Yapılandırılmış Verisi

Sayfanın başlık bölümünde schema.org formatında iki işaretleme var:

WebSite: Sayfanın bir web sitesi olduğunu, temel bilgilerini ve amaçını arama motorlarına makine okunabilir formatta bildiriyor.

SearchAction: Google'a bu sitenin arama işlevi sunduğunu belirtiyor. Bu işaretleme sayesinde Google, belirli koşullarda arama sonuçlarında site adının yanında bir arama kutusu gösterebiliyor. Kullanıcı Google'daki aramayı niranar.com içi aramaya dönüştürebiliyor — sayfaya hiç gitmeden.

Bu iki işaretlemenin birlikte uygulanması, tatil kiralama gibi rekabetin yoğun olduğu bir kategoride organik görünürlük için somut bir zemin oluşturuyor.

SSR'ın SEO Katkısı

Arama motorlarının JavaScript tabanlı dinamik içerikleri işleme kapasitesi sınırlıdır. Next.js SSR, her sayfanın içeriğini sunucu tarafında HTML'e dönüştürüyor. Arama motoru tarayıcıları bu hazır HTML'i alıyor ve indexleyebiliyor. Bu, özellikle 300.000'den fazla ilan sayfasının arama motorlarında keşfedilebilir olması için kritik.

Erişilebilirlik

Sitede bir erişilebilirlik partneri doğrulama etiketi bulunuyor. Bu, erişilebilirlik standartlarına uyum konusunda aktif bir çalışmanın göstergesi. Erişilebilirlik, hem geniş kullanıcı kesimine ulaşmak hem de yasal uyumluluk açısından giderek daha önemli hale geliyor.

Henüz İnşa Edilmeyenler: Disiplinli Beta Kapsamı

niranar.com şu an beta aşamasında. Platform, belirli özelliklerin bilinçli olarak kapsam dışında bırakıldığını açıkça belirtiyor. Bu şeffaflık, yazılım geliştirme disiplininin bir göstergesi.

Kullanıcı Kimlik Doğrulama Sistemi

Şu an kullanıcı kaydı ve oturumu yok. Birini mi değerlendiriyorsunuz? Bu bir eksiklik değil, beta aşamasına özgü bilinçli bir sınır. Kullanıcı yönetim sistemleri — güvenli parola depolama, oturum yönetimi, e-posta doğrulama — önemli miktarda geliştirme yatırımı gerektiriyor. Beta döneminde bu yatırım, çekirdeği oluşturan arama ve keşif işlevine ayrılmış.

Supabase, auth altyapısını da kapsama dahil ediyor — bu özelliği henüz kullanmayan niranar.com, hazır bir altyapının üzerine inşa edilen bir sisteme sahip. Kullanıcı girişi eklenmesi gereken gün geldiğinde teknik zemin zaten orada.

Ödeme Entegrasyonu

Rezervasyon akışı tamamlanmamış, ödeme sistemi kurulmamış. Bugün niranar.com üzerinden bir villayı keşfedip fiyatını görebilirsiniz; ama platformu ödeme yapamazsınız.

Bu tercih mantıklı: beta aşamasında platform, traveler ile mülk sahibini buluşturuyor ve ürün-pazar uyumunu test ediyor. Kullanıcıların platformu kullanıp kullanmadığını, hangi bölgelerde arama yaptığını ve hangi mülk tiplerini ilgi çekici bulduğunu öğrenmek, ödeme altyapısına yatırım yapmadan önce gereken bilgiyi sağlıyor.

Ödeme entegrasyonu, tahmin değil doğrulanmış talep üzerine inşa edilecek.

Yazılım geliştirmede yaygın bir hata, kullanılıp kullanılmayacağı belirsiz özellikler için büyük yatırımlar yapmaktır. niranar.com bu hatadan kaçınıyor. Beta kapsamı netleştirilmiş, odak dağıtılmıyor.

Tek Kişilik Mimari: Kısıtın Tasarıma Etkisi

300.000'den fazla ilan, çok boyutlu arama, harita entegrasyonu, EUR fiyatlandırma, SSR, schema.org yapılandırılmış verisi — tüm bunlar tek bir geliştiricinin yazdığı sistemde çalışıyor.

Bu gerçek, bir pazarlama iddiası değil; mimarinin açıklayıcı bir bağlamı. Tek kişilik ekip kısıtı, her teknoloji seçimini etkiliyor.

Supabase, altyapı yönetim yükünü dışarıya aktarıyor — geliştiricinin zamanı ürün özelliklerine ayrılabiliyor. AWS Amplify, hosting ve deployment sürecini standartlaştırıyor. Leaflet, harici ticari bağımlılığı ortadan kaldırıyor. Next.js App Router ve React Server Components, performans optimizasyonunu çerçevenin içine taşıyor — manuel performans ayarlaması gerektirmiyor.

Geliştirme sürecinde Claude Code (AI destekli geliştirme aracı) de kullanıldı. Bu araç, tek kişinin üretkenliğini katladı: mimari karar verme ile uygulama arasındaki süreyi kısalttı.

Her katmanda aynı prensip tekrarlanıyor: yönetim yükü düşük, öngörülebilir, tek kişinin kolaylıkla çalışabileceği araçlar.

Değerlendirme

niranar.com, sınırlı kaynaklarla ölçeklenebilir bir platform kurmanın düşünülmüş bir örneği. Seçilen her teknoloji — Next.js, Supabase, AWS Amplify, Leaflet — kendi başına güvenilir bir tercih. Ama asıl değer, bu tercihlerin nasıl bir araya getirildiğinde: her katman, tek kişilik bakıma uygun, yönetim yükü düşük, ürün geliştirme hızını önceliklendiriyor.

Beta aşaması, platforma kısıtlı değil disiplinli gözüyle bakılmasını gerektiriyor. Auth ve ödeme yok çünkü henüz gerekli değil. 300.000+ ilan var çünkü keşif ve arama işlevini ilk önce kanıtlamak gerekiyor.

Smart Maple bu altyapıyı tasarladı ve inşa etti. Teknoloji yığını kararlarının detayları, katman tasarımı ve kapsam sınırları, bu belgede özetlenen çerçevede yürütüldü.

Platform, Nisan 2026 beta lansmanına hazırlanıyor. Şu anki mimari bu aşama için doğru boyutta: gereksiz karmaşıklık olmadan, büyümeye hazır bir yapı. Kullanıcı girişi ve ödeme gibi sonraki aşama bileşenleri geldiğinde, mevcut altyapı bu eklentileri kaldıracak kapasitede tasarlanmış.

Related Articles

August 10, 2026

MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a Taşıma

Giriş: MLOps Nedir ve Neden Önemlidir? Makine öğrenmesi modelleri geliştirmek günümüzde nispeten kolaydır. Açık kaynak kütüphaneleri kullanarak son derece başarılı modeller oluşturabiliriz. Ancak bu modelleri production ortamına taşıyarak, ölçeklendirebilir, güvenilir ve sürdürülebilir şekilde çalıştırmak tamamen farklı bir hikayedir. Araştırmalara göre, veri bilimcileri tarafından geliştirilen makine öğrenmesi modellerinin %87'si hiçbir zaman production ortamına ulaşmaz. Bu başarısızlı

Read More
August 9, 2026

LLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]

LLM Fine-Tuning: Kurumsal Yapay Zeka Stratejisinin Temel Taşı Büyük dil modelleri (LLM), genel amaçlı metin üretimi ve anlama konusunda etkileyici performans sergiliyor. Ancak kurumsal ortamlarda belirli bir alan, terminoloji veya iş sürecine uyum sağlamaları gerektiğinde, genel bilgileri çoğu zaman yetersiz kalıyor. Bu noktada fine-tuning, yani ince ayar süreci devreye giriyor. Fine-tuning sayesinde mevcut bir temel modeli, kendi verileriniz ve ihtiyaçlarınız doğrultusunda özelleştirmek

Read More
August 8, 2026

Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI

Bilgisayarlı Görü Uygulamaları: Endüstriyel ve Medikal AI'nin Temel Teknolojisi Bilgisayarlı görü, makine öğrenmesinin en etkili alanlarından biridir. Türkiye'de yaşanan dijital dönüşüm sürecinde, özellikle üretim, sağlık ve lojistik sektörlerinde görü tabanlı otomasyon kritik hale gelmiştir. Smart Maple olarak Ankara'da geliştirdiğimiz çözümler, son beş yılda 150+ kuruluşunun üretim verimliliğini ortalama %35 oranında artırmıştır. Bu rehberde, bilgisayarlı görü teknolojisinin iş değeri

Read More