Phát triển ứng dụng hẹn hò trong 100 ngày với Cursor ($20/tháng). Ra mắt đồng thời trên Google Play và App Store
(wctokyoseoul.com)Có vẻ như sự quan tâm dành cho vibe coding đang rất nóng.
Tôi chia sẻ lại nhật ký dự án trong 100 ngày, từ khâu lên ý tưởng, thiết kế, frontend & backend cho tới phát hành ứng dụng bằng Cursor ($20/tháng).
📱 Dự án: WeConnect
Đây là ứng dụng trao đổi ngôn ngữ và hẹn hò dành cho người dùng toàn cầu.
- iOS/Android: Flutter (cross-platform)
- Backend: Supabase (Auth, DB)
- Web Landing, Admin Dashboard: Next.js + Vercel
- Tính năng chính: messenger dịch thời gian thực hỗ trợ 18 ngôn ngữ
🛠️ Quá trình phát triển:
- Thiết bị phát triển: Trong 70 ngày đầu, tôi phát triển bằng laptop Windows và Galaxy S20+.
Ở giai đoạn sau, tôi dùng thêm M4 Mac mini mua trên Karrot với giá đồ cũ 650.000 won và iPhone 17 (trả góp 24 tháng).
Mac mini đời mới thực sự là món có hiệu năng/giá thành cực tốt!! Rất đáng tiền, rất khuyến nghị. - Thiết kế: Tôi không có designer riêng.
Vì vậy tôi đã nhờ đến Dribbble và Readdy.
Nếu chụp màn hình một UI mình thích rồi ném vào Cursor và prompt kiểu "hãy làm y hệt cái này", nó sẽ trả ra đoạn code hoàn thiện hơn 90%.
Với UI cơ bản thì một lập trình viên làm một mình cũng hoàn toàn có thể xử lý được. Tất nhiên vẫn có nhiều điểm đáng tiếc vì không có designer. - Các điểm nghẽn
- Thông báo đẩy: Tôi đã lãng phí thời gian với Firebase rồi chuyển sang OneSignal, sau đó vật lộn nhiều ngày với vấn đề Supabase JWT.
- Thanh toán trong ứng dụng & SSO: Chỉ với Cursor thì không giải quyết được. Tôi phải đối chiếu chéo với cả tầng miễn phí của Claude, Gemini và Grok để triển khai.
- Đăng nhập Zalo: Vì không có SDK chính thức cho Flutter nên cuối cùng tôi đã bỏ cuộc.
🤖 Đánh giá về việc dùng Cursor Pro
- Có lẽ nhờ ưu đãi lúc đăng ký ban đầu nên trong 3 tháng đầu tôi có thể dùng Auto Mode không giới hạn. Với phí thuê bao $20/tháng, mỗi tháng tôi dùng ra giá trị hơn $1.000.
- Nhưng từ tháng thứ 4 thì Auto Mode cũng bị giới hạn, và chỉ sau 4 ngày tôi đã chạm mức sử dụng, rồi nhận được thông báo yêu cầu trả thêm tiền. Đến bây giờ tôi vẫn không dùng được gì cho tới kỳ thanh toán tiếp theo.
- Tôi đã cố gắng tận dụng song song tầng miễn phí của Gemini, Grok, Claude và còn nhận được trợ giúp từ Antigravity vừa ra mắt đúng lúc.
Nói ngắn gọn, với tôi Cursor giống như một đội phát triển full-stack không biết mệt và cũng không hề phàn nàn.
Việc của tôi gần với chuyện chỉ huy đội ngũ này hơn là trực tiếp ngồi code.
Ngồi một mình để nghĩ xem phải giải quyết vấn đề này như thế nào thực ra không có nhiều ý nghĩa.
Thay vào đó, hỏi AI sẽ nhanh hơn rất nhiều.
💡 Reality Check (ảo tưởng vs thực tế)
'Vibe Coding' thường được nói trên YouTube và thực tế là hai chuyện khác nhau.
- Các môn nền tảng khoa học máy tính vẫn là bắt buộc: Việc hiểu cấu trúc của đoạn code do AI viết và debug cuối cùng vẫn là phần việc của con người. Dĩ nhiên, tôi cũng nghĩ sẽ có ngày AI làm việc này tốt hơn con người rất nhiều...
- Nếu không hiểu kiến trúc thì code sẽ biến thành spaghetti code không thể bảo trì. Nếu không refactor dần trong quá trình làm thì thật sự sẽ đi rất xa khỏi kiểm soát.
- Khi không tạo được code mà bạn mắng nó làm cho đàng hoàng, nó có thể làm ra chuyện tệ là xóa luôn cả code.
- Đòn bẩy từ kinh nghiệm: Nghịch lý là càng có nhiều kinh nghiệm phát triển thì hiệu quả của công cụ AI càng bùng nổ. Nếu nó giúp người mới chạy nhanh hơn tốc độ đi bộ, thì với người có kinh nghiệm nó giúp họ bay lên. Nghe vừa đáng tiếc vừa đáng sợ, nhưng có lẽ từ giờ sẽ không còn nhiều công ty tuyển lập trình viên mới nữa.
🏁 Kết
Trong 100 ngày qua, vợ tôi đã vất vả một mình chăm con. Ngay cả cuối tuần tôi cũng không chơi với con được.
Thị trường ứng dụng hẹn hò thực sự là một red ocean... nên tôi đang băn khoăn không biết sắp tới phải làm marketing như thế nào.
Hiện tại vẫn đang ở giai đoạn thu hút người dùng ban đầu nên việc matching có thể chưa được mượt.
App Store: https://apps.apple.com/us/app/weconnect-cultural-exchange/id6755277858
Google Play: https://play.google.com/store/apps/…
Website: https://www.wctokyoseoul.com
Nếu có câu hỏi về tech stack hoặc cách tận dụng AI thì hãy để lại bình luận,
tôi sẽ cố gắng trả lời trong phạm vi hiểu biết của mình.
Cảm ơn bạn đã đọc bài dài này.
15 bình luận
Wow, dịch vụ này thú vị thật, mình sẽ vào xem thử!
Bạn đang dùng dịch vụ nào để dịch thời gian thực vậy? Mình cũng tò mò về chi phí nữa hehe
Tôi dùng Cursor nhưng nhanh chạm giới hạn nên giờ đang dùng Claude trên Zed; tôi rất thích vì Claude cứ vài tiếng trong ngày lại được làm mới, và giới hạn theo tuần cũng được đặt lại mỗi tuần.
Có lý do gì để bạn dùng kèm với zed không? Mình khá tò mò.
có thể gắn trực tiếp Claude Agent vào Zed, và như vậy hạn mức sẽ được đặt lại định kỳ nên lượng sử dụng khá dư dả
Mình hơi thấy khó hiểu... đặt lại giới hạn không phải là tính năng có sẵn của Claude Code sao?
Đúng vậy. Cursor đặt giới hạn sử dụng ở phía trung gian của họ, còn với Zed thì vì kết nối trực tiếp tới Claude nên giới hạn sẽ được đặt lại.
À, hóa ra là do Cursor có vấn đề.
Lúc đầu tôi không hiểu vì tôi dùng Claude trong terminal.
À.. ra là bạn dùng trực tiếp trong terminal.
Dạo này tôi cũng nghe nói tổ hợp Cursor + Claude đang là xu hướng. Antigravity cũng khá dùng được nên tôi vẫn tạm xoay xở với Cursor + Antigravity. Thật sự rất ghen tị với việc hạn mức của Claude được đặt lại...
Hãy vào Cour Settings
chọn Indexing & Docs ở menu bên trái..
Khi kiểm tra Codebase
bạn sẽ thấy Codebase Indexing ngay bên dưới.
Và nó sẽ hiển thị màu xanh ở mức 100%
ngay bên dưới nữa
sẽ có tổng số file mà Cursor đang tham chiếu trong codebase.
Và nếu muốn xem danh sách các file đã được indexing..
ở Ignore Files in .cursorignore
hãy nhấp vào View included files bên dưới.
Tất cả các file được tham chiếu sẽ hiện ở đây.
Nhìn vào đó... rồi thêm các thư mục, file không cần thiết vào file
.cursorignoretrong Codebase Indexing hãy chọn Delete Index
rồi Sync lại thì sẽ hiện ra số lượng file được nạp cuối cùng..
và chọn View included files để xem
Cứ tiếp tục lặp lại như vậy..
bạn sẽ có thể khiến Cursor chỉ index những file thực sự cần thiết.
Lúc trước tôi không biết điều này và cứ thế code..
chỉ cần prompt một lần là vài triệu token bị tiêu hao rất nhanh.
Tôi tìm kiếm khắp nơi và thử nghiệm thì
đã tiết kiệm được khá nhiều token.
Hiện tại OpenAI Codex đang miễn phí. Có lẽ nó cũng sẽ giới hạn token như Cursor thôi.
Nếu bạn đăng ký các đoạn mã và tài liệu không cần thiết bằng
.cursorignorethì
(có thể đây là lời khuyên thừa vì bạn còn có nhiều kinh nghiệm hơn tôi..)
bạn có thể giảm đáng kể chi phí phát sinh do số lượng token.
Codex của OpenAI cũng tạm dùng được. Tuy nhiên nó chậm hơn Cursor khá nhiều.
Khi thử phát triển full-stack bằng Cursor..
hừm... do việc sinh mã quá nhanh
nên có điểm là rất khó rà soát hết toàn bộ đoạn mã đó.
Và rồi...
các tác dụng phụ của việc dùng AI bắt đầu xuất hiện.
Vì mải tập trung code(?) quá mức..
không biết có nên gọi là bị kiệt sức không nữa? Những cảm xúc như vậy bắt đầu dâng lên.
Có lẽ cách diễn đạt này là đúng hơn, thật sự rất mệt luôn haha T_T
Tôi hoàn toàn đồng cảm với ý anh/chị là nó rất dễ làm mình kiệt sức. Công việc đáng lẽ mất một tuần thì chỉ cần bấm cái là xong trong 10 phút, nên đôi khi cũng thấy hụt hẫng.. Khi buông được áp lực là cứ phải liên tục giao việc cho nó, tôi thấy nhẹ nhõm hơn một chút.
3 tháng đầu vì AutoMode là không giới hạn nên tôi đã không nghĩ tới việc tận dụng
.cursorignoremột cách tích cực. Chắc từ giờ tôi phải tìm hiểu kỹ hơn mới được.Cảm ơn anh/chị.
Cá nhân tôi nghĩ rằng nếu bạn đã dùng gói claude code 100$, có lẽ bạn đã không phải căng thẳng quá nhiều về giới hạn sử dụng.