Supabase Nedir?
Supabase, "open-source Firebase alternative" olarak konumlanan backend platformudur. PostgreSQL üzerine kurulu, SQL bilgisi ile kullanılabilir. 2026 itibarıyla Supabase, özellikle indie developer'lar ve startup'lar arasında hızla büyüyen bir platform haline gelmiştir.
Firebase'den Farkı
| Özellik | Firebase | Supabase |
|---|---|---|
| Database | NoSQL (Firestore) | PostgreSQL (SQL) |
| Açık kaynak | Hayır | Evet |
| Self-host | Hayır | Evet (Docker) |
| Realtime | Var | Var (Realtime subscriptions) |
| Auth | Var | Var (GoTrue) |
| Storage | Var | Var (S3 uyumlu) |
| Functions | Cloud Functions | Edge Functions (Deno) |
| Fiyat modeli | Kullanıma dayalı | Öngörülebilir |
Temel Hizmetler
Database (PostgreSQL)
- Tam SQL desteği, ilişkisel veri
- Row Level Security (RLS) ile satır bazlı erişim kontrolü
- Realtime subscriptions (INSERT, UPDATE, DELETE dinleme)
- PostgREST ile otomatik REST API oluşturma
- Extensions: pgvector (AI embeddings), PostGIS (coğrafi), pg_cron (zamanlama)
- Foreign key, join, transaction gibi tüm SQL özellikleri
Authentication
- E-posta/şifre, Magic Link, OAuth (Google, Apple, GitHub vb.)
- Row Level Security ile entegre (auth.uid() kullanımı)
- JWT token bazlı
- Phone auth (SMS ile doğrulama)
- SAML SSO (Enterprise)
Storage
- S3 uyumlu nesne depolama
- Görsel dönüştürmeleri (resize, crop, format)
- CDN desteği
- RLS ile erişim kontrolü
- Presigned URL ile güvenli yükleme/indirme
Edge Functions
- Deno runtime (TypeScript)
- Serverless, global dağıtım
- Webhook, cron, API endpoint
- Supabase client SDK ile veritabanına doğrudan erişim
Realtime
- PostgreSQL changes dinleme (CDC - Change Data Capture)
- Presence (kim online?)
- Broadcast (mesaj yayını)
- Channel bazlı dinleme
Supabase Client Örneği
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY)
// Veri çekme
const { data, error } = await supabase
.from('posts')
.select('id, title, author(name)')
.order('created_at', { ascending: false })
.limit(10)
// Realtime dinleme
supabase
.channel('posts')
.on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'posts' },
(payload) => console.log('Yeni post:', payload.new)
)
.subscribe()
Fiyatlandırma
Free Tier
- 500MB database
- 1GB storage
- 2GB bandwidth
- 50K auth users
- 500K Edge Function invocations
Pro ($25/ay)
- 8GB database
- 100GB storage
- 250GB bandwidth
- 100K auth users
- Günlük backup
Team ($599/ay)
- SOC2 compliance
- Priority support
- SSO desteği
Ne Zaman Supabase?
İyi Seçim:
- SQL bilgin varsa
- İlişkisel veri modeli gerekiyorsa
- Vendor lock-in istemiyorsan (self-host mümkün)
- Open-source tercih ediyorsan
- Öngörülebilir fiyatlandırma istiyorsan
Kötü Seçim:
- NoSQL esnekliği gerekiyorsa
- Google ekosistemi ile derin entegrasyon istiyorsan
- Offline-first uygulama (Firebase'in offline desteği daha olgun)
- Çok düşük latency gerçek zamanlı veri (Firebase RTDB daha hızlı)
React Native + Supabase
@supabase/supabase-jspaketi (pure JS, native modül gerektirmez)- Expo ile sorunsuz çalışır (herhangi bir native dependency yok)
- AsyncStorage ile session persistence
- Auth:
supabase.auth.signInWithPassword(),signInWithOAuth() - Realtime: Channel API ile gerçek zamanlı dinleme
Supabase, SQL seven geliştiriciler için Firebase'e güçlü bir alternatiftir. Self-host seçeneği ile vendor lock-in riski minimumdur.