
Để build app đầu tiên với Claude Code, bạn cần: clone starter template, chạy /init, dùng Plan Mode lên kế hoạch, rồi build từng section theo thứ tự. Toàn bộ quy trình gồm 8 bước và mất khoảng 30 phút để ra một SaaS landing page hoàn chỉnh, deploy trên Vercel.
Bài này hướng dẫn bạn build một SaaS landing page hoàn chỉnh (hero, features, pricing, footer) với Claude Code, từ số 0 đến deploy Vercel trong khoảng 30 phút. Mình dùng starter template sẵn có để bỏ qua phần setup nhàm chán. Đây là tutorial tiếng Việt duy nhất về chủ đề này, không có đối thủ nào. Nếu bạn đã cài Claude Code xong mà chưa biết bắt đầu từ đâu, đây là bài dành cho bạn.
Tại Sao Bạn Nên Build App Đầu Tiên Ngay Hôm Nay?
Claude Code đang có hơn 110.000 GitHub stars (GitHub, 2026), và Nick Saraev, creator có 1,1 triệu lượt xem khóa học Claude Code, khẳng định người dùng có thể build được app chạy được chỉ trong 15 phút đầu tiên. Nhưng không có tài liệu nào bằng tiếng Việt hướng dẫn cụ thể từng bước làm điều đó.
Mình đã mất cả tuần đầu dùng Claude Code chỉ để hỏi những câu vặt vãnh, không ra sản phẩm gì. Lý do? Mình không có cấu trúc. Không có CLAUDE.md, không có Plan Mode, không biết chia nhỏ task. Sau khi học lại từ đầu, mình build landing page này trong đúng 25 phút.
Trong bài này, bạn sẽ build một SaaS landing page hoàn chỉnh gồm hero, features, pricing và footer, rồi deploy lên Vercel miễn phí. Không cần biết code trước. Chỉ cần biết copy-paste prompt đúng cách.
Nếu bạn chưa đọc Claude Code là gì, nên đọc nhanh trước để hiểu bối cảnh. Còn nếu đã sẵn sàng, bắt đầu thôi.
Chuẩn Bị Gì Trước Khi Bắt Đầu?
Theo freeCodeCamp, “chia nhỏ công việc thành từng task một” là best practice số một khi dùng Claude Code (freeCodeCamp, 2025). Nhưng trước khi chia nhỏ được, bạn cần có đủ công cụ. Setup này mất khoảng 5 phút nếu bạn đã cài Node.js sẵn.
Danh sách cần có trước khi bắt đầu:
- Claude Code đã cài và đăng nhập. Cần gói Pro ($20/tháng) trở lên. Chưa cài? Xem hướng dẫn cài đặt Claude Code.
- Node.js 18+: chạy
node -vđể kiểm tra. Tải tại nodejs.org nếu chưa có. - Git: chạy
git --versionđể kiểm tra. - Tài khoản Vercel miễn phí: đăng ký tại vercel.com (dùng GitHub login cho nhanh).
- Terminal: Terminal trên macOS/Linux, hoặc Windows Terminal trên Windows.

Bước 1: Clone Template Và Khởi Động Dự Án
CLAUDE.md là file cấu hình quan trọng nhất trong mọi dự án Claude Code. Nó nói cho Claude biết tech stack, rules, và cách hoạt động của project (Anthropic Docs, 2026). Starter template của mình đã có sẵn CLAUDE.md với 8 sections, giúp bạn bỏ qua 30 phút setup thủ công.
Clone starter template từ GitHub
Mở terminal và chạy 3 lệnh này theo thứ tự:
git clone https://github.com/thenguyenvn90/claude-code-starter my-landing-page
cd my-landing-page
ls -la
Sau khi clone xong, bạn sẽ thấy cấu trúc thư mục như sau:
my-landing-page/
├── CLAUDE.md # Cấu hình project cho Claude
├── FIRST-PROMPTS.md # 10 prompts copy-paste sẵn
├── .claude/
│ ├── settings.json # Permission rules
│ └── rules/
│ └── quality.md # Code quality standards
└── .gitignore # Node.js + Claude Code files
Checkpoint: Bạn thấy file CLAUDE.md trong thư mục. Nếu không thấy, clone lại từ đầu.
Chạy Claude Code và dùng lệnh /init
Trong cùng thư mục đó, khởi động Claude Code:
claude
Claude Code sẽ khởi động và tự động đọc CLAUDE.md. Tiếp theo, gõ lệnh slash command để khởi tạo project:
/init
Claude sẽ scan toàn bộ project, đọc CLAUDE.md, và xác nhận nó đã hiểu context. Bạn sẽ thấy output đại loại: “I’ve read your CLAUDE.md. This project uses [tech stack]. Ready to help.”
Checkpoint: Claude xác nhận đã đọc CLAUDE.md và sẵn sàng. Nếu Claude hỏi lại về tech stack, có thể CLAUDE.md chưa được đọc đúng. Thử gõ /memory để kiểm tra. Xem thêm về các slash commands hữu ích.

Bước 2: Dùng Plan Mode Lên Kế Hoạch Trước Khi Code
Plan Mode (bật bằng Shift+Tab) là tính năng giúp Claude lên kế hoạch trước khi viết bất kỳ dòng code nào. Theo kinh nghiệm của mình, dùng Plan Mode giúp tránh được khoảng 80% lỗi “Claude hiểu nhầm ý định” và tiết kiệm đáng kể token (Anthropic Docs, 2026). Đây là bước mà đa số beginner bỏ qua, và đó chính là lý do họ nhận code rác.
Bật Plan Mode và mô tả project
Nhấn Shift+Tab để bật Plan Mode. Góc dưới terminal sẽ hiện badge “PLAN” màu vàng. Sau đó gõ prompt này:
Mình cần build một SaaS landing page bằng HTML, CSS và JavaScript thuần.
Trang gồm các section:
1. Hero: headline lớn, subtext, 2 CTA buttons
2. Features: 3 cards với icon, title, description
3. Pricing: 3 tier (Free, Pro $29/mo, Enterprise)
4. Testimonials: 3 quotes với avatar, name, title
5. Footer: links + copyright
Hãy lên kế hoạch file structure và thứ tự build. Chưa cần code gì.
Claude sẽ trả về plan chi tiết: danh sách files cần tạo, thứ tự các bước, và ước tính độ phức tạp. Đọc kỹ plan này trước khi approve. Nếu thấy gì không ổn, chỉnh lại ngay trong Plan Mode, rẻ hơn nhiều so với sửa code sau.
Review plan và thoát Plan Mode
Sau khi hài lòng với plan, nhấn Shift+Tab lần nữa để thoát Plan Mode. Claude sẽ hỏi có muốn implement theo plan vừa tạo không. Gõ yes hoặc chỉnh sửa thêm trước khi confirm.
Checkpoint: Bạn có một plan rõ ràng với file structure và thứ tự build. Claude đang ở normal mode, sẵn sàng nhận lệnh tiếp theo.

Bước 3-6: Build Từng Section Của Landing Page
Nguyên tắc cốt lõi ở đây: 1 prompt = 1 section. freeCodeCamp và Nick Saraev đều đồng ý rằng đây là cách hiệu quả nhất để tránh Claude bị “overwhelmed” và sinh ra code lộn xộn (freeCodeCamp, 2025). Mình đã thử nhét toàn bộ landing page vào 1 prompt và kết quả là CSS xung đột, JavaScript không chạy, mất thêm 20 phút debug.
Build Hero Section
Copy prompt này và gửi cho Claude:
Tạo file index.html với hero section.
- Background: gradient tối từ #0f172a sang #1e293b
- Headline: "Build Faster With AI" (font-size: 3.5rem, màu trắng, font-weight: 800)
- Subtext: "The AI-powered platform that helps your team ship 10x faster" (màu #94a3b8)
- 2 buttons: "Start Free Trial" (background #4F6CF0) và "Watch Demo" (outline trắng)
- Căn giữa toàn bộ, padding top/bottom 120px
Chỉ làm hero section, chưa cần section khác.
Sau khi Claude tạo xong, mở file index.html trên trình duyệt để kiểm tra. Không cần server. Chỉ cần double-click file là được.
Checkpoint: Bạn thấy hero section với gradient tối, headline trắng lớn, và 2 buttons. Nếu layout bị lệch, gõ: “Fix hero layout: buttons đang bị xuống dòng riêng, cần inline với nhau”.
Build Features Section (3 Cards)
Thêm features section vào index.html, ngay sau hero section.
- Section title: "Why Teams Choose Us"
- 3 cards layout (CSS grid, 3 cột trên desktop)
- Card 1: icon ⚡, "Lightning Fast", "Deploy in seconds with our optimized pipeline"
- Card 2: icon 🔒, "Enterprise Security", "SOC 2 compliant with end-to-end encryption"
- Card 3: icon 📊, "Real-time Analytics", "Monitor everything with live dashboards"
- Card style: background #1e293b, border 1px solid #334155, border-radius 12px, padding 32px
Giữ nguyên hero section, chỉ thêm features.
Checkpoint: Bạn thấy 3 cards nằm ngang nhau trên desktop. Refresh trình duyệt để xác nhận hero vẫn nguyên vẹn.
Build Pricing Section (3 Tiers)
Thêm pricing section sau features section.
- 3 pricing cards: Free ($0), Pro ($29/mo), Enterprise (Custom)
- Card Pro cần "Most Popular" badge, border màu #4F6CF0, slightly larger scale
- Mỗi card gồm: price, 4-5 features list với checkmark, CTA button
- Background section: #0f172a (tối hơn features section để tạo contrast)
- CTA Pro: "Start Free Trial" (background #4F6CF0)
- CTA Free: "Get Started" (outline)
- CTA Enterprise: "Contact Sales" (outline)
Giữ nguyên hero và features, chỉ thêm pricing.
Checkpoint: Card Pro nổi bật hơn 2 card còn lại, có badge và border màu brand. Nếu 3 cards không đều nhau về chiều cao, gõ: “Make all 3 pricing cards same height using CSS flexbox”.
Build Testimonials và Footer
Thêm 2 section cuối vào index.html:
TESTIMONIALS:
- 3 quotes layout ngang
- Mỗi quote: avatar (dùng placeholder 48x48 hình tròn), tên, chức vụ, quote text
- Quote 1: Sarah Chen, CTO at TechCorp, "Reduced our deployment time by 70%"
- Quote 2: Marcus Johnson, Lead Dev at StartupXYZ, "The analytics alone are worth it"
- Quote 3: Priya Patel, Engineering Manager at Scale, "Our team's productivity doubled"
FOOTER:
- 4 cột: Product, Company, Resources, Legal
- Copyright 2026
- Background: #080D1C (tối nhất)
Giữ nguyên tất cả section trước.
Checkpoint: Trang hoàn chỉnh với 5 sections. Scroll từ trên xuống, kiểm tra visual flow có mượt không. Nếu thấy section nào bị “nhảy” layout, chụp màn hình mô tả lại cho Claude.
Bước 7: Responsive Và Animation
Theo Google Search Central, hơn 60% lưu lượng web toàn cầu đến từ mobile (Google, 2025). Một landing page không responsive sẽ mất hơn nửa lượng người dùng tiềm năng. May mắn là bước này chỉ mất 5-10 phút với Claude Code.
Thêm responsive CSS cho mobile
Làm responsive toàn bộ trang cho mobile (breakpoint 768px):
- Hero: giảm font-size headline xuống 2rem, buttons stack dọc
- Features: 3 cột → 1 cột trên mobile
- Pricing: 3 cột → 1 cột, card Pro hiển thị đầu tiên
- Testimonials: ngang → dọc
- Footer: 4 cột → 2 cột, sau đó 1 cột dưới 480px
Dùng CSS media queries, không dùng JavaScript.
Checkpoint: Mở DevTools (F12), chuyển sang chế độ mobile (Ctrl+Shift+M), chọn iPhone SE. Trang phải hiển thị đẹp không bị tràn ngang.
Thêm scroll animations
Thêm scroll animations nhẹ nhàng:
- Dùng Intersection Observer API (không cần library ngoài)
- Cards trong features và pricing: fade-in + slide-up khi scroll vào viewport
- Duration: 0.6s, easing: ease-out
- Delay stagger: mỗi card sau card trước 0.15s
- Không animate hero (nó load ngay khi vào trang)
Thêm JavaScript vào cuối file, trước thẻ đóng 
