supabase

Semua tentang Supabase

October 16, 2025

Semua tentang Supabase cover

Gais, tahukah kamu kalau Supabase itu bukan sekadar backend-as-a-service biasa?
Di balik tampilannya yang simpel, Supabase berdiri di atas PostgreSQL full power, artinya, semua fitur native dari Postgres bisa kamu pakai langsung!

Buat kamu yang sedang bangun web atau aplikasi modern, paham ekosistem Supabase berarti bisa mendapat performa tinggi, keamanan kuat, dan skalabilitas tanpa ribet bikin backend dari nol.
Mulai dari database, autentikasi, file storage, realtime, sampai AI embedding, semuanya udah disiapin rapi oleh Supabase.

Jadi di tulisan ini, kita bakal deep dive bareng fitur-fitur utama Supabase, dari dasar sampai yang canggih banget:
mulai dari PostgreSQL core, Auth system, Storage, Realtime, Edge Function, RPC, sampai Vector AI Search.

1. PostgreSQL Core(database)

Schema & table

Pemisahan ruang data

Public

Auth

Storage

Indexing & Search

Optimasi query & pencari fuzzy

GIN

btree

pg_trgm

full-text search

Functions & Triggers

Menjalankan logika di server

plpsql

sql

plv8

Constraints & Defaults

Validasi integritas data

check

unique

foreign key

default now()

Views & Materialized Views

Untuk query kompleks & caching

create view

create

materialized view

Extensions

Nambahin kemampuan bawaan

pg_trgm

uuid-ossp

pgvector

postgis

ltree

citext

RLS(Row Level Security)

Filter otomatis per user

enable row level security

policy

Event Triggers/LISTEN-NOTIFY

Untuk sistem event driver

notify

listen

2. Supabase Auth (Authentication & User System)

auth.users

Tabel utama semua user (id, email, hashed password, metadata)

auth.identities

Detail provider login(google, github, email, dll)

auth.sessions

Token/refresh info

Triggers internal

Sinkronisasi login, signup, revoke token

JWT & claims

Tiap request pakai supabase-js akan punya auth.uid() dan auth.role()

Row Level Integration

auth.uid() bisa dipakai di RLS policy untuk nyocok user_id

3. Supabase Storage

Object storage built-in(mirip AWS S3 tapi postgres aware)

  • Data file disimpan di bucket
  • Metadatanya tersimpan di tabel storage.objects
  • Bisa di RLS juga (enable row level security on storage objects)
  • Bisa disinkronkan ke profile user, atau folder private/public
    Contoh: file avatar bisa diupload ke bucket avatars/ dengan URL publik

4. Supabase Realtime

Realtime = listener berbasis WebSocket yang subscribe ke perubahan data tabel.
Secara internal pakai postgres logical replication (wal2json plugin)

  • Tiap insert/update/delete bisa dipublish ke client realtime.
  • Cocok untuk live dashboards, chat leaderboard, dan game.
    Di supabase dashboard, tinggal aktifikan "realtime", terus pilih tael mana yang pengen di-stream

5. Edge functions (serverless)

Supabase punya edge functions (Deno runtime)
Ini mirip AWS lambda tapi di pinggir jaringan (low latency)

  • Ditulis pakai typescript (Deno)
  • Dipanggil dari client via supabase.functions.invoke('nama-fungsi', { body })
  • Bisa akses supabase client-side dengan service-role untuk operasi privileged
  • Cocok untuk logika yang gak efisien kalau dikerjakan di client (misalnya join berat, integrasi API, billing, dll)

6. Supabase RPC (Remote Procedure Calls)

Fitur ini memungkinkan fungsi postgres (create function ... returns ... ) dipanggil langsung lewat REST atau SDK.

create function public.search_startups(keyword text)
returns setof public.startups as $$
  select * from public.startups
  where name ilike '%' || keyword || '%';
$$language sql stable;

bisa dipanggil dari frontend:

supabase.rpc('search_startups', { keyword: 'robot'})

Kelebihannya: tetap di server postgres, aman oleh RLS, cepat.

7. Supabase Vector (AI/Embedding Search)

extensions pgvector bawaan: CREATE EXTENSIONS IF NOT EXISTS vector;

gunanya buat simpan & cari embedding AI:

create table documents (
  id bigserial primary key, 
  context text, 
  embedding vector(1536)
)

lalu query nearest neighbor

select id, content
from documents
order by embedding <->'[0.2, 0.5, ...]'
limit 5; 

Kamu bisa pakai buat sistem rekomendasi, chatbot retrieval, atau semantic search.

8. Supabase logs

Supabase punya:

  • query performance & logs
  • API usage logs
  • Auth events logs
  • Realtime logs
    kamu bisa akses via dashboard -> logs -> filter berdasarkan 'auth', 'database', 'functions', dll
    Bisa dikoneksiin juga ke logflare atau observability stack sendiri.

9. Supabase CLI & Migration Tools

10. Supabase RESTful & graphQL auto API

Supabase otomatis generate:
REST API: dari semua tabel, fungsi view
GraphQL API: via pg_graphql extension (/graphql/v1)
contoh panggilan

GET https://<project>.supabase.co/rest/v1/profiles?select=id,username

Semua API ini otomatis menghormati RLS policy, jadi aman by design.

Supabase Admin API (service role)

Supabsae punya service_role key(private) buat backend privileged access:

  • bisa bypass RLS
  • dipakai di edge function atau server (jangan di exponse ke frontend)
  • berguna untuk admin actions, data seeding, atau cron job.