Đi tới nội dung chính
Project Production-ready

Awaiting Deployment

Secret Letter

Ứng dụng chia sẻ secret một lần, thiết kế ưu tiên cho mục đích chia sẻ các dữ liệu nhạy cảm (password, token) một cách an toàn.

Status
Production-ready
Scope
Client-side encryption, Redis TTL, Rate limiting
Updated
27 tháng 5, 2026

Tech stack

Golang Redis React 19 Web Crypto API

Target outcome

Mật thư an toàn, tạo lá thư mã hóa chỉ xem được một lần với plaintext không bao giờ rời khỏi trình duyệt người gửi.

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ư GETDEL hoặ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).