Beranda/Artikel /Teknologi
Teknologi

Supabase Kian Jadi Andalan Developer, Backend Siap Pakai Berbasis PostgreSQL yang Bisa Dicoba Gratis

ClovertechnoClovertechno 5 November 2026 10 menit baca
Supabase Kian Jadi Andalan Developer, Backend Siap Pakai Berbasis PostgreSQL yang Bisa Dicoba Gratis

Membangun backend aplikasi kini tidak lagi harus dimulai dari menyewa server, memasang database, dan menulis API satu per satu. Supabase, platform backend open source berbasis PostgreSQL, menyediakan semua kebutuhan dasar itu dalam satu dashboard: database, autentikasi pengguna, penyimpanan file, data realtime, hingga fungsi serverless. Platform ini makin populer di kalangan developer, startup, hingga pembuat aplikasi berbasis AI.

Supabase kerap disebut sebagai alternatif open source untuk Firebase milik Google. Bedanya, Supabase memakai PostgreSQL, database relasional yang sudah teruji puluhan tahun, sehingga data bisa diolah dengan SQL biasa. Supabase juga menyediakan paket gratis yang cukup untuk belajar dan membangun prototipe. Artikel ini membahas apa itu Supabase, fitur-fiturnya, batas paket gratis, hingga cara memakainya langkah demi langkah dalam proyek JavaScript.

FiturFungsiContoh Pemakaian
Database (PostgreSQL)Menyimpan data terstruktur dengan SQLData produk, pesanan, pelanggan
API otomatisREST dan GraphQL dibuat otomatis dari tabelMengambil data tanpa menulis backend
AuthLogin email, magic link, OTP, dan Google/GitHubHalaman daftar dan masuk aplikasi
StorageMenyimpan file seperti gambar dan PDFFoto profil, lampiran dokumen
RealtimeMengirim perubahan data secara langsungChat, notifikasi, dashboard live
Edge FunctionsMenjalankan kode backend serverlessWebhook pembayaran, kirim email
Vector (pgvector)Menyimpan embedding untuk AIPencarian semantik, chatbot RAG

Apa Itu Supabase

Supabase adalah Backend as a Service (BaaS), yaitu layanan yang menyediakan infrastruktur backend siap pakai sehingga developer bisa fokus membangun tampilan dan logika aplikasi. Setiap proyek Supabase mendapatkan database PostgreSQL penuh, bukan versi tiruan atau terbatas. Artinya, semua fitur PostgreSQL seperti relasi antar tabel, join, view, trigger, dan fungsi bisa langsung dipakai.

Di atas database itu, Supabase menambahkan berbagai layanan: API yang dibuat otomatis dari skema tabel, sistem autentikasi, penyimpanan file, server realtime, dan Edge Functions. Semua dikelola melalui satu dashboard web dan bisa diakses lewat pustaka resmi untuk JavaScript, Flutter, Swift, Kotlin, Python, dan bahasa lain.

Karena bersifat open source, Supabase bisa dipakai dalam dua cara: versi cloud yang dikelola langsung oleh Supabase, atau dipasang sendiri (self-hosted) di server milik pengguna menggunakan Docker.

Supabase vs Firebase: Apa Bedanya

Supabase dan Firebase sama-sama menawarkan backend siap pakai, tetapi pendekatannya berbeda:

  • Jenis database: Supabase memakai PostgreSQL yang relasional, sedangkan Firestore di Firebase adalah database dokumen NoSQL.
  • Bahasa query: Supabase mendukung SQL penuh. Firebase memakai query khas Firestore yang lebih terbatas untuk relasi kompleks.
  • Open source: Supabase open source dan bisa di-host sendiri. Firebase adalah layanan tertutup milik Google.
  • Portabilitas data: data Supabase bisa diekspor sebagai database PostgreSQL biasa, sehingga lebih mudah berpindah penyedia.
  • Ekosistem: Firebase unggul pada integrasi layanan Google seperti analytics, crashlytics, dan push notification mobile.

Secara umum, Supabase cocok untuk aplikasi dengan data yang saling berelasi seperti toko online, sistem kasir, dashboard laporan, atau aplikasi internal perusahaan.

Fitur-Fitur Utama Supabase

Database PostgreSQL. Tabel bisa dibuat lewat Table Editor yang mirip spreadsheet, atau lewat SQL Editor untuk menulis perintah SQL langsung. Supabase juga mendukung ekstensi PostgreSQL populer, termasuk pgvector untuk kebutuhan AI.

API otomatis. Setiap tabel yang dibuat langsung memiliki endpoint API. Developer tidak perlu menulis kode backend untuk operasi dasar seperti menambah, membaca, mengubah, dan menghapus data.

Autentikasi. Supabase Auth mendukung login dengan email dan kata sandi, magic link, OTP lewat SMS, serta login sosial seperti Google, GitHub, dan Apple. Data pengguna tersimpan di skema khusus dan bisa dihubungkan ke tabel lain.

Row Level Security (RLS). Inilah fitur keamanan paling penting di Supabase. RLS mengatur baris data mana yang boleh dibaca atau diubah oleh pengguna tertentu, langsung di level database. Misalnya, pengguna hanya boleh melihat pesanan miliknya sendiri.

Storage. Tempat menyimpan file seperti gambar, video, dan dokumen dalam wadah bernama bucket. Akses file juga bisa diatur dengan aturan keamanan.

Realtime. Aplikasi bisa "berlangganan" perubahan data sehingga tampilan otomatis diperbarui tanpa perlu dimuat ulang. Cocok untuk fitur chat, notifikasi, atau papan antrean.

Edge Functions. Fungsi serverless berbasis TypeScript yang berjalan di server Supabase. Biasanya dipakai untuk logika yang tidak boleh dijalankan di browser, seperti memproses webhook pembayaran atau memanggil API pihak ketiga dengan kunci rahasia.

Batas Paket Gratis Supabase

Supabase menyediakan paket Free yang cukup untuk belajar, prototipe, dan aplikasi kecil. Berdasarkan data harga yang diverifikasi pertengahan 2026, berikut rincian paket Free dan Pro:

AspekPaket FreePaket Pro
BiayaGratisUS$25 per bulan per organisasi + pemakaian lebih
Proyek aktif2 proyekLebih banyak, dengan kredit compute US$10 per bulan
Ukuran database500 MB per proyek8 GB per proyek
Penyimpanan file1 GB100 GB
Pengguna aktif bulanan (MAU)50.000100.000
Edge Functions500.000 pemanggilan2 juta pemanggilan
Backup harianTidak tersediaDisimpan 7 hari
Proyek tidak aktifDijeda setelah 7 hari tanpa aktivitasTidak dijeda

Hal yang perlu diperhatikan: proyek di paket Free akan dijeda otomatis jika tidak ada aktivitas selama seminggu dan harus diaktifkan kembali secara manual. Untuk aplikasi produksi yang dipakai pelanggan, paket Pro lebih aman. Angka di atas bisa berubah, jadi selalu cek halaman resmi supabase.com/pricing.

Langkah 1: Membuat Akun dan Proyek

  1. Buka supabase.com, klik Start your project, lalu daftar menggunakan akun GitHub atau email.
  2. Klik New project, pilih organisasi, lalu isi nama proyek.
  3. Buat Database Password yang kuat dan simpan baik-baik. Kata sandi ini dibutuhkan untuk koneksi langsung ke database.
  4. Pilih Region terdekat dengan pengguna. Untuk pengguna di Indonesia, region Singapura (Southeast Asia) umumnya memberi latensi paling rendah.
  5. Klik Create new project dan tunggu beberapa menit hingga proyek siap.

Langkah 2: Membuat Tabel Pertama

Buka menu SQL Editor, lalu jalankan perintah berikut untuk membuat tabel catatan sederhana:

create table notes (
  id bigint generated always as identity primary key,
  user_id uuid references auth.users not null default auth.uid(),
  title text not null,
  content text,
  created_at timestamptz default now()
);

Kolom user_id terhubung ke tabel pengguna bawaan Supabase dan otomatis terisi dengan ID pengguna yang sedang login. Bagi yang tidak nyaman dengan SQL, tabel yang sama bisa dibuat lewat Table Editor dengan klik-klik biasa.

Langkah 3: Aktifkan Row Level Security

Langkah ini wajib dan sering terlewat. Tanpa RLS, siapa pun yang memegang kunci publik proyek bisa membaca atau mengubah isi tabel. Jalankan perintah berikut agar setiap pengguna hanya bisa mengakses catatan miliknya sendiri:

alter table notes enable row level security;

create policy "Pengguna melihat catatan sendiri"
on notes for select
using (auth.uid() = user_id);

create policy "Pengguna menambah catatan sendiri"
on notes for insert
with check (auth.uid() = user_id);

create policy "Pengguna mengubah catatan sendiri"
on notes for update
using (auth.uid() = user_id);

create policy "Pengguna menghapus catatan sendiri"
on notes for delete
using (auth.uid() = user_id);

Setelah RLS aktif, tabel tidak bisa diakses sama sekali kecuali sesuai aturan (policy) yang dibuat. Dashboard Supabase juga menampilkan peringatan jika ada tabel di skema publik yang belum mengaktifkan RLS.

Langkah 4: Ambil URL dan Kunci API

Buka Project Settings, lalu masuk ke bagian API atau API Keys. Catat dua informasi berikut:

  • Project URL, berbentuk https://xxxx.supabase.co.
  • Kunci publik (publishable atau anon key). Kunci ini aman dipakai di aplikasi frontend selama RLS aktif.

Supabase juga menyediakan kunci rahasia (secret atau service role key) yang bisa melewati RLS. Kunci ini tidak boleh dipasang di aplikasi frontend, aplikasi mobile, atau repositori publik. Gunakan hanya di server atau Edge Functions.

Langkah 5: Hubungkan ke Aplikasi JavaScript

Pasang pustaka resmi Supabase di proyek:

npm install @supabase/supabase-js

Buat file koneksi, misalnya supabase.js:

import { createClient } from '@supabase/supabase-js'

const supabaseUrl = import.meta.env.VITE_SUPABASE_URL
const supabaseKey = import.meta.env.VITE_SUPABASE_KEY

export const supabase = createClient(supabaseUrl, supabaseKey)

Simpan URL dan kunci publik di file .env agar tidak tertulis langsung di kode.

Langkah 6: Daftar dan Login Pengguna

Supabase Auth bisa dipakai hanya dengan beberapa baris kode:

// Mendaftarkan pengguna baru
const { data, error } = await supabase.auth.signUp({
  email: 'budi@contoh.com',
  password: 'kata-sandi-kuat'
})

// Login
await supabase.auth.signInWithPassword({
  email: 'budi@contoh.com',
  password: 'kata-sandi-kuat'
})

// Logout
await supabase.auth.signOut()

Secara default, pengguna baru akan menerima email konfirmasi. Pengaturan ini, termasuk login dengan Google atau GitHub, bisa diubah di menu Authentication pada dashboard.

Langkah 7: Menambah, Membaca, Mengubah, dan Menghapus Data

Setelah pengguna login, operasi data bisa dilakukan dengan sintaks yang mudah dibaca:

// Menambah data
await supabase.from('notes').insert({ title: 'Belanja', content: 'Beli kabel LAN' })

// Membaca data, urut dari yang terbaru
const { data: notes } = await supabase
  .from('notes')
  .select('*')
  .order('created_at', { ascending: false })

// Mengubah data
await supabase.from('notes').update({ title: 'Belanja bulanan' }).eq('id', 1)

// Menghapus data
await supabase.from('notes').delete().eq('id', 1)

Karena RLS sudah aktif, query di atas otomatis hanya mengembalikan dan mengubah catatan milik pengguna yang sedang login, tanpa perlu menambahkan filter user_id secara manual.

Langkah 8: Upload File ke Storage

Buat bucket di menu Storage, misalnya bernama avatars. Setelah itu, file bisa diunggah dari aplikasi:

const file = event.target.files[0]

const { data, error } = await supabase.storage
  .from('avatars')
  .upload(`profil/${Date.now()}-${file.name}`, file)

Bucket bisa diatur sebagai publik, cocok untuk gambar produk, atau privat dengan aturan akses, cocok untuk dokumen pengguna.

Langkah 9: Mendengarkan Perubahan Data Secara Realtime

Untuk memakai realtime, aktifkan dulu fitur Realtime pada tabel di dashboard. Lalu tambahkan kode berikut:

supabase
  .channel('notes-changes')
  .on('postgres_changes',
    { event: '*', schema: 'public', table: 'notes' },
    (payload) => console.log('Ada perubahan:', payload)
  )
  .subscribe()

Setiap kali ada data yang ditambah, diubah, atau dihapus, aplikasi akan menerima pemberitahuan dan bisa langsung memperbarui tampilan.

Bekerja Lokal dengan Supabase CLI

Untuk proyek serius, Supabase menyediakan CLI agar seluruh stack bisa dijalankan di komputer sendiri menggunakan Docker. Alur dasarnya:

npx supabase init        # menyiapkan folder supabase di proyek
npx supabase start       # menjalankan database dan layanan secara lokal
npx supabase migration new buat_tabel_notes
npx supabase db push     # mengirim migrasi ke proyek cloud

Dengan migrasi, perubahan skema database tercatat dalam file dan bisa disimpan di Git, sehingga lebih rapi untuk kerja tim dan mudah dikembalikan bila terjadi kesalahan.

Contoh Proyek yang Cocok Memakai Supabase

  • Aplikasi kasir dan stok barang untuk UMKM, dengan data produk, transaksi, dan laporan.
  • Dashboard internal perusahaan yang butuh login karyawan dan hak akses berbeda.
  • Aplikasi mobile Flutter yang memerlukan backend cepat tanpa mengelola server.
  • Aplikasi chat atau antrean yang memanfaatkan fitur realtime.
  • Chatbot AI dengan RAG yang menyimpan embedding dokumen menggunakan pgvector.
  • Landing page dengan form yang menyimpan data calon pelanggan langsung ke database.

Kelebihan dan Kekurangan Supabase

Kelebihan:

  • Memakai PostgreSQL penuh, sehingga fleksibel dan mudah dipindahkan.
  • Fitur lengkap dalam satu platform: database, auth, storage, realtime, dan functions.
  • Open source dan bisa di-host sendiri.
  • Paket gratis cukup longgar untuk belajar dan prototipe.
  • Dokumentasi lengkap dan komunitas besar.

Kekurangan:

  • Proyek paket Free dijeda setelah tidak aktif seminggu.
  • Keamanan sangat bergantung pada RLS. Salah konfigurasi bisa membuat data bocor.
  • Logika bisnis yang kompleks tetap membutuhkan Edge Functions atau backend tambahan.
  • Biaya bisa naik seiring pertumbuhan pengguna dan data, sehingga perlu dipantau.

Kesalahan Umum Pemula

  • Lupa mengaktifkan RLS, sehingga data bisa diakses siapa saja yang memegang kunci publik.
  • Memasang service role key di frontend, padahal kunci ini bisa melewati semua aturan keamanan.
  • Policy terlalu longgar, misalnya memakai using (true) untuk operasi ubah dan hapus.
  • Mengubah skema langsung di produksi tanpa migrasi, sehingga sulit dilacak.
  • Memilih region jauh dari pengguna, membuat aplikasi terasa lambat.

Pertanyaan yang Sering Diajukan

Apakah Supabase gratis? Ya, tersedia paket Free dengan 2 proyek aktif, database 500 MB, dan 50.000 pengguna aktif bulanan. Untuk produksi, paket Pro mulai US$25 per bulan.

Apakah Supabase bisa dipakai untuk Flutter? Bisa. Supabase menyediakan pustaka resmi untuk Flutter dan Dart.

Apakah harus bisa SQL? Tidak wajib untuk memulai, karena tabel bisa dibuat lewat Table Editor. Namun pemahaman dasar SQL sangat membantu, terutama untuk membuat policy RLS.

Apakah anon key aman dipasang di website? Aman selama RLS aktif dan policy dibuat dengan benar. Yang tidak boleh dipasang di frontend adalah service role atau secret key.

Bisakah Supabase di-host sendiri? Bisa, menggunakan Docker di VPS sendiri. Namun pengelolaan backup, pembaruan, dan keamanan menjadi tanggung jawab pengguna.

Kesimpulan

Supabase menyederhanakan pembuatan backend dengan menyatukan database PostgreSQL, autentikasi, penyimpanan file, realtime, dan fungsi serverless dalam satu platform. Developer bisa memulai gratis, membangun prototipe dalam hitungan jam, lalu beralih ke paket berbayar ketika aplikasi mulai dipakai pelanggan.

Kunci memakai Supabase dengan aman ada pada Row Level Security dan pengelolaan kunci API. Aktifkan RLS di setiap tabel, simpan kunci rahasia hanya di server, dan gunakan migrasi untuk setiap perubahan skema. Dengan kebiasaan itu, Supabase bisa menjadi fondasi backend yang andal dari tahap prototipe hingga produksi.

supabaseapa itu supabasetutorial supabasecara menggunakan supabasesupabase gratispostgresqlbackend as a servicealternatif firebasesupabase authrow level securityclovertechno

Sistem perusahaan Anda belum saling terhubung?

Ceritakan sistem yang dipakai, kami petakan integrasinya. Konsultasi gratis, tanpa komitmen.

Chat WhatsApp