Mục tiêu

Trong bài này, bạn sẽ dùng prompt để yêu cầu Claude Code tạo một landing page hoàn chỉnh bằng Next.js. Khác với bài trước dùng file HTML đơn, bài này dùng Next.js — một framework hiện đại, phù hợp khi bạn muốn mở rộng dự án thêm tính năng sau này (đăng nhập, database, blog…). Kết quả cuối bài:
  • Có một dự án Next.js chạy được trên máy.
  • Landing page có đủ các phần: hero, nội dung, FAQ và form đăng ký.
  • Bạn biết cách yêu cầu Claude Code chỉnh giao diện bằng prompt ngắn, rõ ý.
Bài này yêu cầu bạn đã cài Node.js trên máy. Nếu chưa cài, xem hướng dẫn tại Development Tools.

Bước 1: Hiểu cấu trúc dự án Next.js

Khác với index.html, dự án Next.js có cấu trúc thư mục rõ ràng:
Mỗi phần của trang là một component riêng. Claude Code sẽ tạo từng component và lắp ghép lại trong page.tsx. Cách này giúp dễ chỉnh từng phần mà không ảnh hưởng phần khác.

Bước 2: Tạo dự án Next.js

1
Mở terminal trong VS Code (Ctrl + `).
2
Dán lệnh sau và nhấn Enter:
3
Chờ khoảng 1-2 phút để cài xong. Mở thư mục vừa tạo trong VS Code.
4
Mở Claude Code trong VS Code và dán prompt bên dưới.

Bước 3: Tạo landing page đầu tiên

Prompt mẫu

Bước 4: Tinh chỉnh kết quả

Sau khi Claude Code tạo xong, chạy npm run dev và mở http://localhost:3000. Xem trang như người dùng:
  • Bố cục có rõ ràng không?
  • Chữ có dễ đọc không?
  • Nút đăng ký có nổi bật không?
  • Animations có mượt, hợp lý không?
  • Trang có hiển thị tốt trên điện thoại không?

Prompt chỉnh từng component

Chỉnh thanh điều hướng:
Chỉnh Hero:
Chỉnh FAQ:
Chỉnh Social Proof:

Bước 5: Sửa lỗi thường gặp

Lỗi: Icons không hiển thị
Lỗi: Framer Motion không hoạt động
Lỗi: Ảnh Unsplash không load
Lỗi: Màu sắc không đúng
Lỗi: Font chữ không load
Lỗi: Responsive sai trên điện thoại

Bước 6: Tối ưu từng phần

Khi trang đã có bố cục tổng thể, chỉnh từng phần một. Cách này dễ kiểm tra hơn. Tối ưu phần Minh chứng học viên:
Tối ưu form đăng ký:

Bước 7: Checklist kiểm tra

Giao diện:
  • Màu nền #090A14 đúng chưa?
  • Màu primary #DF6B33 dùng nhất quán chưa?
  • Font Be Vietnam Pro load đúng chưa?
  • Lucide icons hiển thị đúng chưa?
  • Ảnh Unsplash load được không (kiểm tra next.config.ts)?
Responsive:
  • Desktop nhiều cột đúng layout.
  • Tablet không bị vỡ.
  • Mobile 1 cột, không tràn chữ.
Animations:
  • Navbar fade-in khi load trang.
  • Hero text/image slide-in khi load.
  • Cards fadeInUp khi scroll đến.
  • Stats counter đếm khi scroll vào.
  • CTA button pulse animation chạy.
  • FAQ accordion mở/đóng có transition mượt.
  • Hover effects hoạt động trên card và button.
Tương tác:
  • Navbar background blur khi cuộn > 50px.
  • Navbar mobile mở/đóng được.
  • FAQ chỉ mở 1 câu mỗi lúc.
  • Form validation hiển thị lỗi đúng.
  • Form success state hiện sau khi submit.
Code:
  • npm run dev không có lỗi.
  • Không có TypeScript error.
  • Mỗi component có 'use client' nếu dùng Framer Motion.
  • Mỗi component là một file riêng.

Bước 10: Quy trình hoàn chỉnh


FAQ

Q: Tại sao dùng Next.js thay vì HTML đơn? A: Next.js dễ mở rộng hơn — sau này muốn thêm blog, đăng nhập, hay kết nối database thì không cần làm lại từ đầu. Nếu chỉ cần landing page tĩnh đơn giản, dùng HTML đơn nhanh hơn. Q: Tôi có cần biết TypeScript không? A: Không cần. Claude Code sẽ viết TypeScript cho bạn. Bạn chỉ cần mô tả yêu cầu. Q: Lucide React khác gì Lucide CDN? A: Lucide CDN dùng trong HTML đơn (<script src="...lucide">). Lucide React là package npm dành riêng cho React/Next.js, dùng cú pháp import { ArrowRight } from 'lucide-react'. Q: Có thể tái sử dụng components sang dự án khác không? A: Có. Copy file component sang dự án Next.js khác, chỉ cần cài Tailwind và Lucide React là dùng được. Q: Làm sao deploy lên Vercel? A: Xem hướng dẫn chi tiết tại bài Vercel Deploy.