Tổng quan
Next.js
Framework React cho web app, hỗ trợ SSR, SSG và App Router
Firebase
Backend serverless: Firestore, Auth, Storage, Cloud Functions
Vercel
Nền tảng deploy tối ưu cho Next.js với CDN toàn cầu
Tailwind CSS
Utility-first CSS framework, phiên bản 4.x
shadcn/ui
Bộ UI components có thể tùy biến, xây trên Radix UI
react-table
Headless table library mạnh mẽ cho React
Chi tiết từng công nghệ
Web framework — Next.js
Next.js là framework React được sử dụng để xây dựng toàn bộ giao diện web của ứng dụng. Lý do chọn:- App Router cho phép tổ chức routing trực quan theo cấu trúc thư mục
- Hỗ trợ Server Components giúp tối ưu hiệu năng và SEO
- Tích hợp tốt với Vercel (cùng nhà phát triển)
- Hỗ trợ API Routes để viết backend nhẹ nếu cần
Serverless backend — Firebase
Firebase cung cấp toàn bộ hạ tầng backend dưới dạng serverless, không cần quản lý server. Các dịch vụ sử dụng:Firestore — Cơ sở dữ liệu
Firestore — Cơ sở dữ liệu
NoSQL realtime database. Lưu trữ tasks, projects, users và các dữ liệu nghiệp vụ. Hỗ trợ realtime listeners để cập nhật giao diện tức thì khi dữ liệu thay đổi.
Firebase Authentication
Firebase Authentication
Xác thực người dùng qua Email/Password, Google, GitHub. Quản lý phiên đăng nhập an toàn không cần tự xây dựng auth server.
Cloud Storage
Cloud Storage
Lưu trữ file đính kèm trong task: ảnh, tài liệu, hình ảnh avatar.
Cloud Functions
Cloud Functions
Chạy server-side logic khi cần: gửi email thông báo, tự động cập nhật trạng thái task, xử lý webhook.
Deploy — Vercel
Vercel là nền tảng deploy được tối ưu riêng cho Next.js. Lý do chọn:- Zero-config deployment, chỉ cần kết nối Git repository
- Preview deployment tự động cho mỗi Pull Request
- Edge Network toàn cầu giúp tốc độ tải trang nhanh
- Miễn phí cho dự án cá nhân và nhóm nhỏ
CSS — Tailwind CSS 4.x
Tailwind CSS 4.x là phiên bản mới nhất với engine được viết lại hoàn toàn bằng Rust (Lightning CSS). Thay đổi quan trọng trong v4:- Không còn file
tailwind.config.js— cấu hình được viết trực tiếp trong CSS - Import bằng
@import "tailwindcss"thay vì@tailwind base/components/utilities - Tốc độ build nhanh hơn đáng kể so với v3
UI components — shadcn/ui
shadcn/ui không phải là thư viện npm truyền thống — nó cho phép bạn copy trực tiếp source code của các component vào dự án để tùy biến tự do. Lý do chọn:- Component được xây dựng trên Radix UI (accessible by default)
- Style bằng Tailwind CSS, dễ tùy biến theo design system
- Không bị lock-in vào thư viện bên ngoài
- Hỗ trợ dark mode sẵn có
| Component | Mục đích |
|---|---|
Button | Nút thao tác (tạo task, lưu, xóa) |
Dialog | Modal tạo/chỉnh sửa task |
Select | Chọn trạng thái, priority, assignee |
Badge | Hiển thị trạng thái task |
Avatar | Ảnh đại diện người dùng |
Sidebar | Navigation panel |
Checkbox | Đánh dấu task hoàn thành |
DatePicker | Chọn deadline |
Data table — react-table (TanStack Table)
TanStack Table (react-table v8) là headless table library — cung cấp logic, bạn tự quyết định UI. Lý do chọn:- Hỗ trợ sorting, filtering, pagination, row selection sẵn có
- Headless: toàn quyền kiểm soát giao diện, dùng kết hợp với shadcn/ui
- Hiệu năng tốt với dataset lớn (virtualization support)
- TypeScript-first
- Hiển thị danh sách task dạng bảng với cột có thể sắp xếp
- Lọc task theo trạng thái, người phụ trách, deadline
- Phân trang phía client
- Chọn nhiều task để bulk action (xóa, đổi trạng thái)
Tổng hợp dependencies
shadcn/ui được cài bằng CLI (
npx shadcn@latest add) và copy source trực tiếp vào dự án — không xuất hiện trong dependencies.