Supabase telah menjadi alternatif open-source paling populer untuk Firebase. Dengan basis PostgreSQL yang powerful, Supabase menawarkan database, autentikasi, storage, dan edge functions dalam satu platform.
Apa itu Supabase?
Supabase adalah platform backend-as-a-service (BaaS) open-source yang menggunakan PostgreSQL sebagai database utamanya. Didirikan pada 2020, Supabase kini digunakan oleh lebih dari 1 juta developer di seluruh dunia.
Perbandingan Supabase vs Firebase
- Database — Supabase: PostgreSQL (relasional) vs Firebase: Firestore (NoSQL)
- Open Source — Supabase: ✅ ya vs Firebase: ❌ proprietary
- Self-hosted — Supabase: ✅ bisa di-host sendiri vs Firebase: ❌ cloud only
- SQL — Supabase: ✅ SQL full power vs Firebase: ❌ limited queries
- Realtime — Supabase: ✅ via WebSocket vs Firebase: ✅ via WebSocket
Setup Supabase
# Install CLI
npm install -g supabase
supabase init
supabase start # local development
Contoh Query
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY)
// SELECT
const { data: users } = await supabase
.from('users')
.select('*')
.eq('status', 'aktif')
.order('created_at', { ascending: false })
// INSERT
const { data, error } = await supabase
.from('artikel')
.insert({ judul: 'Belajar Supabase', views: 0 })
// REALTIME
const subscription = supabase
.channel('public:artikel')
.on('postgres_changes',
{ event: 'INSERT', schema: 'public' },
(payload) => console.log('Artikel baru:', payload)
)
.subscribe()
Row Level Security (RLS)
-- Aktifkan RLS
ALTER TABLE artikel ENABLE ROW LEVEL SECURITY;
-- Policy: user hanya bisa lihat artikel sendiri
CREATE POLICY "user_artikel" ON artikel
FOR SELECT USING (auth.uid() = user_id);
-- Policy: siapa pun bisa lihat artikel publik
CREATE POLICY "publik_artikel" ON artikel
FOR SELECT USING (status = 'publik');






