Açık kaynaklı Firebase alternatifi Supabase ile projelerinizi hızlandırın. PostgreSQL tabanlı modern BaaS platformu hakkında detaylı rehber.
Supabase Nedir?
Supabase, açık kaynaklı bir Firebase alternatifidir ve geliştiricilere hızlı bir şekilde ölçeklenebilir uygulamalar oluşturma imkanı tanır. PostgreSQL veritabanı üzerine inşa edilmiş olan Supabase, gerçek zamanlı yetenekler, kimlik doğrulama, depolama ve edge functions gibi özellikler sunar.
2020 yılında kurulan Supabase, kısa sürede açık kaynak topluluğunun büyük ilgisini çekmiştir. Firebase'in NoSQL yaklaşımının aksine, Supabase güçlü bir ilişkisel veritabanı olan PostgreSQL kullanır.
Supabase'in Temel Özellikleri
1. PostgreSQL Veritabanı
Supabase, tam özellikli bir PostgreSQL veritabanı sunar. SQL sorgularının tüm gücünden yararlanabilir, ilişkisel veri modelleri oluşturabilir ve PostgreSQL'in zengin eklenti ekosistemini kullanabilirsiniz.
2. Realtime Subscriptions
Veritabanındaki değişiklikleri gerçek zamanlı olarak dinleyebilirsiniz. INSERT, UPDATE ve DELETE işlemlerinde anlık bildirimler alabilirsiniz.
3. Authentication
E-posta/şifre, sosyal login (Google, GitHub, Discord vb.), magic link ve telefon doğrulama gibi çeşitli kimlik doğrulama yöntemleri sunar.
4. Storage
Büyük dosyaları depolamak ve yönetmek için S3 uyumlu bir nesne depolama sistemi sunar. Resimler, videolar ve belgeler için idealdir.
5. Edge Functions
Deno tabanlı sunucusuz fonksiyonlar yazarak özel backend mantığı oluşturabilirsiniz. Bu fonksiyonlar dünya genelinde dağıtılmış sunucularda çalışır.
6. Row Level Security (RLS)
PostgreSQL'in RLS özelliği sayesinde, veritabanı düzeyinde güvenlik politikaları tanımlayabilirsiniz.
▶ Summit '25 Sahnesinden
“Bir işi eğer daha küçük bir modelle yapabiliyor isem, neden daha fazla para ödeyeceğim bir modelle yapayım?”
— Emir Hardal
Konuşmanın tamamını izleyin →
Supabase vs Firebase
| Özellik | Supabase | Firebase |
|---|---|---|
| Veritabanı | PostgreSQL (SQL) | Firestore (NoSQL) |
| Açık Kaynak | Evet | Hayır |
| Self-hosting | Mümkün | Mümkün değil |
| Pricing | Daha öngörülebilir | Kullanıma göre değişken |
| SQL Desteği | Tam | Sınırlı |
Supabase'in Zayıf Yönleri ve Dikkat Edilmesi Gerekenler
Supabase'i production'da uzun süre kullanınca tanıtım sayfalarında yazmayan bazı gerçeklerle karşılaşıyorsunuz. Aşağıdaki uyarılar gerçek proje deneyimlerinden süzüldü. Hiçbiri "Supabase kullanmayın" demek değil; ama bu başlıkları önceden bilmek, kritik bir anda saatlerce debug yapmaktan kurtarır.
Hesap erişimini tek kimliğe bağlamayın
Supabase hesabınızı GitHub OAuth ile açtıysanız, dashboard erişiminiz o GitHub hesabının varlığına bağlıdır. Bağlı hesap silinir, değişir veya erişilemez olursa projeniz çalışmaya devam eder ama yönetim paneline giremezsiniz. Kurtarma tamamen destek ekibine kalır ve günler sürebilir.
Çözüm: Organizasyona birden fazla üye ekleyin, service role key gibi erişim anahtarlarını bir şifre yöneticisinde saklayın ve düzenli tam yedek alın (şema, veri ve storage dahil). Felaket senaryosunda sizi dashboard değil, elinizdeki yedek ve anahtarlar kurtarır.
RLS güçlü ama sessiz hata üretir
Row Level Security, Supabase'in en değerli özelliği; aynı zamanda en sinsi hata kaynağı. İki tablonun policy'leri birbirine referans verirse sonsuz döngü oluşabilir ve sorgular anlaşılmaz hatalarla düşer. Daha sinsisi: sunucu tarafındaki bir API route'unda anon client kullanırsanız, RLS'in gizlediği satırları kod "yok" sanır. Var olan kaydı görmeyen bir ön kontrol, unique constraint hatasına ve kullanıcıya anlamsız bir "bir şeyler ters gitti" mesajına dönüşür.
Çözüm: Policy'leri gerçek rollerle (anon, authenticated) ayrı ayrı test edin. Server route'larında hangi client'ın hangi satırları görebildiğini bilinçli seçin ve duplicate hatalarını (Postgres 23505) kullanıcı dostu yanıtlara çevirin.
Auth ile kendi tablolarınız arasındaki köprü kırılgandır
Supabase Auth kullanıcıları auth.users şemasında yaşar; uygulamanızın profil tablosuyla senkron genellikle bir trigger'a emanettir. Bu köprü bozulduğunda "hesap var ama giriş yapamıyor" veya "şifre sıfırlama böyle bir hesap yok diyor" gibi, teşhisi saatler alan tutarsızlıklar ortaya çıkar.
Çözüm: Trigger ve foreign key tasarımını migration dosyalarıyla sürümleyin, auth akışını (kayıt, giriş, şifre sıfırlama) her önemli değişiklikten sonra uçtan uca test edin.
Dashboard'a bağımlı kalmayın
Tablo ve policy değişikliklerini yalnızca dashboard'un SQL editöründen yapmak rahat görünür; ta ki dashboard'a erişemediğiniz güne kadar. O gün migration geçmişiniz yoksa elinizde ne şemanın kaydı olur ne de değişiklikleri tekrarlamanın bir yolu.
Çözüm: Her şema değişikliğini repo'daki migration dosyalarına yazın. Supabase CLI veya Management API ile dashboard'suz da SQL çalıştırabileceğinizi bilin; bu yolu bir kez önceden denemiş olmak kriz anında fark yaratır.
Derinleştikçe çıkış maliyeti artar
RLS policy'leri, Auth ve storage'a ne kadar derin bağlanırsanız başka bir altyapıya taşınmak o kadar zorlaşır. Bu, Supabase'e özgü bir kusur değil; her backend-as-a-service için geçerli bir denge. Yine de karar verirken çıkış eforunu da hesaba katmakta fayda var.
Çözüm: Veri yedeklerinizi düzenli ve eksiksiz alın (auth kullanıcıları dahil), iş mantığını mümkün olduğunca uygulama katmanında tutun ve kritik akışlarda Supabase'e özgü özelliklere dokunan kodu tek bir katmanda toplayın.
Supabase vs Neon
Firebase kıyası NoSQL ile Postgres arasındaki bir tercihti; Neon kıyası ise iki Postgres platformu arasında bir katman tercihi. Neon yalnızca veritabanı motorunu serverless mimariyle sunar, Supabase ise veritabanının üstüne kimlik doğrulama, dosya depolama ve realtime katmanlarını ekler. Fiyat modelleri de ayrışır: Neon tamamen kullandıkça öde mantığıyla çalışırken Supabase sabit planlarla ilerler.
Kısa özet: Hazır auth ve storage ile hızla ürün çıkarmak istiyorsanız Supabase, yalnızca esnek ve maliyeti kullanımla ölçeklenen bir Postgres arıyorsanız Neon daha doğru adres. İkisini birlikte kullanan ekipler de var: ana ürün Supabase'de, deneysel dallar ve AI agent iş yükleri Neon'da. Detaylı inceleme için
Neon rehberimize göz atabilirsiniz.
Supabase Nasıl Kullanılır?
1. Proje Oluşturma
supabase.com adresinden hesap oluşturun ve yeni bir proje başlatın. Projeniz için bir bölge seçin ve veritabanı şifrenizi belirleyin.
2. Tablo Oluşturma
SQL Editor veya Table Editor kullanarak tablolarınızı oluşturun. PostgreSQL'in tüm veri tiplerini ve özelliklerini kullanabilirsiniz.
3. API Kullanımı
Supabase, tablolarınız için otomatik olarak RESTful API ve GraphQL endpoint'leri oluşturur. JavaScript, Python, Flutter ve diğer diller için istemci kütüphaneleri mevcuttur.
4. Güvenlik Ayarları
Row Level Security (RLS) politikaları oluşturarak verilerinize kimlerin erişebileceğini kontrol edin.
Supabase'in Avantajları
- Açık Kaynak: Tüm kod GitHub'da mevcuttur.
- Self-hosting: Kendi sunucularınızda çalıştırabilirsiniz.
- PostgreSQL Gücü: Karmaşık sorgular ve ilişkisel veri modelleri.
- Vendor Lock-in Yok: Standart PostgreSQL kullandığınız için taşınabilirlik kolaydır.
- Cömert Ücretsiz Plan: Başlangıç için yeterli kaynaklar.
Sonuç
Supabase, modern uygulama geliştirme için güçlü bir platform sunar. Özellikle SQL'in gücünden vazgeçmek istemeyen ve açık kaynak çözümleri tercih eden geliştiriciler için ideal bir seçimdir. Firebase alternatifi arayan herkes için Supabase, kesinlikle değerlendirilmesi gereken bir platformdur.
Yazar Hakkında
Topluluk Beta'da — Birlikte Geliştirelim
2400+ SaaS profesyonelinin buluştuğu platformun beta'sı açıldı. Deneyin, geri bildiriminizi paylaşın; platformu birlikte şekillendirelim.
Beta'yı Deneyin



