Claude Code: Hướng Dẫn Build App Đầu Tiên Từng Bước (2026)

Build your first app with Claude Code zero to deployed in 30 minutes 2026
Build app đầu tiên: từ zero đến deployed trong 30 phút.

Để 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.

TL;DR

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.

110K+
GitHub stars của Claude Code

30 phút
từ clone đến deploy Vercel

$20/tháng
gói Pro tối thiểu cần có

0
tutorial tiếng Việt tương tự

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.
Lưu ý: Gói Free của Claude.ai không đủ để chạy Claude Code lâu dài. Gói Pro ($20/tháng) cho khoảng 7-8 giờ coding mỗi ngày. Nếu bạn cần nhiều hơn, xem so sánh các gói Max và Team.

Clone Template Claude Code tutorial

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.

1

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.

2

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.

Plan Mode Claude Code tutorial

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.

3

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.

4

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.

Build Từng Section Claude Code tutorial

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.

5

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”.

6

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.

7

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”.

8

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.

9

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.

10

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 .

Checkpoint: Scroll chậm xuống trang. Cards phải xuất hiện dần dần với hiệu ứng mượt. Nếu animation bị giật, gõ: “Add will-change: transform to animated elements for GPU acceleration”.

Deploy Lên Vercel Claude Code tutorial

Bước 8: Deploy Lên Vercel Miễn Phí

Vercel là nền tảng deploy phổ biến nhất cho frontend developers, với hơn 1 triệu dự án được deploy mỗi tháng (Vercel Blog, 2025). Gói Free của Vercel đủ dùng cho landing page cá nhân, hỗ trợ custom domain và HTTPS tự động. Deploy từ CLI chỉ mất khoảng 3 phút.

11

Cài Vercel CLI và deploy

Thoát Claude Code trước (Ctrl+C hoặc gõ /exit), rồi chạy trong terminal:

# Cài Vercel CLI
npm install -g vercel

# Login vào Vercel (sẽ mở browser để xác thực)
vercel login

# Deploy project
vercel

Vercel CLI sẽ hỏi một vài câu hỏi setup: tên project, thư mục source (nhấn Enter để dùng mặc định). Sau khoảng 60 giây, bạn nhận được URL dạng https://my-landing-page-abc123.vercel.app.

12

Verify kết quả deploy

Mở URL Vercel vừa nhận được trên điện thoại thật. Không phải DevTools simulator. Điện thoại thật mới phát hiện được font render khác, touch target quá nhỏ, hay button bị overlap. Nếu thấy lỗi, quay lại Claude Code và mô tả cụ thể.

Checkpoint: Landing page live trên internet, load nhanh, hiển thị đúng trên cả desktop lẫn mobile. URL HTTPS hoạt động. Chúc mừng, bạn vừa deploy app đầu tiên.

Mẹo tiết kiệm token: Sau khi deploy xong, nếu muốn tiếp tục chỉnh sửa, dùng vercel --prod để deploy thẳng lên production. Đọc thêm về cách tiết kiệm token Claude Code nếu bạn thấy context window cạn nhanh.

5 Sai Lầm Phổ Biến Và Cách Tránh

Qua nhiều lần thử và sai, mình nhận ra 5 lỗi này xuất hiện ở hầu hết người dùng Claude Code mới. Tổng cộng chúng gây ra khoảng 60-70% thời gian lãng phí trong các session đầu tiên (dựa trên kinh nghiệm thực tế của mình và phản hồi từ cộng đồng developer Việt Nam). Tránh được 5 lỗi này, bạn sẽ nhanh hơn đáng kể.

Sai lầm Triệu chứng Cách fix
Nhét quá nhiều vào 1 prompt Code lộn xộn, CSS xung đột 1 prompt = 1 section
Không có CLAUDE.md Claude hỏi lại về tech stack mỗi session Dùng starter template hoặc tự tạo CLAUDE.md
Bỏ qua Plan Mode Claude hiểu nhầm, phải làm lại nhiều lần Shift+Tab trước mọi task phức tạp
Accept code mà không đọc Bug ẩn, logic sai không phát hiện kịp Hỏi “explain what you just did” sau mỗi bước
Không test sau mỗi bước Phát hiện lỗi quá muộn, khó trace nguyên nhân Mở browser sau mỗi section

Sai lầm thường gặp nhất: quên kiểm tra permissions

Claude Code có hệ thống permissions khá chặt. Starter template đã cấu hình sẵn: block .env, block rm -rf, hỏi trước khi git push. Nếu bạn tự tạo project mới, nhớ thiết lập permissions để Claude không vô tình xóa file quan trọng. Xem chi tiết tại bài về permission modes của Claude Code.

Quan trọng: Không bao giờ để Claude Code có quyền truy cập .env hay credentials. Starter template đã block sẵn, nhưng nếu bạn tự tạo project, kiểm tra lại .claude/settings.json trước khi chạy lần đầu.

Câu Hỏi Thường Gặp

Mình không biết code thì có làm theo tutorial này được không?

Được. Tutorial này được thiết kế cho cả người không có background coding. Các prompt đã viết sẵn để copy-paste, và starter template xử lý toàn bộ phần cấu hình kỹ thuật. Điều duy nhất bạn cần là đọc output của Claude và kiểm tra kết quả trên trình duyệt. Nếu thấy lỗi, mô tả bằng lời thường cũng đủ để Claude hiểu và fix.

Dùng hết bao nhiêu token để build landing page này?

Mình build landing page này tốn khoảng 80.000-120.000 tokens với gói Pro. Với rate limit của gói Pro ($20/tháng), đây là khoảng 15-20 phút trong giới hạn burst. Nếu bạn bị rate limit, chờ 30-60 phút rồi tiếp tục. Đọc thêm về cách tiết kiệm token để kéo dài session.

Mình có thể dùng tiếng Việt để viết prompt không?

Hoàn toàn được. Claude hiểu tiếng Việt tốt cho phần mô tả, giải thích, và hỏi đáp. Chỉ nên dùng tiếng Anh cho tên technical (component names, CSS properties, function names) để tránh Claude dịch ra tên biến tiếng Việt trong code, sẽ khó đọc về sau.

Sau khi deploy xong thì làm gì tiếp theo?

Bước tiếp theo trong roadmap Claude Code là thêm form liên hệ có backend, kết nối database, hoặc thêm authentication. Starter template bao gồm file FIRST-PROMPTS.md với 10 prompts gợi ý cho các tính năng phổ biến nhất sau landing page. Bạn cũng có thể thêm Google Analytics hay Hotjar để track user behavior.

Lỗi “Permission denied” khi chạy claude thì xử lý thế nào?

Lỗi này thường xảy ra trên macOS/Linux khi file không có execute permission. Chạy chmod +x $(which claude) để fix. Trên Windows, đảm bảo bạn chạy terminal với quyền Administrator. Nếu vẫn lỗi, xem lại hướng dẫn cài đặt phần troubleshooting.

Mình có thể thêm React hoặc Next.js vào project này không?

Được, nhưng starter template này dùng HTML/CSS/JS thuần để đơn giản nhất cho người mới. Nếu muốn dùng React, clone xong rồi gõ cho Claude: “Migrate this project to Next.js 14 with App Router. Keep all existing sections.” Claude sẽ tạo cấu trúc mới và migrate code. Nhớ bật Plan Mode trước khi làm bước này.

Kết Luận

Bạn vừa build xong một SaaS landing page hoàn chỉnh và deploy lên Vercel, tất cả trong khoảng 30 phút. Không cần học CSS framework, không cần biết Webpack config, không cần setup CI/CD phức tạp. Claude Code xử lý phần kỹ thuật để bạn tập trung vào phần quan trọng hơn: ý tưởng và nội dung.

Những gì mình thấy sau nhiều tháng dùng Claude Code hàng ngày: công cụ này không phải magic button. Nó hiệu quả khi bạn biết cách cấu trúc công việc. CLAUDE.md, Plan Mode, và nguyên tắc “1 prompt = 1 task” là 3 thứ tạo ra sự khác biệt lớn nhất. Bỏ qua 3 thứ này, bạn sẽ chỉ tốn token mà không ra sản phẩm.

Bước tiếp theo: đọc bài về prompt engineering cho Claude Code để nâng cao kỹ năng viết prompt. Tìm hiểu thêm Claude Code skills để tạo các template tái sử dụng cho project tiếp theo. Và nếu bạn muốn hiểu sâu hơn về cách Claude Code hoạt động bên trong, bài Claude Code là gì sẽ cho bạn toàn bộ bức tranh tổng thể.


Clone starter template, chạy claude, và bắt đầu build. Hẹn gặp bạn ở bài tiếp theo.

Similar Posts