Từ Vibe Coding đến Production: Hành trình xây dựng Portfolio với AI
Vibe Coding
Từ Vibe Coding đến Production: Hành trình xây dựng Portfolio với AI
2026-06-28
AI đang thay đổi cách chúng ta phát triển phần mềm. Nhưng sau nhiều tuần xây dựng một website Portfolio hoàn chỉnh bằng AI, mình nhận ra một điều: AI không thay thế lập trình viên, mà thay đổi cách chúng ta làm việc với lập trình.
Đây là hành trình mình sử dụng AI (Antigravity + ChatGPT) để xây dựng một dự án thực tế từ con số 0 đến khi go-live trên production.
Không bắt đầu bằng code
Sai lầm phổ biến khi làm Vibe Coding là mở AI và yêu cầu:
“Build me a portfolio website.”
AI vẫn có thể tạo ra một dự án chạy được, nhưng càng về sau càng khó mở rộng, dễ phát sinh lỗi và kiến trúc trở nên thiếu nhất quán.
Thay vào đó, mình bắt đầu bằng việc xây dựng workflow phát triển trước khi viết bất kỳ dòng code nào.
Toàn bộ dự án được chia thành các phase rõ ràng:
- Phase 0 – AI Development Foundation
- Phase 1 – Initialize Production Workspace
- Phase 2A – Database Architecture Review & ERD
- Phase 2B – Database Implementation
- Phase 3 – Backend Foundation
- Phase 4 – Authentication & Authorization Foundation
- Phase 5 – Public Portfolio APIs
- Phase 6 - Admin CMS APIs
- Phase 7 - Testing, Quality Assurance & CI Enhancement
- Phase 8 - Admin Dashboard Frontend
- Phase 9 - Public Portfolio Frontend - Completion Report
- Phase 10 - End-to-End Functional QA & System Validation
- Production Readiness Assessment
- Deployment
- Go-live
Việc chia nhỏ theo phase giúp AI chỉ tập trung giải quyết đúng một bài toán tại một thời điểm.
Database First
Một trong những quyết định đúng nhất của mình là không để AI vừa thiết kế database vừa generate Prisma trong cùng một bước.
Thay vào đó: Thiết kế ERD -> Review quan hệ giữa các bảng -> Chốt schema -> Sau đó mới generate Prisma Schema.
Cách làm này giúp gần như không phải refactor database ở các phase Backend và Frontend.
Prompt càng rõ, AI càng tốt
Sau nhiều lần thử nghiệm, mình nhận ra prompt hiệu quả không phải prompt dài, mà là prompt có cấu trúc.
Mỗi prompt đều mô tả rõ:
- Mục tiêu
- Bối cảnh hiện tại
- Phase đang thực hiện
- Constraint
- Deliverables
- Verification
Nhờ đó AI không “đoán ý” mà luôn làm đúng phạm vi được giao.
AI không nên làm tất cả cùng lúc
Thay vì yêu cầu AI:
“Thiết kế, code, deploy.”
Mình luôn tách thành ba bước: Thiết kế -> Review -> Triển khai
Điều này giúp kiểm soát chất lượng tốt hơn rất nhiều.
Production mới là thử thách thực sự
Sau khi hoàn thành các chức năng, mình dành thêm khá nhiều thời gian cho Production Readiness.
Thay vì deploy ngay, mình audit toàn bộ hệ thống:
- Backend Security
- Frontend Production Config
- Supabase Configuration
- Environment Variables
- Health Check
- CI/CD
- Rollback Strategy
- Smoke Test
Nhờ vậy rất nhiều lỗi được phát hiện trước khi đưa hệ thống lên production.
AI giống một Senior Pair Programmer
Sau dự án này, mình không còn xem AI là công cụ sinh code.
AI phù hợp hơn với vai trò:
- Phân tích kiến trúc
- Review thiết kế
- Sinh code theo specification
- Audit production
- Kiểm tra bảo mật
- Sinh tài liệu
- Viết checklist
- Phát hiện rủi ro
Còn quyết định cuối cùng vẫn thuộc về người phát triển.
Kết luận
Điều mình học được lớn nhất không phải là “AI code nhanh hơn”.
Mà là:
Vibe Coding hiệu quả không đến từ việc để AI làm mọi thứ, mà đến từ việc biết chia bài toán thành các bước nhỏ, kiểm soát từng phase và review kết quả trước khi chuyển sang bước tiếp theo.
Khi AI được đặt đúng vai trò, nó không thay thế lập trình viên. Nó trở thành một cộng sự giúp tăng tốc quá trình phát triển, giảm công việc lặp lại và dành nhiều thời gian hơn cho những quyết định quan trọng về kiến trúc và chất lượng sản phẩm.
Đó cũng là cách mình đã xây dựng và đưa website Portfolio này từ một ý tưởng ban đầu đến khi chính thức chạy trên production.
PDT.