Supabase 2026: Nền Tảng Backend Open Source Thách Thức Firebase
Supabase tích hợp PostgreSQL, Auth, Realtime, Edge Functions và Vector Search trong một platform. Hướng dẫn triển khai thực tế cho developer Việt Nam.
Podcast · 3 giọng đọc
Trang
Host
Sơn
Curious Coder
Linh
Chuyên gia
Trang · Host · đoạn 1 / 29
Timeline · 29 lượt nói
Tóm tắt nhanh
Supabase 2026 là open source Firebase alternative tích hợp PostgreSQL, Auth, Realtime, Edge Functions, Storage và Vector Search. Được dùng bởi hàng nghìn startup Việt Nam nhờ free tier hào phóng và DX xuất sắc.

Giới thiệu
Từ năm 2021, Supabase đã định vị mình là "Firebase built on PostgreSQL" — nhưng đến 2026, nó đã vượt xa định nghĩa đó. Supabase không chỉ là database hosting; nó là full-stack backend platform bao gồm mọi thứ một startup cần để ship nhanh.
Điều khiến Supabase đặc biệt phù hợp với developer Việt Nam:
- Free tier với 2 projects, 500MB database, 1GB storage
- PostgreSQL — công nghệ enterprise mà developer đã quen
- Open source — có thể self-host nếu cần control
- DX tuyệt vời — từ dashboard đến SDK đều polished
Kiến Trúc Và Tính Năng
Stack hoàn chỉnh trong một platform:
Supabase Platform
├── PostgreSQL (database chính)
│ ├── Row Level Security (RLS)
│ ├── Realtime subscriptions
│ └── pgvector (vector search)
├── Auth
│ ├── Email/Password
│ ├── Social OAuth (Google, GitHub, ...)
│ └── Phone OTP
├── Storage (S3-compatible)
├── Edge Functions (Deno)
└── API auto-generated (REST + GraphQL)
Setup từ Zero trong 5 phút:
npm install @supabase/supabase-js
# Tạo Supabase client
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
process.env.NEXT_PUBLIC_SUPABASE_URL,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY
)
Authentication
// Đăng ký
const { data, error } = await supabase.auth.signUp({
email: 'user@example.com',
password: 'password123',
})
// Đăng nhập với Google
const { data } = await supabase.auth.signInWithOAuth({
provider: 'google',
options: {
redirectTo: 'https://yourapp.com/auth/callback'
}
})
// Lấy user hiện tại
const { data: { user } } = await supabase.auth.getUser()
// Listen to auth state changes
supabase.auth.onAuthStateChange((event, session) => {
if (event === 'SIGNED_IN') console.log('Đã đăng nhập:', session?.user)
if (event === 'SIGNED_OUT') console.log('Đã đăng xuất')
})
Database với Row Level Security
-- Tạo table với RLS
CREATE TABLE posts (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
user_id UUID REFERENCES auth.users NOT NULL,
title TEXT NOT NULL,
content TEXT,
published BOOLEAN DEFAULT false,
created_at TIMESTAMPTZ DEFAULT now()
);
-- Enable RLS
ALTER TABLE posts ENABLE ROW LEVEL SECURITY;
-- Policy: user chỉ xem post của mình
CREATE POLICY "Users can view own posts"
ON posts FOR SELECT
USING (auth.uid() = user_id);
-- Policy: user chỉ insert post của mình
CREATE POLICY "Users can insert own posts"
ON posts FOR INSERT
WITH CHECK (auth.uid() = user_id);
// Query với TypeScript types tự động generated
const { data: posts, error } = await supabase
.from('posts')
.select('id, title, content, created_at')
.eq('published', true)
.order('created_at', { ascending: false })
.limit(10)
// RLS tự động filter -- user chỉ thấy data của mình

Realtime Subscriptions
// Subscribe to real-time changes
const channel = supabase
.channel('room-messages')
.on(
'postgres_changes',
{ event: 'INSERT', schema: 'public', table: 'messages' },
(payload) => {
console.log('Tin nhắn mới:', payload.new)
setMessages(prev => [...prev, payload.new])
}
)
.subscribe()
// Cleanup
return () => supabase.removeChannel(channel)
Edge Functions + Vector Search
// Edge Function (Deno runtime)
// supabase/functions/ai-search/index.ts
import { createClient } from '@supabase/supabase-js'
Deno.serve(async (req) => {
const { query } = await req.json()
// Generate embedding với OpenAI
const embedding = await generateEmbedding(query)
// Vector similarity search trong PostgreSQL
const supabase = createClient(
Deno.env.get('SUPABASE_URL'),
Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')
)
const { data } = await supabase.rpc('match_documents', {
query_embedding: embedding,
match_threshold: 0.75,
match_count: 10
})
return Response.json({ results: data })
})
So Sánh Với Firebase
| Tiêu chí | Supabase | Firebase |
|---|---|---|
| Database | PostgreSQL (relational) | Firestore (NoSQL) |
| Open source | ✅ | ❌ |
| Self-host | ✅ | ❌ |
| SQL support | ✅ | ❌ |
| Realtime | ✅ | ✅ |
| Free tier | 2 projects, 500MB | 1 project, 1GB |
| Vector search | ✅ built-in | Cần plugin |
| Edge functions | ✅ (Deno) | ✅ (Cloud Functions) |
Xu Hướng & Tương Lai

Supabase 2026 đang focus vào:
- AI integration: native vector search đã stable, RAG workflows built-in
- Branching: database branching cho dev/staging workflows (như Git cho DB)
- Log Drains: export logs tới Datadog, Loki, etc.
- Multi-region: active-active replication sắp ra
Kết luận
Supabase là lựa chọn tốt nhất cho startup Việt Nam cần ship nhanh với full-stack backend. 4 điểm quyết định:
- PostgreSQL core — công nghệ đáng tin cậy, không vendor lock-in
- Auth + RLS — security by default, không cần custom middleware
- Realtime + Edge Functions — modern app requirements included
- Open source — có thể self-host khi cần scale hoặc compliance
Bắt đầu miễn phí tại supabase.com — no credit card required.
Bạn đang dùng công nghệ nào trong bài? Chia sẻ kinh nghiệm trong phần bình luận!