Là người luôn yêu thích và ủng hộ phong trào mã nguồn mở, tôi luôn mong muốn được đóng góp vào kho tàng đó từ rất lâu. Sau một khoảng thời gian phát triển và thử nghiệm nội bộ, tôi quyết định đã đến lúc mở dự án này để cộng đồng có thể cùng sử dụng và xây dựng.
Bạn có thể đọc thêm quan điểm của tôi về mã nguồn mở ở bài này.
Nếu bạn đã từng ngồi setup một CMS cho dự án frontend, chắc hẳn bạn biết cái cảm giác đó như thế nào. Ngồi cấu hình, thêm một đống plugin, rồi lại loay hoay với permissions, với migrations, với đủ thứ thứ lộn xộn khác. Đó là lý do team Tensoract quyết định giải quyết vấn đề này bằng cách xây dựng Tsquare, một Headless CMS tối giản.
Bạn có thể xem chi tiết dự án tại đây.
Tsquare theo hướng API-first. Thay vì ép bạn phải dùng một frontend nhất định hay tuân theo một cấu trúc nào đó, Tsquare chỉ đơn giản là đưa JSON data đến bất kỳ đâu bạn cần, từ webapp tới mobile app hay cả các thiết bị IoT.

Một trong những tính năng khiến tôi thích nhất là Instant API Generation. Bạn định nghĩa schema, hệ thống tự động tạo ra REST API lẫn GraphQL endpoint đầy đủ CRUD mà bạn không cần viết thêm một dòng code nào. Swagger và OpenAPI documentation cũng được sinh ra tự động theo. Điều này nghe quen, nhưng Tsquare gọn nhẹ hơn nhiều so với những giải pháp tương tự mà tôi từng dùng. Điểm khác biệt nữa là Define Content Models at Runtime , tức là bạn có thể thay đổi cấu trúc dữ liệu ngay trong lúc hệ thống đang chạy mà không cần restart service hay chạy migration. Bạn cũng có thể lọc dữ liệu theo nhiều điều kiện lồng nhau, tìm kiếm full-text trên nhiều trường cùng lúc, sort theo bất kỳ thuộc tính nào. Tất cả đều qua URL query parameters đơn giản mà không cần phải viết custom endpoint hay dùng đến một query language phức tạp.

Bảo mật trong Tsquare được xây dựng theo dạng Fine-grained ACL, cho phép bạn kiểm soát quyền ở mức rất chi tiết. Bạn có thể cho phép một editor chỉnh sửa Blog Posts nhưng chỉ được xem Settings mà không được sửa. Bạn cũng có thể giới hạn quyền truy cập đến từng dòng dữ liệu dựa trên creator ID hay trạng thái của bản ghi.

Về mặt mở rộng, Tsquare cung cấp hơn 40 lifecycle hooks để bạn can thiệp vào bất kỳ sự kiện nào, từ beforeCreate đến afterUpdate. Bạn có thể tự do viết thêm tính năng, plugin. Sau này nếu tình hình ổn, tôi sẽ mở thêm tính năng Marketplace để bạn có thể bán các plugin đó.
Tsquare được phát hành dưới giấy phép MIT, bạn hoàn toàn tự do sử dụng, tùy biến và triển khai. Dự án dự kiến chính thức công khai mã nguồn vào tháng 6 năm 2026 và hiện đang mở waitlist. Hy vọng là thông qua dự án này, tôi có thể truyền tải được thông điệp nghiêm túc với opensource và mang lại giá trị cho công đồng.
Bình luận ()