Restoran & F&B · Kendi Ürünümüz · B2B SaaS

Forchetto — Restoran Zincirleri için Yönetim Platformu

Masa, menü, sipariş ve mutfak akışını tek çatıda toplayan; Avrupa pazarına hazırladığımız multi-tenant restoran SaaS.

Rol
Kendi ürünümüz · Ürün & Mühendislik
Stack
Next.js · TypeScript · AWS Lambda · Aurora PostgreSQL · Cognito · SST
Forchetto restoran yönetim dashboardRestoran yönetim panosu: sidebar, günün özeti istatistikleri, masa planı ve aktif sipariş listesiPanoMasalarSiparişlerMenüMutfakRaporlarBBella VistaBeyoğlu ŞubesiBugün2 Ekim 2026, CumaSipariş ara…+ Yeni SiparişAktif masa14 / 22+3Günün cirosu₺24.8k+12%Bekleyen sipariş8kuyrukMasa planıSalonTeras4M1M22M3M43M5₺M6M74M8M92M10M116M12M132M14₺M15M16BoşDoluHesapRezerveAktif siparişler8M5Pizza Margherita +24dk önceHazırM12Carbonara +37dk önceMutfaktaM3Tiramisu +12dk önceMutfaktaM8Calzone +411dk önceServis

Parçalı araçların yorduğu bir sektör

Avrupa'daki bağımsız restoranlar ve küçük zincirler günlük operasyonu beş-altı farklı aracı yan yana koyarak yönetiyor: POS bir markadan, menü yönetimi başka bir SaaS'ten, mutfak ekranı bambaşka bir cihazdan, raporlar Excel'den. Her araç ayrı satın alınıyor, veri bir diğerine geçmiyor, fiyatlandırma özellik başına ekleniyor. Tek bir restoran için bu kurgu zaten pahalı; bir marka iki-üç şubeye ulaştığında tamamen tıkanıyor.

Forchetto'yu bu boşluğu kapatmak için başlattık. Masa planından menü yönetimine, garsonun sipariş alışından mutfaktaki akışa kadar bir restoran gününün operasyonel omurgasını tek bir platforma taşıyoruz. Hedef pazarımız Avrupa — birden fazla ülkedeki pilot restoranlarla canlıya almayı planlıyoruz.

“Multi-tenancy ve güvenliği sonradan değil, ilk commit'ten itibaren mimariye yerleştirmek.”

Yaklaşımımız

Forchetto'yu bir müşteriye özel bir uygulama olarak değil, baştan satılabilir bir SaaS olarak tasarladık. Bu, kurguyu baştan değiştiriyor: tenant izolasyonu, altyapı maliyeti, çoklu ortam yönetimi ve kimlik doğrulama gibi konuların MVP sonrasına ertelenmesi mümkün değildi — ilk mimari kararlarla birlikte masadaydılar.

Ürünü iki paralel katmanda geliştirdik: AWS-native serverless bir backend (Lambda, Aurora PostgreSQL, Cognito, SST ile infrastructure-as-code) ve mock veri üzerinde ilerleyen bir Next.js frontend. Frontend MVP tamamlandıktan sonra bu iki katmanı birbirine bağlamaya başladık; şu an entegrasyon aşamasındayız.

Teknik Kararlar

1

Row-Level Security ile tenant izolasyonu

Multi-tenant bir SaaS'te en yaygın iki yaklaşım, tenant başına ayrı veritabanı veya ayrı şema açmaktır. Biz üçüncü yolu seçtik: tek şema, tek tablo seti ve PostgreSQL'in Row-Level Security özelliği ile satır düzeyinde izolasyon. Her tablo tenant_id taşıyor, her sorgu Postgres session'ındaki tenant kimliğine göre otomatik filtreleniyor. Bu sayede "yanlış restoran yanlış veriyi göremez" garantisi uygulama katmanında unutabileceğimiz bir if-else'e değil, veritabanının kendi erişim denetimine bağlı. Yeni bir restoran onboard etmek ne yeni şema açılmasını ne de yeni veritabanı provisioned edilmesini gerektiriyor; bir satır eklemek yetiyor.

2

AWS serverless stack: Lambda + Aurora Serverless v2 + RDS Proxy

Erken aşama bir SaaS'in trafiği hem öngörülemez hem de zamanla kayıp sıçramalarla büyür. Sürekli çalışan bir backend sunucusu bu profile uyumsuz. Lambda'yı API katmanı, Aurora Serverless v2'yi otomatik ölçeklenen veritabanı olarak seçtik — düşük yükte neredeyse maliyet üretmeyen, zirve saatlerde kendiliğinden ölçeklenen bir profil. Serverless Postgres'in klasik bağlantı havuzlama sorununu RDS Proxy ile çözdük: Lambda'nın her çağrıda yeni bağlantı açması yerine Proxy üzerindeki havuzlanmış bağlantıları kullanıyoruz. Bu, Aurora'yı tüketmeden binlerce eşzamanlı Lambda çağrısına izin veriyor.

3

Cognito + merkezileşmiş AuthGuard

Kimlik doğrulamayı Amazon Cognito'ya devrettik; token yönetimi, parola politikaları, MFA ve forgot-password akışlarını sıfırdan yazmak bir tasarruf değil, risk ve bakım yüküdür. Frontend tarafında auth kontrolünü sayfa sayfa dağıtmak yerine tek bir AuthGuard katmanında topladık: giriş yapılmamış kullanıcı için redirect, rol kontrolü ve tenant doğrulaması bu tek noktada yürüyor. Yeni bir sayfa eklerken auth akışını yeniden kurmak gerekmiyor; AuthGuard altındaki tree'ye yerleştirmek yetiyor.

4

Tüm altyapının SST ile kod olarak tanımlanması

Lambda fonksiyonları, VPC yapılandırması, Aurora cluster, RDS Proxy, Cognito user pool, CloudFront dağıtımı — hepsi SST ile TypeScript olarak tanımlı. Dev, staging ve production ortamlarının her biri tek bir komutla ayağa kalkıyor ve birbirinin aynısı. Çoklu ortam yönetimini AWS konsolundan manuel tıklamalarla değil, PR'da gözden geçirilebilen kodla yapmak; bir ortamda çalışan bir şeyin diğerinde neden çalışmadığını diff ile görebilmek, erken aşama bir SaaS için beklediğimizden değerli bir disiplin oldu.

Arayüzden

Forchetto garson tablet ekranıGarsonun masada sipariş aldığı tablet görünümü - solda sepet, sağda menü ızgarasıMasa 7Salon · 4 kişiMEVCUT SİPARİŞMargherita × 2₺260Carbonara × 1₺145Limonata × 2₺90Toplam₺495Mutfağa GönderAna yemekBaşlangıçTatlıİçecekMargheritaMozzarella, fesleğen₺130CarbonaraPancetta, parmesan₺145RisottoMantar, parmesan₺160LasagnaDana, béchamel₺175PolloIzgara tavuk₺185SteakDana bonfile₺320
Garsonun masada aldığı siparişi menüden sepete taşıyıp birkaç dokunuşla mutfağa göndermesi.
Forchetto mutfak ekranıMutfak KDS ekranı - gelen siparişlerin kart görünümü, durum rozetleri ve süreleriyleMutfak4 aktif19:42M54dk2× Margherita1× CapreseHazırlanıyorM127dk1× Carbonara1× Lasagna3× LimonataHazırlanıyorM32dk1× TiramisuHazır İşaretleM811dk4× Calzone2× AranciataAcele
Gelen siparişlerin kuyruk görünümü — hazırlanıyor, hazır ve servis edildi durumlarıyla.
Forchetto QR menü ekranıMüşterinin masadaki QR kodu taradığında gördüğü menü - görüntüleme amaçlı, sipariş garson üzerinden geçerMasadaki QRMüşteri tararBella VistaMenü · Masa 7TümüPizzaTatlıMargheritaMozzarella, fesleğen₺130CarbonaraPancetta, parmesan₺145RisottoMantar, parmesan₺160Sipariş için garsonu çağırın
Müşterinin masadaki QR kodla ulaştığı menü — görüntüleme amaçlı; sipariş garson üzerinden geçiyor.

Durum & Sonuç

Forchetto'nun frontend MVP'si mock veri üzerinde tamamlandı: masa yönetiminden menü editörüne, garson sipariş akışından mutfak ekranına ve QR menü görüntülemesine kadar hedeflediğimiz operasyonel akışların hepsi UI olarak çalışıyor. Backend tarafında da aynı akışları karşılayan Lambda uç noktaları, RLS politikaları ve Cognito yapılandırması hazır.

Şu an backend ile frontend arasındaki entegrasyonu bitiriyoruz. Bir sonraki adım, Avrupa'da pilot restoranlarla gerçek saha verisi üzerinde ürünü test etmek. Multi-tenant mimariyi, serverless maliyet profilini ve güvenlik katmanını sonradan eklemek yerine ilk sürümden itibaren yerleştirmiş olmak, bu geçişi bir refactor projesi değil, bir açılış süreci olarak yürütmemize izin veriyor.

SaaS olarak kurgulanacak bir ürün fikriniz mi var?

Kendi SaaS'inizi sıfırdan inşa etmeyi, mevcut bir ürünü multi-tenant mimariye taşımayı ya da AWS serverless altyapı kurmayı düşünüyorsanız konuşalım.

Teklif Alın