Phòng máy chủ với đèn LED, minh họa hạ tầng cloud serverless của EmDash và Cloudflare Workers

Tôi build blog CMS này miễn phí bằng EmDash + Cloudflare Workers, đây là cách

Toàn bộ blog bạn đang đọc, CMS, admin UI, database, media, chạy trên Cloudflare Workers với chi phí $0/tháng. Đây là cách tôi làm, và những trade-off thật sự phải chấp nhận.

Blog bạn đang đọc không chạy trên WordPress, không thuê VPS, không trả phí hosting. Toàn bộ hệ thống, giao diện, CMS, admin UI, database, media storage, chạy trên Cloudflare Workers với chi phí $0/tháng. Đây là câu chuyện thực chiến về cách build nó.

Stack của blog này

  • EmDash: CMS serverless mã nguồn mở (MIT), build trên Astro, có admin UI đầy đủ để quản lý bài viết, trang, taxonomy, menu, media.
  • Cloudflare Workers: nơi toàn bộ ứng dụng chạy (serverless functions).
  • Cloudflare D1: database SQLite serverless, lưu toàn bộ content.
  • Cloudflare R2: media storage (ảnh bài viết), không tính phí egress.

Cách hoạt động: giao diện được render server-side trên Workers, content query từ D1 mỗi request. Admin UI nằm ngay trên cùng domain (/_emdash/admin).

Vì sao tôi chọn serverless CMS

  1. Không server để quản lý: không SSH, không cập nhật bảo mật OS, không backup thủ công.
  2. Chi phí $0: Cloudflare free tier đủ thoải mái cho blog cá nhân. Khi traffic tăng, vẫn rẻ hơn VPS rất nhiều.
  3. Admin UI thật sự: không phải static site generator thuần: tôi viết bài, đổi menu, quản lý media qua giao diện, không cần chạm code.
  4. Full-text search + RSS + bylines: có sẵn từ template.

Deploy chỉ là một lệnh

npm run deploy

Lệnh này build Astro rồi đẩy lên Cloudflare Workers. Toàn bộ migration database và seed tự động chạy khi deploy, không cần bước thủ công nào.

Trade-off thật sự (không tô hồng)

  • EmDash đang ở giai đoạn phát triển nhanh: API có thể thay đổi giữa các phiên bản. Cần theo dõi release.
  • Vendor lock-in nhẹ: content nằm trong D1, muốn rời đi thì export qua CLI (emdash export-seed) rồi migrate.
  • Giới hạn D1: database phân tán nên một số query phức tạp bị chậm; phù hợp blog cá nhân, không phải ứng dụng ghi nhiều.
  • Cần biết chút TypeScript/Astro để tùy chỉnh sâu (theme, layout, plugin).

Kết luận

Nếu bạn là developer/indie hacker muốn một blog có CMS thật sự, chi phí $0, và không muốn đụng WordPress, EmDash + Cloudflare Workers là lựa chọn đáng thử. Toàn bộ công cụ tôi dùng để vận hành blog này được liệt kê trên trang Tools tôi dùng.

Bài này nằm trong series thực chiến về AI & dev tools. Đăng ký newsletter để không bỏ lỡ bài mới.

No comments yet