Supabase'i Neden Varsayılan Backend'imiz Olarak Kullanıyoruz (ve Kullanmadığımız Zamanlar)
Her yeni proje aynı soruyla başlar: backend hangi olacak? Geçtiğimiz bir yıl boyunca varsayılan cevabımız Supabase oldu ve bu, müşterilerimizin yüzlerce saati ve binlerce doları tasarrufu sağladı. Ancak her zaman doğru cevap değildir. İşte karar alma çerçevemiz.
Supabase size ücretsiz olarak ne sağlıyor
Supabase, PostgreSQL üzerine inşa edilmiş açık kaynaklı bir Firebase alternatifidir. Hemen kullanıma hazır olarak şunları elde edersiniz: kimlik doğrulama (e-posta, OAuth, magic linkler, telefon), şemanızdan otomatik olarak oluşturulan REST ve GraphQL API'sine sahip tam PostgreSQL veritabanı, WebSockets aracılığıyla gerçek zamanlı abonelikler, CDN ile dosya depolama, sunucusuz mantık için edge fonksiyonları ve ince taneli erişim kontrolü için Satır Düzeyi Güvenliği.
Tipik bir MVP için, bu, tek bir satır sunucu kodu yazmadan arka uç ihtiyaçlarının %80-90'ını kapsar. Ön ucunuz doğrudan Supabase ile istemci SDK'ları aracılığıyla iletişim kurar (JavaScript, Flutter, Swift, Kotlin ve Python için mevcuttur). Kimlik doğrulama, CRUD işlemleri, dosya yüklemeleri ve gerçek zamanlı güncellemeler hepsi hemen çalışır.
PostgreSQL temeli, Firebase'den önemli fark yaratıcıdır. Uygun ilişkisel veri modelleme, JOIN'li karmaşık sorgular, tam metin arama, JSON sütunları ve tüm PostgreSQL uzantı ekosistemi (jeocoğrafi veriler için PostGIS, yapay zeka gömmelemeleri için pgvector, zamanlanmış işler için pg_cron) elde edersiniz. Uygulamanız büyüdüğünde, kısıtlayıcı bir veritabanında mahsur kalmazsınız.
Gerçek maliyet tasarrufu: bir vaka çalışması
Kişisel finans uygulaması vaka çalışmamız olan FinFlow için, Supabase kullanmak özel bir Node.js arka ucu oluşturmakla karşılaştırıldığında yaklaşık 3 hafta geliştirme süresini tasarrufu sağladı. Kimlik doğrulama 3-4 gün alırdı. REST API yapı iskelesi 2-3 gün daha. Gerçek zamanlı abonelikler 2-3 gün. Dosya depolama ve CDN yapılandırması 1-2 gün. Satır Düzeyi Güvenliği özel bir ara yazılım katmanı oluşturmayı gerektirecekti.
Barındırma tarafında, Supabase ücretsiz katmanı çoğu MVP'yi rahatlıkla kapsar (500MB veritabanı, 1GB depolama, aylık 50.000 etkin kullanıcı). Ayda 25 dolardan başlayan Pro planı, önemli ölçeğe kadar üretim uygulamalarını yönetir. Bunu kendi PostgreSQL örneğinizi, kimlik doğrulama hizmetini, dosya depolama ve WebSocket sunucusunu çalıştırmayla karşılaştırın — yalnızca altyapı maliyetlerinde aylık minimum 100-300 dolar harcıyorsunuz.
Satır Düzeyinde Güvenlik: en az kullanılan özellik
Satır Düzeyinde Güvenlik (RLS), Supabase'in en önemli özelliğidir ve çoğu ekip tarafından ya göz ardı edilir ya da yanlış şekilde uygulanır. RLS, veritabanı düzeyinde erişim ilkeleri tanımlamanıza olanak tanır — kullanıcılar yalnızca kimliklerine uyan satırları okuyabilir veya yazabilir. Bu, ön uç kodunuzda bir hata olsa bile API'nizin yanlışlıkla veri sızdırmasını önler.
Her Supabase projesinde katı bir kuralı zorlarız: RLS, ilk günden itibaren her tabloda etkin olmalıdır ve her işlem için açık ilkeler gereklidir. İstisna yok. Bu, tablo başına 15-20 dakika kurulum ekler ancak tamamen bir güvenlik açığı sınıfını ortadan kaldırır. RLS devre dışı bırakılmış şekilde yayınlanan rakip uygulamaları gördük — bu da kimliği doğrulanmış herhangi bir kullanıcının başka bir kullanıcının verilerini okuyabileceği anlamına gelir. Bu hatayı yapmayın.
Supabase'in doğru seçim olmadığı durumlar
Supabase evrensel bir çözüm değildir. Bu senaryolarda özel arka uçlar kullanırız: veritabanı ilkelerine düzgün bir şekilde uymazlayan karmaşık iş mantığı (çok adımlı iş akışları, saga desenleri), birden fazla harici API'yi düzenlenmiş dizilerde entegre etmesi gereken uygulamalar, olay kaynağı veya CQRS desenleri gerektiren sistemler ve yoğun arka plan işleme gerektiren uygulamalar (video kod çözümleme, toplu ML çıkarımı).
Bu durumlar için, genellikle Prisma ORM ile bir Node.js API'si kurarız ve hala PostgreSQL'i veritabanı olarak kullanırız. Veri katmanı aynı kalır — sadece üstüne uygun bir uygulama katmanı ekleriz. Bazen hibrit bir yaklaşım kullanırız: kimlik doğrulama ve gerçek zamanlı için Supabase, karmaşık iş mantığı için özel bir API.
Supabase proje şablonumuz
Her yeni proje için kullandığımız dahili bir Supabase proje şablonu oluşturduk. İçeriği: e-posta ve Google OAuth ile standart kimlik doğrulama yapılandırması, ortak tablolarla (profiller, ayarlar, denetim_günlüğü) temel bir geçiş, tüm tablolar için RLS ilkeleri, Stripe webhook işleme ve e-posta gönderme için kenar işlevleri ve geliştirme verisi için bir çekirdek komut dosyası.
Bu şablon, bize yaklaşık 30 dakikada sıfırdan uygun güvenlikle çalışan bir kimlik doğrulamalı uygulamaya geçişi sağlar. Supabase'i bir sonraki projeniz için değerlendiriyorsanız ve üretim seviyesi bir kurulumun nasıl görüneceğini görmek istiyorsanız, bizimle iletişime geçin — yaklaşımımız konusunda sizi yürütmekten mutluluk duyarız.