Kendi ürünümüz2026PTLog
Spor salonları için çok kiracılı yönetim platformu ve üye PWA’sı.


- Proje
- Kendi ürünümüz
- Rolümüz
- Ürün · Mimari · Full stack · Çok kiracılı altyapı
- Süre
- 3 ay
01 / Projenin arkasında
Bir ihtiyaç. Düşünülmüş bir çözüm.
Zorluk
Antrenörler ölçüm ve seans kaydını not defterinde tutar; ilerlemeyi göstermek istediklerinde ellerinde bir şey olmaz. İlk sürüm tek antrenör içindi. Salonlar için sorun daha büyük: her salon kendi markası, kendi adresi ve üyelerinin telefonuna kurabildiği kendi uygulaması olan bir panel ister, ama ayrı ayrı kurulum sürdürülemez.
Yaklaşım
Tek kod tabanında çok kiracılı v2: middleware salon.ptlog.dev ya da özel alan adını kiracıya çözüyor; oturum JWT’sine kiracı, rol ve yetki claim’lerini Supabase auth hook’u yazıyor. Marka motoru her kiracının renklerinden, fontlarından ve logosundan PWA manifesti ve ikonları hostname bazında üretiyor (sharp). Modül kayıt defteri gezinme ve yetkileri manifestlerden kuruyor; paketler, seanslar, dersler, devamsızlık, antrenman ve ilerleme kendi migration serilerinde. Beş dil, üç parçalı hata sözlüğü, isteğe bağlı Resend, Upstash ve Web Push; eksik anahtarda sistem durumu kartı kırmızı gösterir, uygulama düşmez.
Sonuç
ptlog.dev yayında. Üye PWA’sı ana ekran, ilerleme, mesajlar ve asistanla; sahip ve personel paneli ayrı; süperadmin kiracıları, denetim kaydını ve sistem durumunu görüyor. Şema ve RLS testleri Docker olmadan yerel Postgres’te, 45 uçtan uca test üretim derlemesine karşı yaklaşık altı dakikada koşuyor.
02 / Ürünün içinde
Ekran ekran, deneyim.
Detayları görmek için bir ekranı açın.03 görsel
03 / Kapsam & detaylar
Deneyimi oluşturan detaylar.
- 01
Her salon kendi alt alan adı veya alan adıyla, kendi markasıyla
- 02
Kiracı, rol ve yetki claim’leri JWT’ye Supabase auth hook’uyla yazılıyor
- 03
Hostname bazında üretilen PWA manifesti ve ikonlar
- 04
Beş dil; 45 uçtan uca test üretim derlemesine karşı
- 05
Paketler, seanslar, dersler, devamsızlık, antrenman ve ilerleme modülleri
Teknoloji
Next.js / Supabase / PostgreSQL / PWA
ÜRÜNÜN İÇİNDEN
Ekranın arkasındaki mühendislik.
Bu projede geliştirdiğimiz sistemler ve çözdüğümüz somut problemler.
Claim’ler JWT’de
custom_access_token_hook kiracı, rol ve yetki claim’lerini oturum JWT’sine yazıyor; hook bağlı değilse middleware herkesi /switch’e yolluyor. Host çözümleme <slug>.<domain>/* isteklerini app/t/ altına yeniden yazıyor; *.localhost sayesinde yerelde ek hosts kaydı gerekmiyor.
Marka motoru
lib/branding kiracının renklerinden türetilmiş palet, fontlar ve sharp ile üretilen ikonlarla manifest.webmanifest ve icons/[spec] rotalarını hostname’e göre besliyor; üye ana ekranına salonun kendi uygulamasını ekliyor.
Docker’sız veritabanı testleri, üretime karşı e2e
npm run db:test yerel Postgres 17’de harness + migration + RLS ve güvenlik testlerini koşuyor. 45 uçtan uca test üretim derlemesine karşı gerçek Supabase projesinde, her turda sıfırdan kurulan e2e slug’lı salonla; art arda iki kez düşen test kırıktır, bir kez düşen ağdır (Karar 65).
Sıradaki fikir sizin.
Sizin ürününüz için ne yapabiliriz?
İlk sürümden büyüyen platformlara; tasarım, geliştirme ve yayın sürecini birlikte planlayalım.
Türkiye’den Amerika, İngiltere, Avustralya ve dünyanın her yerine.