Junama Azerbaijan — lüks bebek arabası mağazasının sitesi
Polonya menşeli Junama markasının Azerbaycan mağazası için üç dilli ürün kataloğu. Next.js App Router ile geliştirildi ve tamamen statik olarak export ediliyor — 271 ürünün her biri build sırasında ayrı bir HTML sayfasına dönüşüyor, sipariş ise sitede değil, hazır mesajla WhatsApp'ta tamamlanıyor.
Canlı siteyi gör- Müşteri
- Junama Azerbaijan — Polonya menşeli Junama bebek arabalarının Azerbaycan satıcısı
- Rol
- Frontend geliştirme — ürün verisinin yapısı, katalog ve ürün sayfaları, üç dilli içerik sistemi, arama, animasyonlar, görsel optimizasyonu, statik build ve hostinge yayına alma.
- Stack
- Next.js · React · Tailwind CSS · Framer Motion
- Tarih
- Şubat 2026
- Dil
- 3 — AZ / EN / RU
- Sayfa
- 276
Katalog bu büyüklükte olduğunda asıl zorluk ürün sayısı değil, ürünlerin birbirine benzemesidir: 271 kalemin büyük kısmı aynı bebek arabasının başka bir rengi ya da «slim» sürümü. Sıradan bir listede bunlar 271 ayrı ürün gibi görünür — ebeveyn aynı modeli sayfalar boyunca tekrar tekrar görür, hangisinin hangisinin rengi olduğunu ise anlamaz. İkinci zorluk satışın kendisinde: bu fiyat seviyesinde kimse bebek arabasını tek tıkla sepete atıp ödemez — teslimat, aksesuar ve indirim her zaman sohbette netleşir. Yani sitenin görevi ödeme almak değil, sohbeti hazır bilgiyle başlatmak.
- Yedi kategoride 271 ürün: tekli bebek arabası, ikiz bebek arabası, oto koltuğu, beşik, aksesuar, oyuncak ve hediye kartı
- Katalogda kategori filtresi ve fiyata/ada göre sıralama
- Filtre ve sıralama durumu adresin kendisinde saklanıyor — bağlantı paylaşıldığında aynı liste açılıyor
- On ikişerlik «daha fazla göster» yüklemesi; bekleme anında iskelet kartlar gösteriliyor
- Üründen kataloğa dönüldüğünde önceki kaydırma konumu ve açılmış sayfa sayısı geri yükleniyor
- Tam ekran arama penceresi — ürün adını üç dilde aynı anda arıyor
- Ürün sayfasında on beşe kadar görselli galeri: küçük resimler ve ok gezinmesi
- Aynı seriden renk seçenekleri otomatik olarak birbirine bağlanıyor
- Seçilebilir aksesuarlar ve seçimle birlikte canlı güncellenen toplam tutar
- WhatsApp düğmesi — mesaj ürün adı, seçilen aksesuarlar ve toplam tutarla hazır açılıyor
- Her üründe teknik özellikler: ağırlık, tekerlek tipi ve garanti süresi
- Üç dil (AZ / EN / RU) — seçim tarayıcıda hatırlanıyor
- Marka hikâyesi, teknoloji ve iletişim sayfaları
Renk seçenekleri ayrı ürün, ama birbirini tanıyor
Her renk kendi sayfasında yaşıyor, çünkü alıcı arama motoruna genel model adını değil, «Junama Diamond S Line siyah» yazıyor — seçenekleri tek sayfaya toplasaydım, bu aramaların hepsi tek adrese yığılıp birbirini boğardı. Buna karşılık her ürüne bir seri alanı verildi: sayfa açıldığında aynı serideki tüm renkler otomatik olarak yan yana diziliyor. Sonuçta hem arama motoru her rengi ayrı görüyor hem de ziyaretçi kataloğa dönmeden rengi değiştirebiliyor.
Sipariş sitede değil, WhatsApp'ta tamamlanıyor
Sepet ve ödeme entegrasyonu kurmadım, çünkü bu fiyat seviyesinde satış her zaman sohbetle yürüyor: teslimat, stok, aksesuar ve indirim konuşuluyor. Bunun yerine ürün sayfasındaki düğme WhatsApp'ı önceden yazılmış bir mesajla açıyor — ürün adı, seçilen aksesuarlar ve toplam tutar mesajın içinde. Böylece sohbet «merhaba, fiyatı ne kadar?» yerine somut bir üründen başlıyor, satıcı da müşterinin neye baktığını sormadan biliyor.
271 sayfa build sırasında hazırlanıyor, ziyaretçi geldiğinde değil
Proje statik export modunda: build bittiğinde ortada 271 ürün sayfası dahil hazır HTML dosyaları kalıyor. Bunun pratik anlamı, sitenin çalışmak için Node sürecine, veritabanına veya API'ye ihtiyaç duymaması — sıradan bir statik hostingde barındırılabiliyor, aylık sunucu masrafı yok, çökecek bir şey de kalmıyor. Bedeli ise ürün değişikliğinin yeniden build gerektirmesi; bu kataloğun güncellenme sıklığında bu günlük bir sorun değil.
Aksesuar fiyatı mesaja kadar hesaplanıyor
Aksesuarları «bizimle iletişime geçin» listesi olarak vermek mümkündü, ama o zaman müşteri toplam tutarı bilmeden yazar ve sohbetin ilk yarısı fiyatı netleştirmeye gider. Burada aksesuar seçildiğinde tutar anında güncelleniyor ve aynı rakam WhatsApp mesajına düşüyor. Bu bir ödeme sistemi değil, ama alıcının asıl sorusuna — «hepsi birlikte ne kadar tutuyor» — siteden çıkmadan cevap veriyor.
Kataloğun durumu adreste saklanıyor
Seçilen kategori ve sıralama bileşenin iç belleğinde değil, adresin kendi parametrelerinde saklanıyor. Bunun üç sonucu var: tarayıcının «geri» düğmesi beklendiği gibi çalışıyor, satıcı müşteriye doğrudan «ikiz bebek arabaları, ucuzdan pahalıya» listesinin bağlantısını gönderebiliyor ve o bağlantı her zaman aynı listeyi açıyor. Filtre durumu yalnızca bellekte kalsaydı, paylaşılan bağlantı her seferinde başlangıç listesini gösterirdi.
Kataloğa dönmek listeyi sıfırlamamalı
271 ürünlü bir katalogda en sinir bozucu senaryo şudur: ziyaretçi uzun uzun aşağı kaydırır, bir ürüne girer, geri döner ve kendini yeniden en üstte, ilk on iki ürünün yanında bulur. Bu yüzden hem kaydırma konumu hem de açılmış sayfa sayısı oturumda saklanıyor ve dönüşte geri yükleniyor. Ziyaretçi kaldığı yerden devam ediyor — yani kataloğu bir kez değil, sonuna kadar geziyor.
Tüm görseller WebP, ilk kartlar öncelikli
Bebek arabası sitesi aslında bir fotoğraf sitesi: her ürünün on beşe kadar görseli var. Tüm galeri WebP formatına dönüştürüldü ve katalogda yalnızca ilk dört kart öncelikli yükleniyor, gerisi ekrana yaklaştığında geliyor. Sonuçta mobil kullanıcı kataloğu açtığında 271 ürünün görsellerini değil, ekranındaki birkaçını indiriyor.
Üç dil tek adreste — taviz bilinçli olarak verildi
Arayüz üç dilde, seçim ise tarayıcıda saklanıyor: her dilin ayrı bir adresi yok. Bunun bedeli, arama motorlarının siteyi tek dilde görmesi. Bu projede taviz kabul edilebilir, çünkü ürün adları — «Junama Candy Blue Duo» — üç dilde de aynı; yani arama trafiğini taşıyan ana anahtar kelimeler dilden bağımsız. İçerik metinleri bir arama kanalına dönüştüğünde dil rota seviyesinde ayrılmalı; bu planlanmış bir sonraki adım.
Site junama.az adresinde yayımlanıyor. 271 ürünün her biri için ayrı bir statik sayfa — kendi başlığı, açıklaması ve paylaşım görseliyle — build sırasında oluşuyor; site çalışmak için hiçbir sunucu sürecine ihtiyaç duymuyor, bu yüzden sıradan bir statik hostingde barındırılıyor. Ölçülmüş performans rakamları henüz eklenmedi; alınır alınmaz buraya yazılacak.
- Sitede online ödeme var mı?
- Hayır, bilinçli olarak yok. Ürün sayfasındaki düğme WhatsApp'ı hazır bir mesajla açıyor — mesajda ürün adı, seçilen aksesuarlar ve toplam tutar yer alıyor. Bu fiyat seviyesinde satış zaten sohbetle kapandığı için site sohbeti hazır bilgiyle başlatıyor.
- 271 ürün siteyi yavaşlatmıyor mu?
- Yavaşlatmıyor, çünkü hiçbir sayfa tüm kataloğu göstermiyor. Katalog on ikişerlik parçalarla yükleniyor, görseller yalnızca ekrana yaklaştığında geliyor ve her ürün sayfası build sırasında ayrı, hazır bir HTML olarak oluşuyor — ziyaretçi geldiğinde hesaplanacak bir şey kalmıyor.
- Site hangi hostingde çalışıyor?
- Sıradan bir statik hostingde. Proje statik export modunda geliştirildi, yani build sonucunda yalnızca HTML, CSS, JavaScript ve görsel dosyaları kalıyor — Node süreci, veritabanı ve API gerekmiyor.
- Aynı bebek arabasının renkleri nasıl bulunuyor?
- Her ürünün bir seri alanı var. Ürün sayfası açıldığında aynı serideki tüm renkler otomatik olarak seçenek olarak gösteriliyor — kataloğa dönmeye gerek kalmıyor.
- Yeni ürün eklemek için ne gerekiyor?
- Ürünler projenin veri dosyasında saklanıyor: yeni kalem ekleniyor ve site yeniden build ediliyor. Yönetim paneli yok, çünkü katalog mevsimsel olarak güncelleniyor — günlük düzenleme ihtiyacı doğarsa içerik yönetimi ayrıca kurulması gereken bir adım.
- Siteyi kim geliştirdi?
- Sitenin tamamı — ürün verisinin yapısı, katalog ve ürün sayfaları, üç dilli içerik sistemi, arama, animasyonlar ve yayına alma — Nurlan Qadirov tarafından geliştirildi.
Projenizi konuşalım — genellikle aynı gün yanıt veriyorum.
Nurlan Qadirov — Baku, Azerbaijan