secret-letter là ứng dụng chia sẻ dữ liệu nhạy cảm (password, token,…) an toàn thông qua cơ chế mã hóa phía client (Client-side encryption) và chỉ cho phép xem một lần duy nhất (one-time consumption).
Tính Năng Nổi Bật
- Mã Hóa Tại Client: Dữ liệu được mã hóa bằng AES-GCM 256-bit thông qua Web Crypto API. Khóa giải mã nằm ngay trong URL Fragment nên Server hoàn toàn không biết nội dung gốc.
- Xem Một Lần (One-time): Sử dụng các atomic operation của Redis (như
GETDELhoặc giao dịch) để đảm bảo nội dung bị xóa vĩnh viễn ngay khi được xem. - Bảo Vệ Chống Bot: Tích hợp trang trung gian (Reveal Gate) buộc người dùng thực hiện thao tác trước khi giải mã, ngăn chặn các crawler bot vô tình kích hoạt link.
- Giới Hạn Tốc Độ (Rate Limiting): Tích hợp Rate limiter bằng Redis, kiểm soát chặt chẽ số lượng thao tác tạo, đọc, và kiểm tra trạng thái nhằm chống lạm dụng.
Kiến Trúc Công Nghệ
Dự án được cấu trúc theo dạng Monorepo với sự phân tách rõ ràng giữa frontend và backend:
- Backend: Xây dựng bằng Go (Standard library
net/http) kết hợp với Redis 7 để lưu trữ dữ liệu tạm thời (TTL). - Frontend: Phát triển bằng React 19, TypeScript và Vite 7.
- Infrastructure: Triển khai bằng Caddy, VPS, Vercel và quản lý môi trường bằng Docker Compose.
Trạng Thái Dự Án
Hiện tại, Secret Letter đã hoàn thành 4 milestone quan trọng bao gồm Foundation, Client-Side Encryption, Reveal Gate, và Rate Limiting. Dự án đang ở giai đoạn Production-ready và chuẩn bị được triển khai (Deployment).