Đến nội dung chính
CafeJS Docs

Công nghệ

Astro dựng trang, TinaCMS quản lý nội dung, React chỉ chạy trong admin. Không có database và không cần server riêng cho trang công khai.

Bảng tóm tắt

PhầnDùngGhi chú
Sinh trangAstro 7Mọi trang được build sẵn thành HTML
Quản lý nội dungTinaCMSBản đã chỉnh sửa, nằm trong vendor/
Admin và khung xem trướcReact 18Chỉ chạy trong admin; trang công khai không tải React
Ngôn ngữTypeScript
Môi trườngNode.js 22 hoặc 24, pnpmKhông dùng npm hay yarn
Kiểm tra codeBiomepnpm lint, pnpm format

Trang tĩnh, admin có React

Lúc build, mỗi trang được dựng thành một file HTML. Trang công khai chỉ tải vài đoạn script nhỏ cho phần cần tương tác (menu, câu hỏi thường gặp, form), không tải React.

Mỗi trang còn có một bản /preview/… dùng cho admin: bản này chạy React trong trình duyệt, nên khi bạn gõ trong form, preview vẽ lại ngay mà không gọi server. Bản /preview/… có noindex, máy tìm kiếm không đưa vào kết quả.

Nội dung là file JSON

Mọi trang, menu, màu và cài đặt là file JSON trong content/. Admin đọc và ghi đúng các file đó. Vì nội dung nằm trong Git, mỗi lần sửa là một commit: xem lại được lịch sử và quay về bản cũ được.

Kiểm tra code

Terminal
pnpm test       # test của các phần dùng chung
pnpm check      # kiểm tra kiểu TypeScript
pnpm contrast   # độ tương phản của mọi bộ màu
pnpm lint       # Biome

Sau mỗi lần build còn có bốn lệnh kiểm tra bản build: pnpm zero-js (không trang công khai nào tải React), pnpm nul-bytes, pnpm preview-parity (bản /preview/… vẽ đúng HTML của trang công khai) và pnpm seo-check.