Supabase
Firebase Alternatifi, PostgreSQL Gücü
Açık kaynak Backend-as-a-Service platformu. Authentication, veritabanı, storage ve realtime tek platformda. SQL gücünden ödün vermeden.
Tek Platformda Her Şey
Backend ihtiyaçlarınızın tamamını karşılayan entegre çözüm.
PostgreSQL Database
Tam özellikli PostgreSQL veritabanı. Row Level Security, full-text search, ve tüm PostgreSQL özellikleri.
Authentication
Email, OAuth, magic link, SMS ve daha fazla yöntemle kullanıcı doğrulama. SSO desteği.
Storage
S3 uyumlu object storage. Görsel işleme, CDN ve erişim politikaları dahil.
Realtime
Veritabanı değişikliklerini anlık dinleyin. Presence ve broadcast özellikleri ile canlı uygulamalar.
Edge Functions
Deno tabanlı serverless fonksiyonlar. Global edge network üzerinde düşük gecikme süresi.
Vector & AI
pgvector ile AI embeddings depolama ve similarity search. AI uygulamaları için hazır.
Neden Supabase?
Firebase'in kolaylığı, PostgreSQL'in gücü. Açık kaynak olması sayesinde vendor lock-in yok, istediğiniz zaman self-host edebilirsiniz.
Row Level Security ile veritabanı seviyesinde güvenlik politikaları tanımlayın. Her satır için kim ne görebilir, veritabanında belirleyin.
SaaS Ürünleri
Multi-tenant uygulamalar için Row Level Security, subscription yönetimi ve user management.
MVP & Startup
Hızlı prototipleme ve market validation. Backend yazmadan ürün çıkarın.
Realtime Uygulamalar
Chat, multiplayer oyunlar, canlı dashboard'lar. WebSocket olmadan realtime.
AI Uygulamaları
Vector embeddings, semantic search ve RAG uygulamaları için pgvector.
Supabase vs Firebase
Neden Firebase yerine Supabase tercih ediyoruz?
| Firebase | Supabase | |
|---|---|---|
| Veritabanı | NoSQL (Firestore) | PostgreSQL (SQL) |
| Pricing | Karmaşık, tahmin edilmesi zor | Şeffaf, tahmin edilebilir |
| Vendor Lock-in | Yüksek | Düşük (açık kaynak) |
| Self-host | Hayır | Evet |
| SQL Desteği | Hayır | Tam SQL |
| Row Level Security | Firebase Rules | PostgreSQL Policies |
Basit API
Anlaşılır ve temiz API ile hızlı geliştirme.
// Kullanıcı kaydı
const { data, error } = await supabase.auth.signUp({
email: 'user@example.com',
password: 'secure-password'
})
// Veri çekme
const { data: posts } = await supabase
.from('posts')
.select('*, author:users(name)')
.order('created_at', { ascending: false })
// Realtime subscription
supabase
.channel('posts')
.on('postgres_changes', {
event: 'INSERT',
schema: 'public',
table: 'posts'
}, (payload) => {
console.log('Yeni post:', payload.new)
})
.subscribe()
// Storage upload
const { data } = await supabase.storage
.from('avatars')
.upload('public/avatar.png', file)Kullanıcıların sevdiği deneyimler tasarlayalım
Projenizi konuşmak için ücretsiz bir danışmanlık görüşmesi ayarlayalım. Kullanıcı odaklı yaklaşımımızı keşfedin.