Minilytics: web analytics miễn phí trên Cloudflare, đo được nguồn nào ra tiền

Đa số công cụ analytics trả lời được câu “hôm nay có bao nhiêu người vào site”. Rất ít công cụ trả lời được câu khó hơn: “trong số đó, nguồn nào mang lại tiền”. Minilytics làm đúng việc thứ hai, và nó chạy trên free plan của Cloudflare.

Nó làm gì, cụ thể

Minilytics là web analytics tự host cho website của bạn, lấy cảm hứng từ DataFast. Điểm khác biệt nằm ở chữ “revenue-first” trong mô tả repo: dashboard không xoay quanh pageview mà xoay quanh tiền.

Cụ thể nó track những thứ sau, mỗi chỉ số đều có % thay đổi so với kỳ trước: visitors, revenue, conversion rate, revenue per visitor, bounce rate, session time, online now. Có chart visitors dạng line và revenue dạng bar, xem theo giờ, ngày, tuần hoặc tháng. Khoảng thời gian chọn được từ hôm nay, hôm qua, 24h qua, 2 ngày, 7/30/90 ngày, 12 tháng, all time cho tới custom range, kèm nút ‹ › để lùi tới.

Phần attribution thì khá chi tiết: channel, referrer (X, Google, ChatGPT, Reddit…), campaign qua utm_campaign, keyword qua utm_term, và tag ?ref=. Nó cũng ghi lại country, region, city, browser, OS, device. Hành vi thì có pages, entry pages, exit links (outbound clicks), button clicks, custom goals và funnels.

Chỗ tôi thấy đáng giá nhất là danh sách Journey: mỗi khách hàng hiện lên với nguồn đến, số tiền, thời gian từ lúc vào tới lúc convert, kèm timeline đầy đủ (visit, các trang đã xem, click, payment). Đây là thứ mà gắn một SDK analytics vào site xong thường phải tự join bảng mới có.

Ngoài ra có live globe, bấm phím M để xem từng visitor đang online trên quả địa cầu 3D hoặc map 2D, kèm feed page view, goal, payment theo thời gian thực. Map tile lấy từ OpenFreeMap, không cần API key. Visitor ẩn danh được đặt tên kiểu “brown fox” cho dễ nhớ. Click vào một dòng bất kỳ là filter toàn bộ dashboard theo dòng đó, ví dụ “chỉ xem visitor từ tweet launch”. Một login quản được nhiều website.

Vì sao repo này đang được chú ý

621 sao, tạo ngày 2026-10-23, cập nhật 2026-10-26. Tức là repo mới vài ngày tuổi tại thời điểm tôi xem. Viết bằng TypeScript, license MIT. Con số 621 sao trong vài ngày cho một dự án analytics tự host là tín hiệu đáng để ý, nhất là khi thị trường này đã có Plausible, Umami, Fathom.

Lý do tôi đoán nó hút người xem: indie hacker và solo founder thường không muốn trả 15 đô một tháng cho analytics khi site còn ít traffic, nhưng lại rất cần biết tiền đến từ đâu. Minilytics đánh trúng khoảng trống đó bằng hai thứ. Một là chi phí gần như bằng không, vì chạy trên free tier Cloudflare. Hai là nó gắn revenue vào thẳng nguồn traffic thay vì để bạn tự nối số liệu.

Cách deploy cũng là điểm khác biệt: mỗi người tự deploy bản copy của mình trên tài khoản Cloudflare của mình. Dữ liệu nằm ở tài khoản bạn, dashboard có mật khẩu riêng. Không có server trung gian của tác giả.

Cài và chạy thử, khoảng 10 phút

Yêu cầu: tài khoản Cloudflare miễn phí, Node.js 20+ và Git. Các lệnh dưới đây giữ nguyên như README.

git clone https://github.com/surendrapandar/minilytics.git
cd minilytics
npm install
npx wrangler login # opens your browser; click "Allow"

Tạo database:

npx wrangler d1 create minilytics

Nếu Wrangler hỏi “Would you like Wrangler to add it on your behalf?”, trả lời No. Câu hỏi phụ về “Cloudflare skills” cũng trả lời No. Rồi copy database_id in ra, paste vào wrangler.jsonc, thay chuỗi 00000000-0000-0000-0000-000000000000. Dưới d1_databases phải có đúng một entry, với "binding": "DB".

Đặt mật khẩu và secret ký session:

npx wrangler secret put ADMIN_PASSWORD # the password you'll log in with (use a strong one)
npx wrangler secret put SESSION_SECRET # any long random text, e.g. the output of: openssl rand -hex 32

Lúc gõ sẽ không thấy ký tự nào hiện ra, bình thường. Nếu bị hỏi “There doesn’t seem to be a Worker called minilytics… create it?”, trả lời Yes.

Minilytics: web analytics miễn phí trên Cloudflare, đo được nguồn nào ra tiền - ảnh 1
Ảnh: github.com/surendrapandar/minilytics

Deploy:

npm run deploy

Lệnh này build dashboard, tạo bảng trong database và deploy, sau đó in ra link dạng https://minilytics.<tên>.workers.dev. Mở link, đăng nhập, thêm website, copy script tag. Trang Settings của mỗi site có nút “Copy AI prompt” để đưa cho Claude Code hoặc Cursor tự gắn script vào codebase. Nếu gặp fetch failed thì thường là mạng chập chờn (VPN, proxy, Wi-Fi), chạy lại npm run deploy.

Muốn gắn domain riêng như analytics.yourdomain.com thì vào Cloudflare, Workers & Pages, chọn minilytics, Settings, Domains & Routes. Khi cập nhật về sau:

git stash # keeps your database_id edit in wrangler.jsonc safe
git pull
git stash pop
npm run deploy

Về giới hạn free plan, README ghi rõ: 100.000 Worker requests/ngày tương đương khoảng 100k tracked event mỗi ngày (file script và dashboard là static nên không tính), 100.000 dòng D1 ghi/ngày tương đương khoảng 10k pageview/ngày, 5 triệu dòng D1 đọc/ngày, 5 GB storage. Với site 5 đến 10k visitor mỗi tháng thì mới dùng vài phần trăm hạn mức. Vượt thì Workers Paid là 5 đô một tháng.

Ai nên dùng, và dùng thế nào

Indie hacker có vài site nhỏ và muốn biết tweet nào, bài blog nào, hay câu trả lời nào trên Reddit thực sự kéo người mua. Solo founder bán sản phẩm one-time hoặc subscription nhỏ, cần nhìn thẳng vào revenue per visitor theo từng nguồn. Người làm nội dung muốn kiểm tra xem traffic từ ChatGPT hay từ Google search có chuyển đổi khác nhau không.

Cách dùng thực tế tôi thấy hợp: gắn ?ref= hoặc utm_campaign riêng cho từng kênh bạn đăng bài, rồi mỗi tuần mở dashboard, click vào dòng của kênh đó để filter toàn bộ số liệu và xem Journey list. Nếu một kênh kéo nhiều visitor nhưng không có payment nào, đó là thông tin để cắt thời gian đầu tư.

Với ai cần analytics chạy production cho site traffic lớn, nhiều thành viên trong team, phân quyền phức tạp, hoặc cần lưu dữ liệu nhiều năm để đối soát pháp lý thì công cụ này chưa dành cho. README cũng nói thẳng nó là single-user với một mật khẩu ở chế độ mặc định.

So sánh nhanh

So với Plausible và Umami, hai cái tên quen thuộc trong nhóm self-hosted analytics, Minilytics khác ở chỗ đặt revenue làm trục chính thay vì pageview, và thiết kế để chạy trên Cloudflare Workers và D1 thay vì phải dựng server riêng. Nếu bạn đã có VPS và muốn hệ sinh thái trưởng thành, nhiều integration, Plausible hoặc Umami là lựa chọn an toàn hơn về độ chín. Nếu bạn muốn deploy xong trong 10 phút mà không tốn đồng nào và cần gắn doanh thu vào nguồn traffic, Minilytics đúng bài hơn.

Tôi không so trực tiếp với DataFast vì chưa dùng đủ để nói chắc, chỉ biết README ghi nó lấy cảm hứng từ đó.

Ưu điểm, hạn chế, và mấy điều cần biết

Ưu điểm: miễn phí ở mức traffic side project, deploy nhanh, dữ liệu nằm trên tài khoản Cloudflare của bạn, license MIT nên được phép sửa và dùng thương mại. Attribution và Journey list là phần làm tốt hơn mặt bằng chung. Có đường nâng cấp lên mô hình SaaS nhiều người dùng nếu bạn muốn tự bán lại, thông qua Google OAuth và Dodo Payments.

Hạn chế: repo mới vài ngày, độ trưởng thành chưa kiểm chứng được. Tài liệu nằm gần hết trong README, chưa có docs site riêng. Không có topics trên GitHub, hơi khó tìm. Nếu bạn không quen Cloudflare Workers, D1, Wrangler thì sẽ mất thêm thời gian làm quen CLI và khái niệm binding. Free plan có giới hạn ghi dòng D1, khoảng 10k pageview/ngày, vượt là phải tính.

Điều cần lưu ý về license: MIT cho phép dùng thoải mái, nhưng nhớ đọc kỹ phần billing nếu bạn định bật chế độ SaaS, vì nó liên quan tới webhook thanh toán và trạng thái subscription của khách. Tracking sẽ tự dừng (âm thầm) với site mà chủ sở hữu hết hạn plan, đây là hành vi cần biết trước khi bán.

Một điểm nữa: repo tạo ngày 2026-10-23 và cập nhật 2026-10-26, tức là chưa có nhiều thời gian để cộng đồng chạy thử và báo bug. Sao nhiều không đồng nghĩa với ổn định. Nếu bạn định gắn vào site có doanh thu thật, nên chạy song song với một công cụ cũ trong vài tuần để đối chiếu số.

621 sao trong vài ngày là con số đủ để tôi clone về xem thử. Cái tôi muốn kiểm chứng là Journey list có khớp với payment thật không, và live globe có ăn tài nguyên Worker quá không. Bạn có thể thử cùng tôi ở surendrapandar/minilytics.

Chia sẻ bài này

TelegramXFacebookZalo
Đăng ngày 27/10/2026
Giang Na
Về tác giả: Giang Na
Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.

Giang Na

Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.