Từ ý tưởng đến SaaS đầu tiên: hành trình xây content-factory-web
Vì sao tôi tự tay xây một web SaaS tạo content, dùng công cụ gì, và những bài học sau khi có người dùng thật đầu tiên.
Mở đầu: vì sao tôi muốn làm
Làm Product Owner nhiều năm, tôi quen với việc viết sản phẩm — viết requirement, viết user story, viết spec cho kỹ sư implement. Nhưng tôi chưa bao giờ tự tay xây một sản phẩm từ đầu đến cuối, một mình, không có đội kỹ thuật đứng sau.
Lý do tôi muốn thử content-factory-web rất đơn giản: tôi thấy rất nhiều người làm marketing, bán hàng nhỏ lẻ loay hoay mỗi ngày với việc nghĩ nội dung đăng bài — caption, bài blog ngắn, mô tả sản phẩm. Họ không thiếu ý tưởng, họ thiếu thời gian. Tôi muốn xem: nếu mình tự xây một công cụ giải quyết đúng việc đó, và để người dùng thật trả tiền dùng nó, mình có làm được không — với vai trò vừa là người lên sản phẩm, vừa là người ngồi code cùng AI?
Thân bài: các bước thực hiện và công cụ
Bước 1 — Xác định phạm vi nhỏ nhất có thể bán được. Tôi không cố xây một "công cụ AI content toàn năng". Tôi chỉ chọn một luồng duy nhất: khách vào web, mô tả sản phẩm/dịch vụ của họ, chọn giọng văn, nhận vài phương án content để copy dùng ngay. Không có gì thừa.
Bước 2 — Chọn công nghệ để đi nhanh. Tôi dùng FastAPI (Python) cho backend vì nhẹ, dễ đọc, và tôi có thể tự sửa logic mà không cần một đội DevOps. Giao diện dùng template server-side đơn giản, không làm SPA phức tạp — vì mục tiêu là ra sản phẩm dùng được, không phải khoe kỹ thuật.
Bước 3 — Xây luồng "khách hàng thật" chứ không chỉ demo. Đây là phần tốn công nhất: đăng ký tài khoản, xác thực OTP qua email, nạp ví nội bộ, trừ tiền theo lượt dùng. Không có bước này thì mãi mãi chỉ là một demo, không phải một sản phẩm kinh doanh được.
Bước 4 — Gắn Telegram bot để tôi (và sau này là khách) nhận thông báo real-time — có người đăng ký mới, có người nạp tiền, có lỗi hệ thống. Việc này giúp tôi vận hành một mình mà vẫn theo dõi được sức khoẻ hệ thống mà không cần ngồi canh máy tính cả ngày.
Bước 5 — Tự động hoá báo cáo. Tôi viết một cron job chạy hàng tuần, tổng hợp số liệu (khách mới, doanh thu, lượt dùng) và gửi thẳng qua Telegram. Một Product Owner không có báo cáo thì không biết sản phẩm mình có "sống" hay không.
Bước 6 — Deploy thật lên VPS, dùng Nginx làm reverse proxy và systemd để giữ service luôn chạy, tự khởi động lại nếu crash.
Công cụ chính đã dùng: Claude Code (AI pair-programmer để viết và sửa code cùng tôi theo thời gian thực), FastAPI, SQLite, Telegram Bot API, Nginx, systemd trên VPS Hetzner.
Kết: nếu bạn muốn biết chi tiết hơn
Bài viết này chỉ nói về cách tiếp cận, không phải hướng dẫn kỹ thuật từng dòng code — vì mỗi sản phẩm sẽ có bài toán riêng. Nếu bạn đang cân nhắc tự xây một sản phẩm nhỏ tương tự, hoặc muốn biết cụ thể hơn cách tôi xử lý luồng đăng ký/thanh toán/thông báo, cứ liên hệ mình qua email hoặc LinkedIn — mình sẵn lòng chia sẻ chi tiết hơn.