Đang tải...

Ếch Trendy

Cùng chú ếch nhỏ khám phá thế giới Web đầy biến động. Cập nhật trending nhanh như cách ếch đớp mồi! ⌨️🌿


0

Vibe Coding Với Cursor, Bolt.new Và v0.dev: Xây Web App Hoàn Toàn Bằng AI Trong 2026

Ếch Trendy
Ếch Trendy

3 tháng trước · 12 phút đọc

Vibe coding là gì và tại sao nó đang hot trong 2026

Mình nhớ hồi 2022, mỗi lần khởi động project mới là mất cả ngày: cài boilerplate, setup Webpack, config ESLint, tạo folder structure... Chưa kịp gõ dòng business logic nào thì đã hết buổi sáng. Giờ? Mình gõ một đoạn prompt 5 câu và có app chạy được trong 20 phút.

Đó là cốt lõi của vibe coding: thay vì viết từng dòng code, bạn mô tả intent - AI sinh code, bạn review và tinh chỉnh. Lặp lại đến khi đạt yêu cầu.

Khái niệm này được Andrej Karpathy popularize đầu 2025, nhưng đến 2026, nó đã không còn là trend của một nhóm early adopter. 84% developers use or plan to use AI coding tools (Stack Overflow 2025); 85% regularly use AI tools (JetBrains 2025); 90% regularly use at least one AI tool at work (JetBrains 2026) ([Stack Overflow Developer Survey 2025, JetBrains State of Developer Ecosystem 2025 & 2026](https://survey.stackoverflow.co/2025/ and https://www.jetbrains.com/lp/devecosystem-2025/)) developer đang dùng AI-assisted coding theo một hình thức nào đó trong workflow hàng ngày.

345794 Vibe coding dịch chuyển trọng tâm từ gõ code sang đặc tả và kiểm tra

Điểm quan trọng cần hiểu ngay: vibe coding không xóa sổ tư duy kỹ thuật. Nó dịch chuyển công việc của dev từ "gõ code" sang "đặc tả, kiểm tra, hiệu chỉnh". Bạn vẫn cần biết code đang làm gì - nhưng thời gian bạn ngồi gõ giảm đi đáng kể.

Ba công cụ đang dẫn đầu cuộc chơi này là Cursor IDE, Bolt.new, và v0.dev. Mỗi cái có vai trò khác nhau trong workflow, và dùng đúng chỗ mới ra tốc độ thật sự.


So sánh workflow: manual coding vs vibe coding thực tế

Bảng dưới đây không phải lý thuyết - đây là những gì mình quan sát khi build cùng một feature theo 2 cách:

Khía cạnh Manual coding Vibe coding
Khởi đầu Setup boilerplate, cấu trúc file, cài package Viết prompt mô tả app, stack, UI, data flow
Thực thi Dev viết từng file, từng function AI sinh code, sửa nhiều file cùng lúc
Debug Đọc log, trace lỗi, sửa tay Agent đọc lỗi, chạy lại, tự sửa và kiểm tra
UI Tự dựng component, chỉnh CSS v0.dev/Bolt.new sinh UI từ prompt
Tốc độ Ngày đến tuần Giờ đến ngày, nếu scope nhỏ và prompt tốt
Rủi ro Tốn công nhưng dễ kiểm soát Dễ sinh code đúng bề mặt nhưng sai ngầm

345795 Vibe coding nhanh hơn nhưng cần review kỹ - không phải "deploy and forget"

Trade-off thật sự là gì? Với manual coding, bạn biết chính xác mọi thứ hoạt động như thế nào vì bạn tự viết. Với vibe coding, tốc độ tăng vọt nhưng bạn phải review diff kỹ hơn. AI hay sinh ra code "trông ổn" nhưng có edge case chưa xử lý, hoặc dùng pattern không phù hợp với codebase hiện tại.

Mình thấy vibe coding shine nhất ở 3 use case:

  • MVP và prototype: cần chạy nhanh để validate ý tưởng
  • Internal tool: dashboard, admin panel, form phức tạp
  • UI-heavy work: tạo và thử nhiều phương án layout nhanh

Với hệ thống production lớn, cần security cao, hoặc cần audit trail - vẫn cần manual review kỹ từng thay đổi. Vibe coding không miễn nhiễm bug, nó chỉ giúp bạn đến điểm đó nhanh hơn.


Cursor IDE: trung tâm của vibe coding workflow

Cursor không chỉ là VS Code gắn thêm AI. Đây là IDE được thiết kế lại từ đầu với triết lý agent-first: AI không chỉ gợi ý code, mà còn đọc codebase, chạy lệnh terminal, sửa nhiều file, chạy test, và lặp lại đến khi task xong.

Các tính năng mình dùng nhiều nhất:

Agent Mode - Bạn gõ một task phức tạp như "Thêm tính năng export PDF cho dashboard, dùng react-pdf, tạo component riêng, viết test" - Agent tự đọc codebase hiện tại, cài package, tạo file, viết test, và báo lại kết quả. Không cần hướng dẫn từng bước.

Composer - Làm việc trên nhiều file cùng lúc. Thay vì chat với AI về từng file, Composer nhìn toàn bộ context và thay đổi đồng bộ. Đặc biệt hữu ích khi refactor hoặc thêm feature cắt ngang nhiều layer.

Multi-agent / parallel execution - Chạy nhiều agent song song trên các nhánh khác nhau để thử nhiều approach, rồi chọn cái tốt nhất. Thay vì implement rồi rollback nếu sai, bạn thử song song.

345796 Agent Mode của Cursor đọc toàn bộ codebase trước khi hành động - không đoán mò

Một workflow thực tế mình hay dùng:

1. Mở project trong Cursor
2. Mở Agent Mode (Ctrl+Shift+I)
3. Mô tả feature bằng ngôn ngữ tự nhiên, kèm constraints:
   "Tạo API route /api/chat, nhận messages array, 
   gọi OpenAI streaming, trả về stream response.
   Dùng Next.js App Router, xử lý error 429 và 500."
4. Review diff - đọc kỹ từng file thay đổi
5. Chạy app, test manually
6. Prompt tiếp để fix edge case

Tip quan trọng về context window: Cursor dùng LLM có giới hạn token. Khi project lớn, không phải mọi file đều fit vào context. Cursor cho phép bạn pin các file quan trọng bằng @file hoặc @codebase. Mình thường pin: file config chính, type definitions, và file đang làm việc trực tiếp.

Về giá, Cursor có plan free và paid - kiểm tra trang pricing chính thức của Cursor để xem pricing hiện tại vì họ thay đổi khá thường xuyên.


Bolt.new và v0.dev: sinh UI và scaffold nhanh

Nếu Cursor là nơi bạn sống và build feature, thì Bolt.new và v0.dev là nơi bạn bắt đầu hoặc thử ý tưởng UI.

v0.dev - UI generator của Vercel

v0.dev là tool mình dùng đầu tiên trong mọi project có UI phức tạp. Workflow cực đơn giản:

  1. Mô tả component hoặc layout bằng prompt
  2. v0.dev sinh ra React component với Tailwind CSS và Shadcn/ui
  3. Bạn chọn variant ưa thích, chỉnh prompt, và iterate
  4. Export code, paste vào Cursor để tích hợp logic

Ví dụ prompt mình hay dùng: "Dashboard với sidebar navigation, 4 KPI cards ở trên, line chart realtime ở giữa, data table có filter và pagination ở dưới. Dark mode support. Responsive mobile." - v0.dev sinh ra cả layout trong 30 giây.

Giới hạn của v0.dev: nó chỉ làm UI, không làm backend, không có state management thật, không có API calls. Đó là việc của Cursor.

Bolt.new - full-stack trong browser

Bolt.new khác ở chỗ nó tạo cả full-stack app chạy ngay trong trình duyệt, không cần setup local. Phù hợp nhất khi bạn muốn:

  • Validate ý tưởng cực nhanh (< 30 phút)
  • Demo cho khách hàng hoặc team
  • Tạo prototype có tương tác thật

345797 v0.dev cho UI nhanh, Bolt.new cho full-stack prototype, Cursor cho production code

Limitation cần biết: với app phức tạp, Bolt.new có thể generate code khó maintain và khó extend. Mình hay dùng Bolt.new để lấy skeleton, rồi chuyển sang Cursor để refactor và build tiếp. Đừng kỳ vọng dùng Bolt.new từ đầu đến production một mình.

Khi nào dùng cái nào?

  • v0.dev: cần component/UI nhanh, biết mình muốn gì về giao diện
  • Bolt.new: muốn thấy app chạy được trong 20-30 phút để validate idea
  • Cursor: build thật, refactor, debug, tích hợp auth/API/database, production

Ba tool này không cạnh tranh nhau - chúng bổ trợ nhau trong cùng một workflow.


Case study: xây chatbot AI trong 2 giờ với vibe coding

Mình sẽ walk through một project thật: chatbot AI với streaming response, lưu conversation history, và dark mode. Stack: Next.js App Router + OpenAI API + Tailwind CSS.

Bước 1: Sinh UI với v0.dev (15 phút)

Prompt: "Chat interface gồm: sidebar trái hiển thị conversation history có thể click, panel phải là chat window với message bubbles (user bên phải, AI bên trái), input area dưới cùng có nút send và icon attach. Loading indicator khi AI đang trả lời. Dark mode. Responsive."

v0.dev sinh ra component hoàn chỉnh. Mình chọn variant đẹp nhất, export code.

Bước 2: Setup project với Cursor (10 phút)

# Cursor Agent nhận lệnh:
# "Tạo Next.js 14 project với TypeScript, Tailwind,
# Shadcn/ui. Tích hợp code UI từ v0.dev vào src/components/chat.
# Setup folder structure: app/api, components, lib, types."

Agent tự chạy npx create-next-app, cài dependencies, và tạo folder structure.

Bước 3: Thêm backend với Cursor Agent (30 phút)

Prompt cho Agent: "Tạo API route /api/chat với Next.js App Router. Nhận messages: Message[]. Gọi OpenAI chat completion với streaming. Dùng ReadableStream để stream response về client. Xử lý lỗi 429 (rate limit) bằng cách return error message rõ ràng. Thêm OPENAI_API_KEY vào .env.local.example."

345798 Prompt càng chi tiết, Agent càng ít cần hỏi lại - tiết kiệm thời gian

Agent viết toàn bộ route handler, stream logic, và error handling. Mình review diff - thấy Agent dùng đúng StreamingTextResponse pattern, xử lý abort signal. Approve.

Bước 4: Kết nối frontend + state (25 phút)

Prompt tiếp: "Tích hợp API route vào ChatWindow component. Dùng useChat hook từ ai-sdk của Vercel. Lưu conversation list vào localStorage với key là timestamp. Khi click vào conversation cũ trong sidebar, load lại messages đó."

Kết quả

Sau 2 giờ: chatbot chạy local với streaming, dark mode, conversation history. Không hoàn hảo - cần thêm auth, rate limiting thực sự, và error boundary - nhưng đủ để demo và validate trong cùng ngày.

So sánh: làm manual từ đầu tương tự scope này mình estimate khoảng khoảng 1-2 ngày làm việc. Vibe coding không thay thế engineer, nhưng rút ngắn khoảng cách từ ý tưởng đến prototype rất đáng kể.

Muốn tự thử? Dùng checklist này làm điểm bắt đầu: Tải checklist vibe coding chatbot


Best practices: tối ưu prompt và context để AI làm việc hiệu quả

Sau nhiều tháng dùng các tool này, mình đúc kết được một số nguyên tắc thật sự tạo ra sự khác biệt:

1. Prompt có cấu trúc, không stream of consciousness

Xấu: "làm cho cái dashboard của mình đẹp hơn và nhanh hơn"

Tốt:

Task: Tối ưu performance cho DashboardPage component
Context: App Next.js 14, dữ liệu fetch từ /api/metrics, 
        hiện tại re-render mỗi 5s
Constraints: Không thay đổi API shape, giữ nguyên UI
Expected output: useMemo/useCallback đúng chỗ, 
                 tách component để giảm re-render phạm vi

2. Kiểm soát context window

Cursor và các LLM-based tools đều có giới hạn context. Với codebase lớn:

  • @file để pin file cụ thể, tránh AI đọc file không liên quan
  • Tách task nhỏ thay vì một prompt làm tất cả
  • Khi bắt đầu task mới, clear conversation history để tránh nhiễu từ context cũ
  • Viết AGENTS.md hoặc CURSOR.md trong root project: mô tả architecture, conventions, và những gì AI không nên đụng vào

345799 Một file CURSOR.md rõ ràng tiết kiệm hàng chục lần prompt giải thích lại

3. Review diff như review PR thật

AI sinh code nhanh không có nghĩa là bạn approve nhanh. Mình có rule: không approve diff nào mà mình không đọc hiểu được tác dụng của nó. Dấu hiệu cần cẩn thận:

  • File ngoài scope task bị thay đổi
  • Import mới không rõ nguồn gốc
  • Logic xử lý error bị xóa hoặc đơn giản hóa
  • Magic number hoặc hardcode string không có comment

4. Iterate nhỏ, không big-bang prompt

Thay vì một prompt 10 dòng mô tả toàn bộ feature, chia thành 3-4 prompt nhỏ có thể verify từng bước. Mình thấy tỉ lệ thành công cao hơn nhiều khi mỗi prompt có một single clear outcome mình có thể test ngay.

5. Dùng AI để viết test cho chính code AI sinh ra

Sau khi Agent sinh feature, prompt tiếp: "Viết unit test cho function vừa tạo, bao gồm happy path, error cases, và edge case với input rỗng/null." AI rất giỏi viết test cho code nó vừa tạo vì có đủ context.

0