· cms / headless-cms / sanity

Headless CMS tốt nhất cho developer năm 2026: 5 lựa chọn

Sanity là lựa chọn SaaS mặc định; Strapi và Payload dẫn đầu tier tự host. Khi nào mỗi trong 5 ứng viên thắng — và tại sao Contentful bị loại khỏi danh sách.

Bởi Ethan

2.375 từ · 12 phút đọc

Nếu bạn đang bắt đầu dự án mới hôm nay và cần một headless CMS: dùng Sanity nếu muốn SaaS tiện lợi với free tier thực sự, Strapi hoặc Payload nếu quyền sở hữu dữ liệu là ưu tiên, và Directus khi bạn cần wrap database sẵn có. TinaCMS chỉ phù hợp khi nội dung của bạn sống trong Git và visual editing trên static site là yêu cầu bắt buộc.

Contentful từng có mặt trong danh sách này. Không còn nữa — khoảng trống giá $0→$300/tháng mà không có bậc trung gian khiến nó không còn phù hợp với ai ngoài đội procurement doanh nghiệp.

Bài này dành cho ai

Developer đang chọn headless CMS cho dự án mới, hoặc đánh giá khả năng migration khỏi CMS hiện tại không còn đáp ứng nhu cầu. Nếu bạn đang hài lòng với CMS hiện tại, chi phí chuyển đổi gần như chắc chắn sẽ vượt qua bất kỳ lợi ích nào ở đây.

Chúng tôi đã kiểm tra gì

Giá lấy từ trang chính thức vào 2026-05-24. Dữ liệu GitHub từ API của GitHub cùng ngày. Chất lượng tích hợp đánh giá từ tài liệu chính thức và starter template. Chúng tôi không tự chạy benchmark độ trễ query — khoảng trống này được ghi chú trong phần Lưu ý.

Sanity v4Strapi v5Payload v3Directus v12TinaCMS
Free tier20 chỗ, 10k docsMIT self-hostMIT self-host<$5M doanh thu + <50 nhân viên2 người dùng
Gói trả phí đầu tiên$15/chỗ/tháng$18/tháng (Cloud)Chỉ self-host$99/tháng (Cloud)$24/tháng
APIREST + GROQ + GQLREST + GQL + Typed SDKREST + GQL + Local APIREST + GQL + Real-timeAPI/Beta (chỉ Business+)
Self-hostChỉ Studio UIFull stackFull stackFull stack (MSCL)Data layer
AstroOfficial adapterOfficial toolkitCommunity templatesOfficial guidesOfficial (visual exp.)
Next.jsDeepDeepNative co-locatedOfficialPrimary
Giấy phépSaaS (content)MITMITMSCLApache 2.0
GitHub ★6.1k (OSS Studio)72.2k42.6k35.8k13.4k

Sanity v4

Sanity là một SaaS content platform — Sanity Studio (giao diện quản trị) là open source theo MIT, nhưng dữ liệu nội dung của bạn nằm trong Content Lake của Sanity. Không có tùy chọn self-host dữ liệu. Đây là điểm dừng cứng cho các trường hợp đòi hỏi compliance nghiêm ngặt; với những người khác, đây là sự đánh đổi cần hiểu rõ trước khi bắt đầu.

Đổi lại, bạn có được developer experience tốt nhất trong nhóm này cho structured content. GROQ là ngôn ngữ query của Sanity, và đây là lợi thế thực sự khó sao chép. Một GROQ query duy nhất xử lý được join, projection, và filter trên Content Lake, phục vụ qua global CDN. GROQ cũng cho phép thay đổi content model không cần downtime — không cần schema regeneration.

Studio v4 (tháng 7 năm 2025) là bản nâng cấp nhỏ có chủ ý: yêu cầu Node.js 20 (từ 18) — nâng lên Node 20 mở đường cho Vite 7 trong bản tương lai — và không có thay đổi breaking nào khác. Nếu bạn đang dùng Node 18, hãy nâng cấp trước khi bắt đầu. Mọi code Studio hiện có đều chạy bình thường trên Node 20+.

Giá cả: Free tier bao gồm 20 chỗ và 10.000 document — đủ dùng thực sự cho solo dev và agency nhỏ. Growth là $15/chỗ/tháng (viewer miễn phí), không bị khóa theo năm. Các tính năng bổ sung tùy chọn ở Growth (SSO $1.399/tháng, hỗ trợ riêng $799/tháng) cho thấy gói Growth của Sanity là con đường lên enterprise, không phải giới hạn cuối.

Astro và Next.js: Cả hai đều có official adapter. @sanity/astro cài qua npx astro add @sanity/astro và hỗ trợ cả static (build-time) lẫn server (SSR) mode với visual editing ở chế độ sau. Tích hợp Next.js là hoàn chỉnh nhất trong nhóm này.

Strapi v5

Strapi là CMS open source có nhiều stars nhất trên GitHub (72.237 stars tính đến tháng 5 năm 2026) và là lựa chọn mặc định cho team muốn toàn quyền sở hữu dữ liệu mà không lo vấn đề giấy phép. MIT mãi mãi, self-host trên infra của bạn, không gọi về nhà.

v5 (tháng 9 năm 2024) là bản viết lại đáng kể. Thay đổi lớn nhất: API response phẳng. Code unwrap data.attributes.title phải viết lại thành data.title. documentId (UUID string) cũng thay thế id dạng số làm định danh content chính — mọi client code dùng data.id trong database query hoặc API call cần cập nhật. @strapi/client typed SDK mới là cải tiến DX thực sự, bù lại một phần công sức migration.

Công cụ migration: npx @strapi/upgrade major tự động hóa phần lớn thay đổi v4→v5 bằng codemod. Dành thêm thời gian cho phần còn lại — đặc biệt nếu bạn có custom plugin. Strapi v4 chỉ nhận security patch đến tháng 4 năm 2026, nên migration không phải tùy chọn với dự án còn đang dùng v4.

Giá cả: self-hosting miễn phí (MIT). Strapi Cloud Essential bắt đầu từ $18/tháng; hạ tầng tự quản lý tốn $6–7/tháng trên Hetzner hoặc ~$20/tháng trên DigitalOcean cho setup cơ bản. Production-grade trên managed Postgres chạy $200–300/tháng tùy theo tải. Để so sánh chi phí nền tảng hosting cho full-stack app, xem platform deploy tốt nhất cho full-stack web app năm 2026.

Astro và Next.js: Strapi có Astro toolkit riêng — Astro Strapi Loader, Astro Strapi Blocks Field, và official Astro Strapi Starter template. Tích hợp Next.js dùng @strapi/client với TypeScript đầy đủ. Một trong những framework được hỗ trợ tốt nhất trong nhóm này.

Payload v3

Payload là CMS code-first: schema nội dung của bạn nằm trong file TypeScript configuration, không phải database table hay GUI. Không có màn hình “admin tự cấu hình schema” — engineer định nghĩa nó, engineer làm chủ nó. Với team mà developer dẫn dắt, đây chính là điểm then chốt. Nếu schema-as-code hấp dẫn bạn, bước tiếp theo là chọn ORM TypeScript phù hợp — Best TypeScript ORM 2026: Drizzle, Prisma, Kysely, TypeORM so sánh các lựa chọn.

Tích hợp native với Next.js định nghĩa một tiêu chuẩn mới. npx create-payload-app tạo dự án Next.js với Payload cùng vị trí. Local API cho phép server component query trực tiếp vào database Payload — không có HTTP round-trip. Với kiến trúc Next.js co-located, đây là đường query nhanh nhất trong tất cả các CMS trong danh sách này.

Figma mua lại Payload (tháng 6 năm 2025): Payload gia nhập Figma. Cam kết OSS được giữ nguyên — giấy phép MIT không thay đổi — và nguồn lực từ Figma có thể đẩy nhanh quá trình phát triển. Điểm trừ thực tế: Payload Cloud tạm dừng nhận đăng ký mới sau khi được mua lại. Self-hosting là lựa chọn duy nhất cho dự án mới. Payload Cloud có sẵn trước khi bị mua lại; kiểm tra payloadcms.com/get-started để biết trạng thái hiện tại.

Giá cả: self-hosting miễn phí (MIT). Hạ tầng dưới €10/tháng trên Hetzner, hoặc $40–100/tháng trên Vercel/Railway/Render với managed Postgres.

Astro và Next.js: Hỗ trợ Astro do cộng đồng dẫn dắt — không có official Payload adapter, dù starter template có trên GitHub. Next.js là first-class: Payload v3 về cơ bản được xây dựng lại quanh Next.js App Router.

GitHub: 42.590 stars, commit hàng ngày. CMS developer tăng trưởng nhanh nhất trong chu kỳ 2024–2025.

Directus v12

Directus có định hướng kiến trúc khác: đây là data platform wrap database sẵn có của bạn và đồng thời phơi ra REST, GraphQL, real-time WebSocket, và typed SDK. Nếu bạn có database Postgres muốn thêm content management mà không cần mô hình hóa nội dung từ đầu, Directus là con đường trực tiếp nhất. Với team đang cân nhắc managed Postgres backend trước khi chọn Directus, Supabase vs Firebase (2026): Postgres hay NoSQL? phân tích các đánh đổi backend.

v12 (tháng 5 năm 2026) mang đến giấy phép MSCL — miễn phí cho tổ chức có cả doanh thu dưới $5M/năm và dưới 50 nhân viên. Tổ chức lớn hơn có Core tier miễn phí để prototype, với các tier trả phí cho tính năng enterprise (SCIM, offline mode). Code tự chuyển sang GPLv3 sau 4 năm. Đây là sự thay đổi đáng kể so với BSL 1.1 của v10, vốn bị phản ứng vì cách định giá. MSCL dễ chịu hơn BSL cho hầu hết trường hợp phát triển phần mềm.

Giá Cloud siết chặt hơn vào tháng 11 năm 2025: tier Starter (~$15–49/tháng) bị ngừng. Cloud Professional hiện bắt đầu từ $99/tháng (trả năm) cho 5 Studio user, 75k database entry, và 250k API request/tháng. Người dùng self-host mới có template Railway một click.

Astro và Next.js: Official guide cho cả hai framework, @directus/sdk phủ toàn bộ bề mặt tích hợp. Không có dedicated adapter, nhưng SDK khá đầy đủ. Đánh giá: ổn định, nhưng không turnkey như Sanity adapter hay Strapi toolkit.

GitHub: 35.849 stars. Được bảo trì tích cực, commit hàng ngày.

TinaCMS

TinaCMS là lựa chọn dựa trên Git. Nội dung lưu trong file Markdown hoặc MDX trong repository của bạn — CMS là một lớp nằm trên Git workflow, không phải data store riêng biệt. Điều này khiến nó hấp dẫn với static-site và Jamstack khi content-as-code là ràng buộc thiết kế, không phải bổ sung sau.

Những đánh đổi là thực tế. Truy cập API (Beta) yêu cầu gói Business ($249/tháng) — dưới mức đó, bạn làm việc với Git I/O, không phải API. Visual editing cho Next.js là tích hợp hoàn chỉnh nhất; visual editing cho Astro vẫn là experimental tính đến tháng 5 năm 2026. Editorial Workflow (hàng đợi draft/review) hiện yêu cầu Team Plus ($41/tháng), được chuyển lên từ tier thấp hơn.

Giá cả: Free tier cho 2 người dùng. Team $24/tháng (đến 10 người dùng). Business $249/tháng để truy cập API và 20 người dùng.

Astro và Next.js: Next.js là framework chính — tích hợp sâu, hỗ trợ MDX, visual editing ổn định. Tích hợp Astro có official nhưng visual editing là experimental. Đừng xây dựng Astro production site với TinaCMS nếu bạn cần visual editing.

GitHub: 13.357 stars, đang hoạt động.

Kết luận headless CMS — chọn X khi Y

Chọn Sanity nếu bạn muốn SaaS DX tốt nhất với free tier thực sự và không bị chặn bởi ràng buộc không thể self-host dữ liệu. GROQ xứng đáng với chi phí bỏ ra với bất kỳ content model nào có join phức tạp.

Chọn Strapi nếu toàn quyền sở hữu dữ liệu là yêu cầu và bạn muốn lựa chọn OSS đã được kiểm chứng trong production nhất. Hãy chuẩn bị cho công việc migration v4→v5 nếu đang nâng cấp; v5 greenfield thì gọn gàng.

Chọn Payload nếu bạn đang xây Next.js application và muốn CMS nằm cùng dự án với zero HTTP overhead. Cũng là lựa chọn đúng cho team code-first không tin tưởng vào schema định nghĩa qua GUI.

Chọn Directus nếu bạn đang wrap database có sẵn hoặc cần REST + GraphQL + real-time từ một bề mặt duy nhất. Đánh giá ngưỡng giấy phép MSCL nếu tổ chức bạn vượt giới hạn free tier.

Chọn TinaCMS nếu content-as-code trong Git là yêu cầu thiết kế cứng và framework chính của bạn là Next.js. Bỏ qua nó với Astro nếu visual editing quan trọng.

Bỏ qua Contentful: $0→$300/tháng mà không có bậc trung gian khiến nó không phù hợp với đối tượng này trừ khi bạn đã có trong quy trình procurement doanh nghiệp.

Lưu ý

Không có benchmark độ trễ query độc lập. Sanity định tuyến tất cả Content Lake read qua global CDN. Chúng tôi không tự đo thời gian phân phối GROQ so với GraphQL. Hãy tự xác minh độ trễ với data shape cụ thể của bạn.

Trạng thái Payload Cloud có thể thay đổi. Đăng ký mới bị tạm dừng tại ngày nghiên cứu (2026-05-24) sau khi Figma mua lại. Kiểm tra payloadcms.com/get-started trước khi lên kế hoạch dùng Cloud hosting.

Ngưỡng giấy phép MSCL của Directus. Ngưỡng $5M doanh thu / 50 nhân viên áp dụng đồng thời (cả hai điều kiện phải thỏa mãn để được miễn phí). Xác minh điều khoản hiện tại tại directus.io/blog/directus-v12-license-change trước khi dựa vào free tier trong sản phẩm thương mại.

Strapi v4 EOL là tháng 4 năm 2026. Không có hỗ trợ sau ngày đó. Nếu bạn vẫn đang dùng v4, việc migration là khẩn cấp, không phải tùy chọn.

Rào cản API của TinaCMS. API (Beta) yêu cầu tier Business ($249/tháng). Nếu kiến trúc của bạn phụ thuộc vào việc query TinaCMS theo dạng lập trình bên ngoài Git layer, hãy tính toán chi phí đó ngay từ đầu.

Không có chương trình affiliate được xác minh. Không CMS nào trong năm CMS ở bài viết này có chương trình affiliate dành cho người dùng thông thường tại thời điểm nghiên cứu. Tất cả link bên dưới là link thường đến tài liệu và trang định giá chính thức.

Tài liệu tham khảo

  1. Sanity pricing — fetched 2026-05-24
  2. Sanity Studio v4 changelog
  3. Sanity Astro integration
  4. Astro + Sanity guide
  5. Strapi Cloud pricing — fetched 2026-05-24
  6. Strapi v4→v5 breaking changes
  7. Strapi Astro integration
  8. Payload + Figma acquisition — June 2025
  9. Payload pricing / getting started — fetched 2026-05-24
  10. Directus v12 MSCL license — May 2026
  11. Directus Cloud tier update (Nov 2025)
  12. Directus pricing — fetched 2026-05-24
  13. TinaCMS pricing — fetched 2026-05-24
  14. TinaCMS Astro docs
  15. GitHub stars — all five CMSes — API data fetched 2026-05-24
  16. Contentful pricing — fetched 2026-05-24
  17. Payload GitHub repo — MIT license
  18. Strapi v4 migration and support lifecycle — fetched 2026-05-24