PocketBase là một nền tảng backend mã nguồn mở (open source) được viết bằng Go

Dominic NguyenDominic Nguyen
5 min read

Mình thực sự quá nể anh chàng viết ra PocketBase.

PocketBase là một nền tảng backend mã nguồn mở (open source) được viết bằng Go, cung cấp giải pháp toàn diện cho việc xây dựng ứng dụng SaaS, ứng dụng di động hoặc các dự án web với thời gian triển khai nhanh chóng. Điểm nổi bật của PocketBase là toàn bộ hệ thống được đóng gói trong một file thực thi duy nhất, giúp việc cài đặt và triển khai trở nên cực kỳ đơn giản.

🔥

Các tính năng chính của PocketBase

1. Cơ sở dữ liệu thời gian thực (Realtime Database):

- Sử dụng SQLite làm cơ sở dữ liệu nhúng, hỗ trợ truy vấn thời gian thực thông qua các subscription.

- Không yêu cầu cấu hình cơ sở dữ liệu bên ngoài, giúp giảm độ phức tạp.

- Có thể mở rộng để hỗ trợ các cơ sở dữ liệu khác thông qua tính năng tùy chỉnh.

2. Quản lý xác thực (Authentication):

- Hỗ trợ nhiều phương thức xác thực: email/mật khẩu, OAuth2 (Google, Facebook, GitHub, GitLab, v.v.).

- Quản lý người dùng dễ dàng với các tính năng như gửi OTP, xác minh email, đặt lại mật khẩu.

- Không lưu trữ session, sử dụng token để xác thực, đảm bảo tính stateless.

3. Lưu trữ tệp (File Storage):

- Tích hợp lưu trữ tệp cục bộ hoặc trên S3.

- Hỗ trợ tải lên, quản lý và tạo thumbnail cho tệp media một cách dễ dàng.

- Cho phép thêm/xóa tệp linh hoạt với các modifier như +field hoặc -field.

4. Bảng điều khiển quản trị (Admin Dashboard):

- Giao diện web thân thiện, cho phép quản lý dữ liệu, người dùng, tệp và cài đặt mà không cần kỹ năng lập trình nâng cao.

- Hỗ trợ superuser để quản lý toàn bộ hệ thống với quyền truy cập không giới hạn.

5. API RESTful

- Cung cấp các API JSON tổng quát để tương tác với dữ liệu, hỗ trợ lọc, sắp xếp, phân trang và mở rộng quan hệ (expand relations).

- Có sẵn SDK chính thức cho JavaScript (hỗ trợ trình duyệt, Node.js, React Native) và Dart (hỗ trợ web, di động, desktop).

6. Khả năng mở rộng:

- Có thể sử dụng như một framework Go hoặc mở rộng bằng JavaScript thông qua plugin JS VM.

- Cho phép thêm logic nghiệp vụ tùy chỉnh, tạo route mới hoặc tích hợp với các thư viện bên thứ ba.

7. Tính di động cao:

- Chỉ cần tải file thực thi (~11MB), giải nén và chạy lệnh ./pocketbase serve để khởi động.

- Không yêu cầu phụ thuộc bên ngoài, phù hợp cho cả môi trường phát triển và sản xuất.

🔥

Ưu điểm của PocketBase

- Đơn giản: Cài đặt và sử dụng dễ dàng, chỉ mất vài phút để thiết lập backend.

- Hiệu quả: Tiết kiệm thời gian và tài nguyên nhờ tích hợp sẵn các tính năng cần thiết.

- Linh hoạt: Phù hợp cho cả dự án nhỏ (ứng dụng cá nhân, PoC) và dự án lớn hơn (SaaS, API di động).

- Miễn phí và mã nguồn mở: Được cấp phép theo MIT License, cho phép sử dụng, sửa đổi và thậm chí cung cấp dưới dạng dịch vụ trả phí.

- Tự host: Không phụ thuộc vào dịch vụ đám mây, giúp kiểm soát dữ liệu và chi phí.

🔥

Hạn chế

- PocketBase vẫn đang trong giai đoạn phát triển tích cực, chưa đạt phiên bản 1.0.0, nên có thể thiếu tính tương thích ngược hoàn toàn.

- Không phù hợp cho ứng dụng sản xuất quan trọng: Khuyến cáo không sử dụng cho các ứng dụng đòi hỏi độ ổn định cao, trừ khi bạn sẵn sàng theo dõi changelog và thực hiện các bước migration thủ công.

- Giới hạn về quy mô: Phù hợp nhất cho ứng dụng vừa và nhỏ. Với ứng dụng quy mô lớn, cần cân nhắc thêm các giải pháp như Firebase hoặc Supabase.

💥

Ứng dụng thực tế

Dự án cá nhân/hobby: PocketBase lý tưởng cho các ứng dụng nhỏ, chẳng hạn như blog, CMS cho Astro, hoặc backend cho tiện ích mở rộng trình duyệt.

SaaS và API di động: Phù hợp để xây dựng backend cho ứng dụng di động hoặc SaaS với yêu cầu về xác thực, lưu trữ tệp và dữ liệu thời gian thực.

Thay thế nhẹ cho Firebase/Supabase: Với chi phí thấp (có thể host trên VPS $4/tháng) và hiệu suất tốt, PocketBase là lựa chọn hấp dẫn cho các nhà phát triển muốn tự quản lý backend.

💥

Cộng đồng và hỗ trợ

- PocketBase là dự án cá nhân, không có đội ngũ trả phí hay công ty đứng sau, nhưng được cộng đồng đón nhận tích cực.

- Cộng đồng trên X cũng đánh giá cao PocketBase vì tính đơn giản và hiệu quả, với nhiều người dùng đã triển khai thành công trên các nền tảng như Raspberry Pi hoặc VPS giá rẻ.

👉

Kết luận

PocketBase là một giải pháp backend mã nguồn mở mạnh mẽ, dễ dùng và tiết kiệm chi phí, đặc biệt phù hợp cho các nhà phát triển muốn nhanh chóng triển khai ứng dụng mà không cần quản lý nhiều dịch vụ phức tạp.

Tuy nhiên, do vẫn đang phát triển, bạn nên cân nhắc nhu cầu dự án trước khi sử dụng cho môi trường sản xuất. Nếu bạn cần một backend nhẹ, tự host và tích hợp đầy đủ tính năng, PocketBase là một lựa chọn đáng để thử.

0
Subscribe to my newsletter

Read articles from Dominic Nguyen directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Dominic Nguyen
Dominic Nguyen