PocketBase thay được Supabase? Test thực tế cho SaaS nhỏ

23/05/2026 · P T P · Chung

PocketBase có thay Supabase được không: test thực tế cho SaaS nhỏ

Một SaaS nhỏ thường không chết vì thiếu Kubernetes, không chết vì thiếu microservices. Nó chết vì build quá lâu, chi phí phình sớm, vận hành rối, và founder không còn sức nói chuyện với khách.

Supabase hấp dẫn vì cho cảm giác “backend xịn có sẵn”: PostgreSQL, Auth, Storage, Realtime, Edge Functions. Nhưng với SaaS nhỏ, câu hỏi đáng hỏi hơn: có cần nhiều thế không?

PocketBase đi hướng ngược lại: một file binary, SQLite, admin UI, auth, realtime, API tự sinh. Deploy cực nhẹ. Nghe như món quà cho indie hacker. Nhưng có thay Supabase được không?

Bài này dựa trên góc nhìn test thực tế cho SaaS nhỏ: app có user đăng ký, subscription, dashboard, CRUD dữ liệu, vài event realtime nhẹ, file upload nhỏ, admin quản trị.

Tóm tắt nhanh

PocketBase thay Supabase được nếu SaaS của bạn:

– Có traffic nhỏ đến vừa.
– Dữ liệu quan hệ không quá phức tạp.
– Một team nhỏ cần ship nhanh.
– Muốn tự host rẻ.
– Không cần hệ sinh thái PostgreSQL lớn.

PocketBase không nên thay Supabase nếu bạn cần:

– PostgreSQL chuẩn, query mạnh.
– Scale đọc/ghi lớn.
– Row Level Security phức tạp.
– Analytics nặng, reporting phức tạp.
– Multi-region, HA nghiêm túc.
– Tích hợp AI/vector/search chuyên sâu.

Nói ngắn: PocketBase cực tốt cho SaaS nhỏ gọn. Supabase tốt hơn cho SaaS muốn lớn dần mà vẫn cần nền tảng mạnh.

PocketBase là gì, mạnh ở đâu?

PocketBase là backend mã nguồn mở viết bằng Go. Nó đóng gói nhiều thứ vào một binary:

SQLite database
Auth
Admin dashboard
REST API tự sinh
Realtime subscriptions
File storage
Hooks bằng Go hoặc JavaScript
Migrations
Backup/restore

Điểm mạnh lớn nhất: đơn giản đến mức khó tin. Bạn tải binary, chạy lệnh, có backend:

./pocketbase serve

Không cần Docker nếu không muốn. Không cần Postgres riêng. Không cần Redis. Không cần 5 service phụ.

Với SaaS nhỏ, giảm số thứ phải vận hành là lợi ích lớn. Mỗi service thêm vào là thêm log, config, backup, bảo mật, cập nhật, chi phí.

Supabase là gì, mạnh ở đâu?

Supabase là backend-as-a-service dựa trên PostgreSQL. Nó gồm:

PostgreSQL
Auth
Storage
Realtime
Edge Functions
Row Level Security
Dashboard
API tự sinh
Extensions PostgreSQL
Vector, cron, queue, branching tùy gói/cấu hình

Supabase mạnh vì đứng trên PostgreSQL. Nếu app cần query phức tạp, transaction chắc, index phong phú, report, join nhiều bảng, extension, Supabase có nền vững hơn.

Supabase cũng hợp team muốn dùng managed service. Không muốn tự cập nhật server, backup, monitoring cơ bản. Trả tiền, nhận hạ tầng tương đối sẵn.

Test thực tế: SaaS nhỏ cần gì?

Giả định SaaS nhỏ:

– 1.000–10.000 user đăng ký.
– 100–1.000 user active mỗi ngày.
– Dữ liệu chính: users, workspaces, projects, tasks, invoices, subscriptions.
– Auth email/password, OAuth có thể cần.
– File upload: avatar, PDF, ảnh nhỏ.
– Realtime: thông báo hoặc cập nhật bảng nhẹ.
– Admin cần xem user, sửa plan, khóa tài khoản.
– Billing dùng Stripe/Lemon Squeezy.
– Deploy trên VPS $5–20/tháng hoặc managed backend.

Với bài toán này, backend cần làm tốt 6 việc: auth, data model, API, quyền truy cập, file, vận hành.

Auth: PocketBase đủ dùng, Supabase mạnh hơn

PocketBase có auth collection rất tiện. Bạn tạo collection users, bật auth, có sẵn register, login, token, password reset, email verify. SDK dùng dễ.

Với SaaS nhỏ, vậy là đủ cho:

– Đăng ký email/password.
– Đăng nhập.
– Phân quyền theo user.
– Admin quản lý user.
– Token API.

Supabase Auth mạnh hơn ở phần tích hợp OAuth, magic link, providers, session handling, MFA tùy nhu cầu. Nếu app cần Google login, GitHub login, enterprise SSO sau này, Supabase có lợi thế.

Kết luận auth: PocketBase đủ cho SaaS nhỏ cơ bản. Supabase tốt hơn nếu auth là phần phức tạp hoặc có kế hoạch B2B enterprise.

Database: SQLite nhanh, PostgreSQL bền đường dài

PocketBase dùng SQLite. Nhiều người nghe SQLite là nghĩ “đồ chơi”. Sai. SQLite rất nhanh, rất ổn cho nhiều app production nhỏ/vừa, đặc biệt workload đọc nhiều, ghi vừa phải.

Với SaaS nhỏ, SQLite chạy tốt cho:

– CRUD dashboard.
– Settings.
– Project/task data.
– Logs nhỏ.
– Billing records.
– User metadata.

Nhưng SQLite có giới hạn tự nhiên:

– Ghi đồng thời không mạnh như PostgreSQL.
– Query phức tạp kém tiện hơn.
– Tooling phân tích dữ liệu ít hơn.
– Scale ngang khó hơn.
– Không hợp workload ghi lớn.

Supabase dùng PostgreSQL. Đây là lựa chọn an toàn hơn nếu dữ liệu là lõi sản phẩm. Bạn có join tốt, transaction mạnh, index phong phú, JSONB, full-text search, extensions, backup/replication rõ hơn.

Kết luận database: PocketBase thắng ở đơn giản. Supabase thắng ở sức mạnh và đường dài.

API và tốc độ phát triển: PocketBase rất nhanh

PocketBase tạo REST API tự động từ collections. Bạn tạo schema trong admin UI, app frontend gọi được ngay. SDK JavaScript gọn, dễ học.

Ví dụ flow build MVP:

1. Tạo collection projects.
2. Thêm field name, owner, status.
3. Set rule: user chỉ xem project của mình.
4. Frontend gọi list/create/update.
5. Xong backend CRUD.

Không cần viết controller. Không cần Prisma. Không cần migration phức tạp lúc đầu.

Supabase cũng có API tự sinh qua PostgREST. Nhưng để dùng đúng, bạn thường cần hiểu PostgreSQL, RLS, policies. Mạnh nhưng ngưỡng học cao hơn.

Kết luận tốc độ: PocketBase cho cảm giác ship nhanh hơn với solo founder. Supabase mạnh nhưng cần kỷ luật DB tốt hơn.

Phân quyền: PocketBase dễ, Supabase chặt hơn

PocketBase dùng API rules theo collection, ví dụ:

@request.auth.id = user.id

Bạn có thể đặt rule cho list, view, create, update, delete. Cách này trực quan. Với SaaS nhỏ, rule theo owner/workspace thường đủ.

Supabase dùng Row Level Security. RLS rất mạnh, nằm trong database. Khi làm đúng, bảo mật chắc hơn vì quyền được enforce ở tầng dữ liệu.

Nhưng RLS cũng dễ làm đau đầu. Policy sai có thể làm user không thấy dữ liệu, hoặc tệ hơn, thấy dữ liệu không nên thấy. Debug RLS với người mới không luôn dễ.

Kết luận phân quyền: PocketBase dễ hiểu hơn. Supabase an toàn và mạnh hơn khi team biết PostgreSQL/RLS.

Realtime: đủ cho nhẹ, không nên lạm dụng

PocketBase có realtime subscriptions. Dùng ổn cho cập nhật nhỏ: dashboard refresh, notification, collaborative nhẹ.

Supabase Realtime cũng hỗ trợ lắng nghe thay đổi từ PostgreSQL. Hệ sinh thái tốt hơn, tài liệu nhiều hơn.

Nếu SaaS cần Google Docs-style collaboration, presence phức tạp, event streaming lớn, cả hai có thể chưa phải lựa chọn cuối. Bạn có thể cần WebSocket service riêng, Redis, CRDT, hoặc message broker.

Kết luận realtime: PocketBase đủ cho realtime nhẹ. Supabase tốt hơn nếu đã dùng PostgreSQL làm nguồn sự thật.

File storage: PocketBase tiện, Supabase cloud hơn

PocketBase lưu file gắn với records. Rất tiện cho avatar, tài liệu nhỏ, ảnh upload. Với VPS nhỏ, cần nghĩ backup file cùng database.

Supabase Storage giống object storage hơn, có bucket, policy, CDN tùy setup/gói. Phù hợp nếu file là phần quan trọng, dung lượng tăng đều, cần public/private URL rõ.

Kết luận file: PocketBase ổn cho file nhỏ và ít. Supabase hợp hơn nếu storage lớn dần.

Deploy và chi phí: PocketBase thắng rõ ở giai đoạn đầu

PocketBase có thể chạy trên VPS rẻ:

– Hetzner
– DigitalOcean
– Fly.io
– Railway
– Render
– VPS riêng

Một VPS $5–10/tháng có thể gánh nhiều SaaS nhỏ nếu code gọn và traffic vừa. Backup cần tự làm nghiêm túc: database, files, config, offsite backup.

Supabase có free tier và paid tier. Free rất tốt để thử. Nhưng khi project production, chi phí tăng theo compute, storage, bandwidth, add-ons. Đổi lại, bạn bớt gánh vận hành.

Kết luận chi phí: PocketBase rẻ hơn nếu bạn biết tự host. Supabase đáng tiền nếu bạn muốn managed và ít chạm server.

Vận hành production: chỗ PocketBase cần tỉnh táo

PocketBase đơn giản, nhưng production không được chủ quan. Cần có:

– Reverse proxy qua Caddy/Nginx.
– HTTPS.
– Systemd service hoặc container.
– Backup tự động.
– Restore test định kỳ.
– Monitoring uptime.
– Log rotation.
– Firewall.
– Update plan.
– File storage backup.

SQLite là single file, backup dễ. Nhưng cũng dễ ảo tưởng: “copy file là xong”. Cần dùng backup đúng lúc, tránh copy khi DB đang ghi nếu không có cơ chế an toàn.

Supabase managed giảm nhiều phần này. Bạn vẫn cần quản lý schema, policies, cost, nhưng ít phải lo máy chủ.

Kết luận vận hành: PocketBase đơn giản nhưng bạn là DevOps. Supabase bớt DevOps hơn.

Khi nào nên chọn PocketBase?

Chọn PocketBase nếu:

– Bạn là solo founder hoặc team 2–3 người.
– Muốn MVP ra nhanh.
– App chủ yếu CRUD.
– Data model vừa phải.
– Traffic chưa lớn.
– Muốn chi phí thấp.
– Có khả năng tự host cơ bản.
– Muốn toàn quyền với backend.

Ví dụ hợp:

– Internal tool.
– Micro SaaS quản lý task.
– CRM nhỏ.
– Booking system nhỏ.
– Dashboard cho agency.
– Portal khách hàng.
– App membership trả phí.
– SaaS niche có vài trăm khách.

Khi nào nên chọn Supabase?

Chọn Supabase nếu:

– Bạn cần PostgreSQL ngay từ đầu.
– Dữ liệu quan hệ phức tạp.
– Cần query/report mạnh.
– Team quen SQL.
– Cần auth provider nhiều.
– Muốn managed service.
– Có kế hoạch scale rõ.
– Cần ecosystem lớn.

Ví dụ hợp:

– SaaS analytics.
– Marketplace.
– App nhiều workspace/role phức tạp.
– B2B có quyền truy cập chi tiết.
– Sản phẩm data-heavy.
– App cần search/vector/extensions.

Có thể bắt đầu PocketBase rồi chuyển Supabase không?

Có, nhưng không miễn phí công sức. Bạn sẽ phải migrate:

– Schema SQLite sang PostgreSQL.
– API calls.
– Auth users và password/session.
– File storage.
– Permission rules.
– Realtime logic.
– Admin workflows.

Nếu app còn nhỏ, migrate được. Nếu app đã lớn, migrate đau.

Chiến lược thực tế: dùng PocketBase khi cần validate nhanh. Nếu thấy sản phẩm có traction mạnh, doanh thu ổn, data model phình, lúc đó đánh giá lại. Nhưng đừng chọn PocketBase nếu bạn biết chắc 6 tháng nữa cần PostgreSQL phức tạp.

Kết luận thực tế

PocketBase có thể thay Supabase cho SaaS nhỏ, nhất là loại CRUD, dashboard, membership, internal tool, micro SaaS. Nó giúp bạn ship nhanh, trả ít tiền, hiểu toàn bộ hệ thống, không bị backend complexity kéo chìm.

Nhưng PocketBase không phải Supabase bản rẻ hơn. Nó là triết lý khác: nhỏ, gọn, tự host, SQLite-first. Supabase là nền tảng lớn hơn, PostgreSQL-first, managed-friendly, hợp đường dài hơn cho app dữ liệu phức tạp.

Nếu mục tiêu là có khách đầu tiên trong 2–4 tuần, PocketBase rất đáng dùng. Nếu mục tiêu là xây nền backend cho SaaS B2B nhiều quyền, nhiều report, nhiều tích hợp, Supabase an toàn hơn.

Quyết định tốt nhất:

MVP nhỏ, tiền ít, cần nhanh: PocketBase.
Sản phẩm data-heavy, scale rõ, team biết SQL: Supabase.
Chưa chắc thị trường cần gì: PocketBase trước, giữ code tách lớp để đổi sau.
Đã có khách enterprise hoặc compliance: Supabase hoặc backend riêng với PostgreSQL.

Công cụ không cứu SaaS. Khách hàng, tốc độ học, và vận hành bền mới cứu. PocketBase cho tốc độ. Supabase cho nền mạnh. Chọn theo rủi ro lớn nhất của bạn hôm nay.

#duoc #pocketbase #supabase #test #thay
Chia sẻ:
← Trước
Dùng Appwrite thay Supabase: Dựng backend full-stack từ A-Z

Bài viết tương tự

Bình luận

Chưa có bình luận. Hãy là người đầu tiên!