Bỏ qua tới nội dung
Headless CMS· ·9 phút đọc

So sánh 4 Headless CMS mã nguồn mở phổ biến

Nguyen Hien
So sánh 4 Headless CMS mã nguồn mở phổ biến
Cỡ chữ

Headless CMS tách phần quản lý nội dung khỏi phần giao diện: nội dung được cấp qua API để bất kỳ frontend nào — trang web, app, mobile — cũng dùng được. Bài này so sánh bốn headless CMS mã nguồn mở hay được nhắc (Strapi, Directus, KeystoneJS, Contenta), nói thẳng cái nào đã ngừng phát triển, và quan trọng hơn: khi nào bạn KHÔNG nên dùng headless.

Headless CMS là gì

Mô hình headless CMS: nội dung tách khỏi giao diện, cấp qua API cho nhiều kênh
Trong mô hình headless, backend nội dung (Strapi, Directus, Keystone) cấp dữ liệu qua REST/GraphQL/JSON:API cho mọi giao diện: web, app, mobile, IoT.

“Headless” nghĩa là CMS chỉ còn phần thân (quản lý và lưu nội dung), bỏ phần đầu (giao diện hiển thị). Nội dung được cấp ra qua API — bạn tự dựng giao diện riêng bằng công nghệ frontend tùy chọn. Nhờ đó một nguồn nội dung phục vụ được nhiều kênh cùng lúc.

Headless khác CMS truyền thống thế nào

So sánh headless CMS và CMS truyền thống
Headless tách frontend nên một nội dung phục vụ nhiều kênh và tự do chọn công nghệ giao diện; CMS truyền thống gắn liền web và giao diện, cài là chạy, hợp trang web thông thường.

Nếu bạn cần một trang web trọn gói cài là chạy, các CMS truyền thống như WordPress hay Drupal vẫn phù hợp hơn. Headless mạnh khi một nguồn nội dung phải phục vụ nhiều kênh — nhưng kèm theo nó là chi phí mà phần dưới sẽ nói rõ.

Strapi — phổ biến nhất, lấy nội dung làm trung tâm

Strapi (nền Node.js) là headless CMS mã nguồn mở phổ biến nhất hiện nay. Bản 5 đổi khá nhiều: cách gọi nội dung mới, quản lý bản nháp và xuất bản gọn hơn, lưu lịch sử nội dung, xem trước trực tiếp. Mạnh ở chỗ dễ bắt đầu, có giao diện soạn thảo tốt và hệ plugin lớn. Hợp đội quen JavaScript muốn dựng nhanh.

Directus — lấy database làm trung tâm

Directus đi triết lý khác Strapi: thay vì tạo cấu trúc nội dung mới, nó phủ một lớp quản lý và API lên một database SQL có sẵn. Nói cách khác, Strapi là “content-first” (bắt đầu từ nội dung), Directus là “database-first” (bắt đầu từ dữ liệu). Directus mạnh khi bạn đã có database và muốn kiểm soát chặt phần dữ liệu/backend; phần soạn thảo nội dung thì không bóng bẩy bằng các nền thương mại.

KeystoneJS — thiên về khung backend

KeystoneJS còn được bảo trì nhưng đúng hơn nên gọi là một khung backend kèm CMS, không phải CMS đóng gói sẵn. Nó hợp đội ngũ dùng TypeScript muốn tự dựng nhiều, định nghĩa cấu trúc dữ liệu trước (schema-first). Lưu ý: Keystone không có bản dịch vụ đám mây dựng sẵn — bạn phải tự host và tự lo hạ tầng.

Contenta — đã ngừng phát triển, đừng chọn mới

Đây là điểm cần đính chính rõ vì nhiều bài tiếng Việt vẫn liệt kê Contenta như một lựa chọn sống. Thực tế dự án này đã được lưu trữ (archive) từ năm 2024 — chính tác giả ghi rõ đây vốn là bản mang tính minh hoạ/giáo dục và quyết định dừng. Không nên chọn Contenta cho dự án mới. Nếu bạn cần sức mạnh quản lý nội dung của Drupal theo kiểu headless, hãy dùng Drupal headless thuần thay vì bản Contenta đã ngừng.

Bảng so sánh 4 headless CMS

CMSTriết lýNền tảngAPITrạng thái 2026
StrapiContent-firstNode.jsREST · GraphQLSống mạnh, phổ biến nhất
DirectusDatabase-firstNode.jsREST · GraphQLSống, mạnh về dữ liệu
KeystoneJSBackend frameworkNode.js · TypeScriptGraphQLCòn bảo trì, tự host
ContentaDrupal headlessDrupal · PHPJSON:API · GraphQLĐã archive (2024)

Chọn headless CMS theo tình huống

Chọn headless CMS theo tình huống dự án
Strapi hợp khi cần bắt đầu nhanh với giao diện soạn thảo tốt; Directus khi đã có database SQL; Keystone khi team dùng TypeScript muốn tự dựng.

Khi nào KHÔNG nên dùng headless

Phần trung thực nhất bài này: đa số website doanh nghiệp nhỏ ở Việt Nam KHÔNG cần headless. Đi headless nghĩa là bạn phải có người dựng frontend riêng, có quy trình build, và vận hành hai phần tách rời (phần nội dung và phần giao diện) thay vì một hệ duy nhất. “Miễn phí giấy phép” không có nghĩa là rẻ: chi phí dồn sang nhân sự (cần lập trình viên frontend), hạ tầng (hai dịch vụ phải duy trì) và thời gian (sửa giao diện phải build lại). Với một trang web công ty thông thường, WordPress dựng và sửa nhanh hơn, rẻ hơn, dễ tuyển người hơn nhiều.

Nếu bạn chỉ cần một website hoàn chỉnh chứ không phải đi theo hướng headless, có thể xem qua dịch vụ thiết kế website của Web22.

Headless chỉ thực sự đáng giá khi: bạn có nhiều kênh đầu ra cùng dùng chung nội dung (web + app + màn hình trong cửa hàng…), đội ngũ đã có lập trình viên frontend, và bạn cần tốc độ cùng sự an toàn của một giao diện tách riêng.

Còn các nền thương mại thì sao

Ngoài nhóm mã nguồn mở tự host ở trên, còn các headless CMS thương mại như Contentful hay Sanity — bạn không tự cài mà trả phí theo mức dùng, đổi lại đỡ lo hạ tầng. Đây là ranh giới đáng cân nhắc: mã nguồn mở (tự host, miễn phí giấy phép nhưng tốn người vận hành) so với thương mại (trả tiền nhưng nhẹ vận hành). Trong nhóm mã nguồn mở, một cái tên mới đáng theo dõi là Payload — nổi lên nhanh bên cạnh Strapi và Directus.

Web22 chọn gì

Với đa số khách hàng cần một trang web hoàn chỉnh, Web22 vẫn ưu tiên WordPress vì nhanh và dễ vận hành. Headless CMS chỉ được Web22 đề xuất khi một nguồn nội dung phải phục vụ đồng thời web, app và các kênh khác — khi đó Strapi thường là điểm khởi đầu cân bằng nhất cho đội JavaScript. Ngoài bốn nền tảng trên, một hướng mới đáng theo dõi là EmDash — CMS thế hệ mới chạy thẳng trên hạ tầng Cloudflare.

Liên quan

Đọc thêm so sánh các CMS mã nguồn mở truyền thống nếu bạn cần một trang web cài là chạy, hoặc so sánh các công cụ tạo web tĩnh nếu nội dung của bạn chủ yếu là tĩnh.

Nguồn tham khảo

Chọn giữa headless và CMS truyền thống là quyết định kiến trúc, không chỉ là chọn công cụ. Nếu bạn cân nhắc tách giao diện khỏi nội dung cho sản phẩm của mình, hãy xem dịch vụ WordPress headless của Web22 — phân tích nhu cầu đa kênh thực tế trước rồi mới đề xuất hướng đi.

Đọc tiếp

Bài viết
cùng chủ đề.

Tất cả bài viết