Tất cả bài viết

Stack gọn cho người làm sản phẩm một mình

Làm sản phẩm một mình nghĩa là mỗi công cụ thêm vào là thêm một thứ phải bảo trì. Nguyên tắc của mình đơn giản: chọn những thứ chạy được mà không cần mình ngồi trông. Đây là cách trang web này được dựng.

Tĩnh trước, động khi thật cần

Phần lớn nội dung không cần máy chủ: trang giới thiệu, bài viết, danh sách dự án. Trang này dựng bằng Astro và xuất ra HTML tĩnh; chỉ có form đăng ký bản tin là cần chạy code phía server. Ít phần động thì ít thứ có thể hỏng, và trang tải gần như tức thì.

Chạy ở edge thay vì tự quản máy chủ

Site chạy trên Cloudflare Workers: không có máy chủ để cập nhật, không phải lo chuyện lượng truy cập tăng đột ngột, tên miền và HTTPS có sẵn. Phần code phía server chỉ là một đoạn nhỏ: nhận email đăng ký, kiểm tra chống bot bằng Turnstile rồi gửi sang Beehiiv.

Lấy dữ liệu lúc build, không phải lúc xem

Lưới đóng góp GitHub không gọi API mỗi khi có người mở trang. Dữ liệu được lấy một lần lúc build và đóng gói luôn vào trang. Người đọc không phải chờ, API không bị gọi dồn, và nếu API lỗi thì phần đó tự ẩn thay vì làm hỏng cả trang. Muốn số liệu mới thì build lại, việc này có thể tự động.

Bài viết nằm ngay trong mã nguồn

Bài bạn đang đọc là một file Markdown nằm trong mã nguồn của trang. Nó không phụ thuộc nền tảng nào: mỗi lần sửa đều có lịch sử trong Git, muốn chuyển đi đâu cũng được, và đăng bài chỉ là deploy. Bản tin vẫn gửi qua Beehiiv, nhưng trang web không cần Beehiiv để hiển thị bài.

Dùng dịch vụ cho những việc không phải thế mạnh

Gửi email, quản lý người đăng ký, chống spam đều là những bài toán khó làm tốt. Mình dùng Beehiiv cho bản tin và Cloudflare Turnstile để chống bot thay vì tự xây, để dành thời gian cho sản phẩm chính.

Khoá bí mật không bao giờ nằm trong code

Token và API key nằm trong file môi trường không đưa lên Git, và trong phần secret của Cloudflare. Một script nhỏ hỏi từng khoá rồi ghi vào đúng chỗ, nên không ai phải dán khoá vào code hay vào tin nhắn.

Kết

Stack tốt cho người làm một mình không phải là stack mạnh nhất, mà là stack mình có thể quên đi vài tháng mà nó vẫn chạy.