← Blog
13 Ekim 2026· otomatik üretildi

Supabase ile Hızlı Backend: Veritabanı ve Kimlik Doğrulama

Supabase ile dakikalar içinde production-ready bir backend kurmak mümkün. PostgreSQL tabanlı bu açık kaynak platform, kimlik doğrulamayı da dahil ederek işleri kolaylaştırıyor.

#Supabase#Backend#PostgreSQL#Auth

Bir yan proje fikrin var, kafanda tam oturmuş; ama backend kurmak için harcayacağın zamanı düşününce motivasyonun yerle bir oluyor. Auth sistemi, veritabanı şeması, API katmanı… Hepsini sıfırdan yazmak yerine işin özüne odaklanmak istiyorsun. İşte tam bu noktada Supabase devreye giriyor.

Supabase Nedir?

Supabase, Firebase'e açık kaynaklı bir alternatif olarak konumlanıyor; ancak altında Google'ın Firestore gibi bir NoSQL değil, savaşta test edilmiş PostgreSQL yatıyor. Bu fark küçümsenecek bir detay değil. İlişkisel veri modelini, SQL'in gücünü ve onlarca yıllık PostgreSQL ekosistemini beraberinde getiriyor.

Temel bileşenleri şöyle sıralayabiliriz:

  • Veritabanı – Tam özellikli PostgreSQL
  • Auth – JWT tabanlı kimlik doğrulama (e-posta, sosyal login, magic link)
  • Storage – Dosya depolama
  • Realtime – WebSocket üzerinden canlı veri akışı
  • Edge Functions – Deno tabanlı sunucu tarafı fonksiyonlar

Bu yazıda odak noktamız ilk iki madde: veritabanı ve kimlik doğrulama.

Veritabanı Kurulumu: Birkaç Tıkla Şema Oluşturma

Supabase dashboard'una girdiğinde seni sade ama güçlü bir tablo editörü karşılıyor. Yeni bir proje oluşturup users, posts gibi tablolarını görsel arayüzden dakikalar içinde tanımlayabilirsin. Ancak asıl gücü SQL editöründe saklı.


create table posts (
  id uuid primary key default gen_random_uuid(),
  user_id uuid references auth.users(id) on delete cascade,
  title text not null,
  body text,
  created_at timestamptz default now()
);

Bu kadar. Supabase bu tabloyu anında RESTful bir API'ye dönüştürüyor; ayrıca gerçek zamanlı güncellemeler için de hazır hale getiriyor.

Row Level Security (RLS) ile Güvenlik

Supabase'in en sevdiğim özelliklerinden biri RLS. Veriyi kimin okuyup yazabileceğini doğrudan veritabanı katmanında tanımlıyorsun:


alter table posts enable row level security;

create policy "Kullanıcı sadece kendi postlarını görebilir"
  on posts for select
  using (auth.uid() = user_id);

Artık yanlışlıkla başka kullanıcının verisini döndürecek bir API endpoint yazman neredeyse imkânsız. Güvenlik uygulama katmanında değil, veritabanında yaşıyor.

Kimlik Doğrulama: Sıfır Efor, Tam Kontrol

Auth için tek satır bile yazmana gerek yok. Supabase'in JavaScript istemcisiyle kayıt ve giriş bu kadar basit:


// Kayıt
const { data, error } = await supabase.auth.signUp({
  email: 'kullanici@mail.com',
  password: 'gizli123'
});

// Giriş
const { data, error } = await supabase.auth.signInWithPassword({
  email: 'kullanici@mail.com',
  password: 'gizli123'
});

Sosyal login eklemek için dashboard'dan Google, GitHub veya Discord sağlayıcısını etkinleştirmek yeterli; tek satır ekstra kod yok. JWT token yönetimi, refresh mekanizması, oturum süresi — hepsi Supabase tarafından hallediyor.

Ne Zaman Supabase, Ne Zaman Değil?

Supabase her derde deva değil. İlişkisel veri yapısı olan, hızlı prototip ya da küçük-orta ölçekli üretim projeleri için biçilmiş kaftan. Bununla birlikte;

  • Çok karmaşık iş mantığı gerektiren kurumsal uygulamalar
  • Çok yüksek yazma trafiği olan sistemler
  • Vendor lock-in'den kaçınmak isteyenler (açık kaynak olmasına rağmen hosted versiyona bağımlılık)

…gibi senaryolarda dikkatli değerlendirmek gerekiyor.

Sonuç

Supabase, backend geliştirme sürecindeki onlarca tekrarlı adımı ortadan kaldırıyor. PostgreSQL'in ciddiyetiyle modern bir geliştirici deneyimini birleştirmesi onu gerçekten özel yapan şey. Bir sonraki projeyi yazmadan önce bir Supabase projesi açıp beş dakika içinde nereye gelebileceğini görmen yeterli; geri kalan konuşmayı veriler yapacak.