Chúng tôi đã xây dựng cùng một ứng dụng bằng ba công cụ Vibe Coding

Chúng tôi đã xây dựng cùng một ứng dụng bằng ba công cụ Vibe Coding

12 tháng 6, 2026

Chúng tôi quyết định đưa ba công cụ “vibe coding” được bàn luận nhiều nhất vào một bài kiểm tra đối đầu nghiêm ngặt. Chúng tôi không viết code; chúng tôi chỉ ngồi quan sát, đặt mục tiêu và nhập prompt. Bản yêu cầu đơn giản nhưng đầy thách thức: một danh bạ thuê freelancer theo khu vực với tính năng đăng nhập cho khách hàng và freelancer, một thị trường có thể tìm kiếm, form đặt lịch động, bảng điều khiển theo vai trò và cổng thanh toán Stripe.

Điều theo sau đó là một hành trình đầy cảm xúc: từ sự thỏa mãn tức thì đến những lỗi vỡ layout hàng loạt, các vòng lặp thanh toán mơ hồ và sự thụt lùi về cấu trúc. Chúng tôi đã chứng kiến những bản demo hoàn hảo từ câu prompt đầu tiên đối mặt với thực tế phức tạp của thế giới thực, tiết lộ chính xác nơi phép màu biến mất khi bạn dựa hoàn toàn vào AI để thiết kế kiến trúc cho cả một ứng dụng.

Bản yêu cầu chung và sự hưng phấn tức thì từ câu prompt đầu tiên

Chúng tôi bắt đầu dự án trên ba nền tảng khác nhau: Bolt, Lovable, và Replit. Mục tiêu là một SaaS MVP tiêu chuẩn với yêu cầu cao - chính là loại ứng dụng có trong bảng xếp hạng SaaS MVP của chúng tôi. Ngay từ câu prompt đầu tiên, tốc độ của cả ba công cụ đã thực sự gây ấn tượng. Trong khoảng ba phút, mỗi nền tảng đã dựng xong các layout CSS đẹp mắt, khởi tạo các schema cơ sở dữ liệu quan hệ và hiển thị một bản xem trước web trực tiếp, có thể tương tác được.

Bolt là công cụ nhanh nhất trong nhóm. Sử dụng WebContainers tích hợp trong trình duyệt, nó khởi chạy một container Node.js hoàn chỉnh ngay trong tab trình duyệt của chúng tôi ngay lập tức. Lovable theo sát phía sau, tự động cấp phát một instance Supabase ở backend và xây dựng các component React và TypeScript sạch sẽ, dễ đọc ở frontend. Replit Agent chọn con đường bài bản nhất, khởi tạo một container workspace độc lập và chạy các vòng lặp tự phản hồi nội bộ để xác minh việc cài đặt gói và thiết lập cấu hình trước khi hiển thị màn hình cho chúng tôi.

Khi dành giờ đầu tiên để click xung quanh, chúng tôi cảm nhận được sự “phê” thực sự của kỷ nguyên vibe-coding. Bạn có thể có một bản prototype hoạt động được trong vài phút, với phong cách hình ảnh phong phú, mà không cần một lần mở terminal hay cấu hình local host thủ công. Nhưng như chúng tôi nhanh chóng nhận ra, xây dựng prototype chỉ là 70% cuộc chiến; 30% cuối cùng của logic kinh doanh tùy chỉnh mới là thứ thử thách giới hạn của các hệ thống này.

Nơi mỗi nền tảng bị gãy dưới áp lực

Những vết nứt xuất hiện ngay khoảnh khắc chúng tôi ngừng yêu cầu cải thiện thiết kế hình ảnh và yêu cầu các tích hợp sâu thực sự. Trong Bolt, dự án của chúng tôi phình to với mã nguồn dư thừa trong một chuỗi cập nhật cơ sở dữ liệu lặp đi lặp lại, vì Bolt có xu hướng viết lại toàn bộ file thay vì thực hiện các thay đổi chính xác, nhiều bước. Sự phình to này chính là lý do khiến người xây dựng gặp phải giới hạn tài khoản “Project too large” của Bolt, một bức tường mà người dùng báo cáo ngay cả sau khi đã dọn dẹp các file không cần thiết và vẫn còn hàng triệu token không sử dụng trong tài khoản.

Với Lovable, điểm gãy xảy ra trong quá trình điều hướng xác thực người dùng và cấu hình bảo mật Supabase. Để form đặt lịch chỉ hoạt động cho người dùng đã xác thực, AI đã cố gắng viết các quy tắc Row-Level Security (RLS) của Supabase ở phía sau. Kết quả là nó khiến chúng tôi kẹt trong một “vòng lặp thụt lùi” vô tận, nơi việc sửa lỗi RLS lại làm hỏng khả năng hiển thị bảng điều khiển frontend, khiến dữ liệu khách hàng bị lộ cho các lượt xem không xác thực cho đến khi chúng tôi phải can thiệp thủ công để viết lại quyền hạn backend.

Replit Agent gặp phải một kiểu thất bại khác, gần như là nực cười. Khi chúng tôi yêu cầu kết nối Firebase cho thông báo đẩy cùng với backend PostgreSQL, agent này bị kẹt trong một vòng lặp luẩn quẩn. Nó liên tục báo với chúng tôi rằng đã sửa các lỗi phụ thuộc lúc biên dịch (compile-time dependency), nhưng rồi lại hiển thị chính xác những lỗi đó khi tải lại trang. Người dùng Replit mô tả mô hình tương tự: phải dán ảnh chụp màn hình ngược lại vào chat để chứng minh lỗi vẫn tồn tại trong khi agent báo cáo các bản sửa lỗi giả, tạo ra các checkpoint cơ sở dữ liệu im lặng và làm tăng phí sử dụng.

Sự tiêu tốn tín dụng và cái giá của trò chơi ‘đập chuột’ bằng prompt

Vibe coding không phải là một trò chơi chi phí tuyến tính. Trong khi các gói đăng ký bắt đầu từ khoảng $20 đến $25 mỗi tháng cho quyền truy cập nhà phát triển cơ bản, việc lặp đi lặp lại để sửa lỗi sẽ tiêu tốn credit với tốc độ đáng báo động. Trên các gói trả phí của Lovable, mỗi prompt đều tiêu tốn nhiều token, và trong quá trình chúng tôi khắc phục nhanh các lỗi liên kết cơ sở dữ liệu, chúng tôi đã chứng kiến số credit hàng tháng cạn kiệt nhanh chóng. Nếu một lần chỉnh sửa thất bại hoặc gây ra lỗi hồi quy, bạn thực chất đang đốt tiền chỉ để đưa ứng dụng trở lại phiên bản của ngày hôm qua.

Với Replit, những bất ngờ về tài chính còn lớn hơn. Vì Replit Agent thực thi các tác vụ VM hoàn chỉnh và tự động sao lưu cơ sở dữ liệu tại gần như mọi điểm kiểm tra (checkpoint), người dùng đã báo cáo các khoản phí vượt mức cơ sở dữ liệu không ngờ tới lên đến $1,500 cho những bản build thử nghiệm đơn giản. Trong vòng lặp gỡ lỗi của chính chúng tôi, agent đã tiêu tốn vô số chu kỳ tính phí để tải các gói npm, thử nghiệm, thất bại và tự động chạy lại các quy trình container, biến một bài kiểm tra nhanh thành một bài học đắt giá.

Ngay cả với hạn mức token hàng tháng cao của Bolt, chúng tôi vẫn thấy mình bị mắc kẹt. Khi AI bị rơi vào vòng lặp sửa đổi mã, viết lại toàn bộ các tệp vốn đang hoạt động tốt thay vì đưa ra các thay đổi (diff) sạch như git, nó sẽ ngốn token một cách quyết liệt mà không mang lại bất kỳ cải thiện thực tế nào cho hiệu suất ứng dụng. Bạn sẽ nhanh chóng nhận ra rằng việc gỡ lỗi ứng dụng thông qua chat prompt là một mô hình kinh tế cực kỳ kém hiệu quả.

Phán quyết và ngã rẽ trung thực

Quá trình thử nghiệm đối đầu đã làm rõ một sự thật về kiến trúc: đừng để AI xây dựng cơ sở hạ tầng phần mềm cốt lõi của bạn từ con số 0. Nếu bạn đang xây dựng một công cụ cho người dùng thực, có yêu cầu về quyền bảo mật và dữ liệu vận hành, bạn nên chọn Softr là người chiến thắng, vì xác thực (auth), phân quyền hiển thị theo vai trò và kết nối cơ sở dữ liệu là các tính năng nền tảng mà bạn cấu hình bằng giao diện trực quan, thay vì dùng mã do AI tạo ra mà bạn chưa bao giờ kiểm tra.

Đối với những nhà phát triển muốn một stack ưu tiên mã nguồn (code-first) và dự định tiến tới các IDE phát triển cục bộ tự động như Cursor, Bolt sẽ thắng ở phân khúc này nhờ khả năng xuất front-end tiêu chuẩn, tốc độ tạo khung (scaffolding) nhanh và tính di động của mã nguồn sạch. Để xem chi tiết cách các nền tảng này so sánh với nhau trong các quy trình vận hành khác nhau, hãy khám phá bảng xếp hạng các nền tảng no-code tốt nhất cho vibe coding của chúng tôi.

Nếu bạn muốn xây dựng các ứng dụng doanh nghiệp tiêu chuẩn như cổng thông tin khách hàng hoặc CRM nội bộ, hãy tránh xa bảng điều khiển prompt khi cấu hình cơ bản. Hãy sử dụng cơ sở hạ tầng trực quan đã được thiết lập cho cơ sở dữ liệu và xác thực, sau đó chỉ triển khai các thành phần tùy chỉnh bằng vibe-coding ở cấp độ tính năng riêng lẻ, nơi phạm vi bị cô lập và an toàn. Ngày thứ hai của một ứng dụng doanh nghiệp là về sự ổn định, không phải về “vibe”.

So sánh công cụ

Bạn đã sẵn sàng bắt đầu vibe coding?

Chúng tôi xếp hạng các công cụ dựa trên những sản phẩm thực tế. Hãy xem vị trí của từng công cụ trước khi bắt đầu dự án tiếp theo.

Xem bảng xếp hạng →