Supabase ile Hızlı Backend: Veritabanı ve Kimlik Doğrulama
Supabase ile dakikalar içinde production-ready bir backend kurun: PostgreSQL veritabanı, kimlik doğrulama ve gerçek zamanlı özellikler bir arada.
Bir proje fikri aklına düştüğünde, o fikri hayata geçirmeden önce harcanan kurulum süresi bazen motivasyonu yerle bir edebilir. Veritabanı kur, auth sistemi yaz, API endpoint'lerini tanımla… Oysa Supabase tam da bu noktada devreye giriyor ve "Firebase'e açık kaynaklı alternatif" vaadini gerçekten yerine getiriyor.
Supabase Nedir?
Supabase, PostgreSQL üzerine inşa edilmiş bir Backend-as-a-Service (BaaS) platformudur. Firebase'den en temel farkı, kendi sunucunda barındırılabilmesi (self-host) ve ilişkisel bir veritabanı olan PostgreSQL'i kullanmasıdır. Bu sayede hem hız hem de esneklik bir arada gelir.
Temel bileşenleri şunlardır:
- PostgreSQL Veritabanı — Row Level Security (RLS) desteğiyle tam yetkili bir ilişkisel DB
- Auth — E-posta/şifre, Magic Link, OAuth (Google, GitHub, vb.)
- Storage — Dosya yükleme ve yönetimi
- Realtime — WebSocket üzerinden anlık veri senkronizasyonu
- Edge Functions — Deno tabanlı sunucusuz fonksiyonlar
Dakikalar İçinde Veritabanı Kurulumu
Supabase'de bir proje oluşturduktan sonra sizi doğrudan bir Table Editor karşılıyor. SQL bilmeden tablolar oluşturabilirsiniz; ama asıl güç, SQL Editor'ı açıp istediğiniz sorguyu doğrudan çalıştırabilmekten geliyor.
CREATE TABLE posts (
id uuid DEFAULT gen_random_uuid() PRIMARY KEY,
title text NOT NULL,
content text,
created_at timestamptz DEFAULT now()
);
Tabloyu oluşturduktan sonra Supabase otomatik olarak bir RESTful API ve GraphQL endpoint'i üretiyor. Tek satır ek kod yazmadan frontend'inizden veri çekebilirsiniz.
Row Level Security ile Güvenli Veri Erişimi
RLS, Supabase'in en güçlü özelliklerinden biri. Her satır için "bu veriyi kim görebilir, kim değiştirebilir?" sorusunu veritabanı katmanında yanıtlamanızı sağlar.
-- Kullanıcılar yalnızca kendi kayıtlarını görebilsin
CREATE POLICY "Kendi postlarını gör" ON posts
FOR SELECT USING (auth.uid() = user_id);
Bu sayede backend'inize ek bir yetkilendirme katmanı eklemenize gerek kalmıyor; güvenlik kuralları doğrudan veritabanında yaşıyor.
Kimlik Doğrulama: Sıfır Yapılandırmayla Auth
Supabase Auth, projeyi oluşturduğunuz anda aktif hale geliyor. JavaScript istemcisiyle kullanıcı kaydı birkaç satıra indirgenmiş durumda:
const { data, error } = await supabase.auth.signUp({
email: 'kullanici@ornek.com',
password: 'güçlü_şifre',
});
Sosyal login için Dashboard'dan Google veya GitHub OAuth anahtarlarını girmeniz yeterli. Supabase, token yönetimi, oturum yenileme ve şifre sıfırlama e-postalarını otomatik hallediyor.
Realtime: Anlık Veri Senkronizasyonu
Bir chat uygulaması ya da canlı dashboard mı yapıyorsunuz? Realtime özelliği sayesinde tabloya gelen her INSERT, UPDATE veya DELETE olayını WebSocket üzerinden dinleyebilirsiniz:
supabase
.channel('posts')
.on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'posts' }, (payload) => {
console.log('Yeni post:', payload.new);
})
.subscribe();
Ne Zaman Supabase Tercih Edilmeli?
Supabase her projeye uymayabilir; ancak şu senaryolarda mükemmel bir seçim:
- MVP ve prototip geliştirirken zaman baskısı varsa
- İlişkisel veri modeli gerektiren projelerde
- Takımda SQL bilgisi mevcutsa ve NoSQL esnekliğine gerek yoksa
- Açık kaynak, vendor lock-in'den kaçınmak öncelikliyse
Sonuç
Supabase, "backend kurmak için haftalarca zaman harcamak zorunda değilsiniz" fikrini somutlaştırıyor. PostgreSQL'in gücünü, kullanıma hazır auth ve gerçek zamanlı özelliklerle birleştirince ortaya gerçekten etkileyici bir geliştirici deneyimi çıkıyor. Bir sonraki projenizde denemekten çekinmeyin; ilk tabloyu oluşturduğunuz andan itibaren neden bu kadar popüler olduğunu anlayacaksınız.