TL;DR

PostgREST là một web server độc lập biến bất kỳ database PostgreSQL nào thành một REST API đầy đủ — tự động, không cần viết backend. Cấu trúc bảng, view, stored procedure và quyền truy cập trong DB sẽ chính là API. Phiên bản mới nhất v14.10 ra ngày 2026-04-16, có hơn 27.000 sao trên GitHub, viết bằng Haskell, MIT license, và là engine REST nằm dưới Supabase.

Có gì mới

PostgREST không phải tool mới — nhưng nó vừa được @tom_doerr nhắc lại trên X như một "underrated dev tool" đáng dùng năm 2026. Lý do đơn giản: trong khi cả ngành đang chạy theo BaaS phức tạp, PostgREST vẫn giữ triết lý gốc của nó — một binary, một file config, một database. Hết.

  • v14.10 (2026-04-16): cải thiện thông báo lỗi, OpenAPI spec chính xác hơn, hot-reload schema qua NOTIFY.
  • Được Supabase, Neon, Cybertec tài trợ và dùng nội bộ.
  • Đã có managed offering trên Aiven, Neon, Supabase — không cần tự host nếu không muốn.

Vì sao đáng quan tâm

Nếu bạn từng viết một service Express/FastAPI chỉ để trả về SELECT * FROM users WHERE id = ?, bạn biết cảm giác lãng phí. PostgREST loại bỏ toàn bộ lớp middle đó. Schema của bạn đã định nghĩa: bảng nào, cột nào, ai được đọc cột nào (qua Row Level Security). Vậy tại sao phải lặp lại logic đó trong code Node.js/Python?

The structural constraints and permissions in the database determine the API endpoints and operations.

Nói cách khác: database là single source of truth, kể cả cho API surface. Sửa schema → API tự cập nhật ngay lập tức (qua tín hiệu NOTIFY), không cần redeploy server.

Sự thật kỹ thuật

Dưới capo, PostgREST là một bộ máy hiệu năng cao được tinh chỉnh cẩn thận:

Thuộc tínhGiá trị
Ngôn ngữ chínhHaskell (66.6%)
HTTP serverWarp
DB driverHasql (binary protocol, prepared statements)
Throughput~2.000 req/s/instance
StateStateless — scale ngang dễ dàng
AuthJWT + PostgreSQL roles + RLS
OpenAPISwagger 2.0 auto-generated tại root
LicenseMIT
GitHub stars27.000+

Mọi feature truy vấn bạn cần đều có sẵn qua query string: filtering (?age=gte.18), ordering, pagination (Range header), embedding/join qua foreign key (?select=*,posts(*)), full-text search, JSON operators, GeoJSON. Stored procedure được expose thành endpoint /rpc/{tên_hàm}.

So sánh với Hasura, Supabase, custom backend

ToolAPI styleStackPhù hợp khi
PostgRESTREST + OpenAPIChỉ PostgreSQLSQL mạnh, muốn REST tối giản
HasuraGraphQL-firstPostgres + nhiều DB khácGraphQL-native, multi-DB
SupabaseREST (PostgREST bên trong) + RealtimeManaged full-stackBaaS, cần auth/storage/realtime sẵn
Express/FastAPITuỳ ýTuỳ ýBusiness logic phức tạp

Điểm mấu chốt: chọn Supabase = đang dùng PostgREST, chỉ thêm UI quản trị, auth và storage bên trên. Nếu bạn không cần đống tiện ích đó, dùng PostgREST trần sẽ nhẹ hơn, rẻ hơn, kiểm soát hơn.

Use case thực tế

  • Internal admin dashboard / CRUD panel: trỏ frontend (React/Vue) vào API auto-generated, xong.
  • Mobile/web app multi-tenant: dùng RLS cô lập dữ liệu theo tenant_id, JWT chứa role + tenant.
  • MVP / prototype nhanh: từ CREATE TABLE đến API chạy được trong vài phút.
  • Data layer cho microservice: expose một bounded context bằng schema riêng, version qua schema (api_v1, api_v2).
  • Read-only analytics API: bọc các view và stored proc thành endpoint dạng data product.

Ai hưởng lợi nhiều nhất? Indie hacker, solo dev, team nhỏ — những người không muốn tốn 2 tuần dựng CRUD server cho mỗi project mới.

Hạn chế & chi phí

PostgREST miễn phí, MIT, self-hosted. Chi phí duy nhất là hạ tầng. Nhưng đổi lại, có vài giới hạn cần biết trước:

  • Không có GUI — mọi cấu hình đều bằng SQL + một file postgrest.conf.
  • Yêu cầu SQL/RLS chắc tay; logic nghiệp vụ phi-CRUD phải viết bằng PL/pgSQL hoặc tách service riêng.
  • Không có sẵn auth UI, email, file storage, realtime — đây không phải full BaaS. Cần mấy thứ đó thì dùng Supabase.
  • API surface bám sát schema — refactor cột phải cẩn thận để không break client.
  • Endpoint không-CRUD phải làm qua stored procedure (RPC).

Tiếp theo là gì

Roadmap GitHub đang đẩy mạnh observability, async notifications và mở rộng query syntax. Hệ sinh thái quanh PostgREST cũng đang lớn: Neon và Aiven đều ship managed PostgREST, subzero bán bản thương mại với extension. Trong bối cảnh các team đang "giảm cân" stack — bớt service, bớt code phải maintain — một công cụ chỉ làm một việc và làm rất tốt như PostgREST đang được nhìn lại đúng giá trị.

Nguồn: GitHub PostgREST, PostgREST Docs v14, Supabase, DreamFactory analysis.