Tất cả dự án
Đang chạy

Daily Vibe

Trang nhỏ để ghé qua mỗi ngày — đọc một câu nói dành riêng cho hôm nay hoặc rút một lá tarot khi đang phân vân. Bán cảm giác chứ không bán chức năng.

Thời gian08/2026Công nghệ
  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • Zod
  • Zustand
  • React Hook Form
  • Gemini API
Daily Vibe

Điểm nổi bật

  • Câu nói dành cho bạn: mở lên là có ngay một câu, cả ngày không đổi.
  • Xem tarot hai dạng — bốc 1 lá cho câu hỏi nhanh, trải 3 lá cho chuyện đang vướng.
  • Luận giải bằng AI (Gemini) theo đúng câu chuyện người dùng kể; không có API key vẫn chạy nhờ nhánh copy-prompt.
  • Kết quả ổn định theo seed ngày (UTC+7) — F5 không đổi, vì đổi là mất tin.
  • Bộ bài tarot đầy đủ 78 lá, dữ liệu nguồn chỉ nằm ở server, không bundle xuống client.
  • Câu hỏi riêng tư gửi bằng POST, không nhét vào query string để khỏi lọt vào log và Referer.
  • Toàn bộ chữ viết bằng giọng người Việt tự nhiên — không dịch máy, không hô hào.

Về dự án

Daily Vibe là dự án cá nhân tôi bắt đầu từ tháng 8/2026, hiện đang chạy tại daily.liqwy.com.

Ý tưởng đơn giản: một trang nhỏ để người ta ghé qua mỗi ngày, thấy dễ chịu một chút rồi đi ra. Hai bề mặt đang mở là “Câu nói dành cho bạn” và “Xem tarot” (bốc 1 lá hoặc trải 3 lá).

Thứ quyết định sản phẩm này sống hay chết không phải tính năng mà là hai điều: kết quả phải ổn định theo ngày — F5 mà đổi câu là người dùng nhận ra “à hoá ra random” rồi hết tin; và chữ phải nghe như người nói, vì một câu sáo rỗng làm hỏng nhanh hơn bất kỳ bug nào. Vì vậy mọi kết quả đều sinh từ seed theo ngày (mốc ngày tính theo UTC+7) thay vì random.

Phần luận giải tarot gọi Gemini để đọc mấy lá đã rút theo đúng chuyện người dùng kể; route tự rút lại lá từ seed thay vì nhận từ client, nên không ai sửa request để xin luận giải lá bất kỳ. Không cấu hình API key thì app vẫn chạy — chuyển sang màn copy prompt để người dùng tự mang sang ChatGPT/Gemini.

Stack là Next.js 16 (App Router, Turbopack) + React 19 + Tailwind CSS 4, dùng Zod làm nguồn type kèm validation, Zustand cho state phiên và React Hook Form cho form. Dữ liệu nguồn (bộ câu và bộ bài 78 lá) chỉ được đọc từ server — kéo xuống client thì vừa nặng trang vừa lộ hết, mà tra được cả bộ bài thì hết vui.

Bạn có câu hỏi?

Tôi luôn sẵn sàng hợp tác với những dự án thú vị và sáng tạo!

Điện thoại0834 564 869