Next.jsSupabaseTailwind CSSPayosUpstash Redis
1. Công nghệ sử dụng
- Xây dựng giao diện người dùng và REST API với Next.js
- Sử dụng PostgreSQL thông qua Supabase làm cơ sở dữ liệu chính
- Áp dụng Argon2id để băm/xác thực mật khẩu và XChaCha20-Poly1305 để mã hóa dữ liệu nhạy cảm đối xứng
- Sử dụng Supabase Edge Functions kết hợp cronjob để chạy các tác vụ định kỳ hằng ngày, bao gồm: chuyển trạng thái gói đăng ký hết hạn sang expired, vô hiệu hóa 2FA với tài khoản hết hạn gói, gửi email nhắc nhở trước khi gói hết hạn, ...
- Sử dụng GitHub Actions để tự động sao lưu cơ sở dữ liệu hằng ngày
- Tích hợp Payos để xử lý thanh toán
- Sử dụng Upstash Redis để giới hạn tốc độ request trên các endpoint quan trọng — đăng ký, OTP, đặt lại mật khẩu, chia sẻ vault - chống spam và lạm dụng.