Từ Blog

Từ ý tưởng lên 3 app store trong 23 ngày, với AI agents

Case study phát triển bằng AI kèm số liệu thật: một kỹ sư cùng AI agents đưa sản phẩm lên Chrome Web Store, App Store và Google Play trong 23 ngày.

Từ ý tưởng lên 3 app store trong 23 ngày, với AI agents

Ngày 11/06/2026, AI Solve Quiz mới chỉ là một ý tưởng một dòng: đưa camera vào câu hỏi trắc nghiệm, nhận về câu trả lời biết tự giải thích. Ngày 04/07 — hai mươi ba ngày sau — nó đã live trên Chrome Web Store, Apple App Store và Google Play, listing được bản địa hoá 21 ngôn ngữ, và đã nhận những khoản thanh toán thật.

Một kỹ sư, làm việc gần như một mình. Năm surface production: browser extension, trang marketing, portal khách hàng, backend API, và app mobile Flutter. 140 commits. Và gần như toàn bộ code do AI agents viết — bên trong một hệ thống gồm plan, gate và review.

Đây là một case study phát triển bằng AI kèm đầy đủ "biên lai" — timeline, kiến trúc, quy trình, và cả những chỗ đổ vỡ. Bọn mình công bố nó vì "chúng tôi ship nhanh bằng AI" là một tuyên bố dễ nói và khó chứng minh, còn đây là bằng chứng của bọn mình trông như thế nào.

Biên lai

Ngày thứNgàyChuyện gì xảy ra
111/06Prototype chạy được + master plan 949 dòng + monorepo hoàn chỉnh với 153 test xanh
919/06Nhận khoản thanh toán thật đầu tiên (PayPal live); web, portal, backend đều lên production
1020/06App Flutter (23 màn hình) lên TestFlight
1222/06Bản Android đầu tiên lên Play internal, listing đẩy qua API
2102/07Extension live trên Chrome Web Store
2304/07Mobile v1.2.0 submit App Store và live trên Google Play — đủ 3 store, 21 ngôn ngữ

Hình vẽ tay timeline 23 ngày với khoảng trống theo tỉ lệ thật: ngày 1 prototype và plan, ngày 9 khoản thanh toán đầu, ngày 10 TestFlight, ngày 12 Play internal, đoạn chờ store review dài, ngày 21 Chrome Web Store, ngày 23 đủ 3 store

Một ghi chú thành thật trước khi đi tiếp: trong 23 ngày lịch đó, chỉ 13 ngày có commit. Phần còn lại là xếp hàng chờ store review. Tính tròn là khoảng hai tuần công thực tế — điều này làm con số thú vị hơn, chứ không kém đi.

Ngày 1: một prototype rẻ tiền giết chết một sai lầm đắt đỏ

Ngày đầu tiên không dành để dựng codebase "xịn". Nó dành cho một extension vứt-đi-được — JavaScript thuần, không build tool, người dùng tự nhập API key — sinh ra để trả lời đúng một câu hỏi: vòng lặp lõi có chạy không?

Suýt thì không. Phiên bản đầu dùng OCR để đọc câu hỏi trên màn hình và một model text-only để trả lời, và nó fail ngay lập tức với mọi thứ có hình ảnh hay biểu đồ. Thế là pipeline được pivot ngay trong ngày: bỏ hẳn OCR, gửi thẳng ảnh chụp đã crop cho model multimodal. Khoảng 10 MB máy móc OCR bị xoá trước khi kịp chạm vào codebase chính.

Quyết định đó — kèm lý do — được ghi vào changelog của plan và đánh dấu đã quyết, không bàn lại. Cụm từ này quan trọng hơn vẻ ngoài của nó: khi AI agents làm việc trên codebase của bạn qua nhiều phiên, một quyết định không được ghi lại là một quyết định sẽ bị lặng lẽ mở lại, tranh luận lại, và đôi khi bị đảo ngược lúc 2 giờ sáng bởi một agent không có mặt trong phòng lúc chốt.

Bài học tổng quát cho mọi dự án AI: dành một ngày chứng minh giả định rủi ro nhất bằng thứ rẻ nhất có thể. Một sai lầm kiến trúc bị bắt trong prototype vứt đi tốn một ngày. Cùng sai lầm đó bị phát hiện ở tuần thứ tư thì tốn cả roadmap.

Hệ thống giúp agent chạy nhiều giờ mà không trôi

Sự thật khó chịu về AI coding agent là: năng lực thô không phải nút thắt — phương hướng mới là. Một agent code sáu tiếng sai hướng còn tệ hơn vô dụng. Thứ giữ dự án này trên đường ray là bốn tài liệu, commit ngay ngày đầu, đóng vai trò bộ nhớ ngoài của agents:

  • Master plan (949 dòng): requirements, sơ đồ kiến trúc, data model, luật pricing, security, milestones, risks — và một bảng "stack đã quyết, không bàn lại" đóng băng các lựa chọn framework ngay từ đầu.
  • PRD máy-đọc-được: mỗi milestone là một story với acceptance criteria, mỗi tiêu chí được đánh dấu hoặc là gate tự động (verify được bằng test và build) hoặc gate thủ công (cần credential thật — sandbox thanh toán, OAuth live). File này là state machine của cả dự án.
  • Nhật ký tiến độ append-only: mỗi milestone ship gì, học được gì, và toàn bộ vệt review.
  • Notepad riêng từng milestone: context cục bộ cho agent thực thi, để plan chính không bao giờ phình.

Bên trên các tài liệu là ba kỷ luật:

Mỗi milestone tự verify chính nó. Typecheck, lint, build và test — database chạy in-memory, mọi API ngoài đều mock — phải xanh thì milestone mới được tính. Dự án kết thúc ngày đầu tiên với 153 test xanh cho mười một milestone.

Agent viết code không bao giờ là agent duyệt code. Một reviewer agent riêng kiểm từng milestone, và nó có răng thật — đã hơn một lần REJECT ở vòng đầu, buộc phải sửa rồi mới APPROVE ở vòng hai. Một pass dọn dẹp cuối cùng săn nốt những mẩu code thừa do AI sinh ra. Nếu bạn để một agent tự duyệt bài của nó, bạn không có reviewer.

Design đi trước code, dưới dạng mockup HTML commit vào repo. 23 màn hình mobile, side panel của extension, portal — tất cả tồn tại dưới dạng mockup trước, và agents implement bám theo đó như source of truth. Cãi nhau với agent về giao diện bằng lời là trò chơi thua sẵn; đưa nó một mockup là kết thúc tranh luận.

Vòng lặp vẽ tay: plan, build, verify gates, review — reject quay lại build để sửa, approve thì ghi log và sang milestone kế tiếp

Bọn mình từng viết phiên bản dễ tiếp cận của workflow này trong vibe code cho người mới; dự án này là hình hài phiên bản trưởng thành của nó dưới áp lực production.

Một người, năm surface: kiến trúc làm điều đó khả thi

Năm surface nghe như khối lượng bảo trì của cả một team. Kiến trúc là thứ biến nó thành việc vừa sức một người:

  • Monorepo với một hợp đồng dữ liệu duy nhất. Mọi shape request/response sống trong một package schema dùng chung; backend validate bằng đúng những schema mà client dùng để gọi nó. Đổi một API là type-checker chỉ ra mọi app bị ảnh hưởng cùng lúc — extension, portal, web — trước khi bất cứ thứ gì kịp chạy.
  • Frontend static-first. Trang marketing và portal đều compile ra file tĩnh, serve từ free tier của CDN. Chỉ có đúng một thứ server-side — một backend API duy nhất — nên chỉ có đúng một thứ phải giữ cho sống.
  • Deploy độc lập. Mỗi app tự build tự ship; extension build hỏng không thể kéo sập website.
  • Cấu hình tập trung, có kiểm chứng. Mọi biến môi trường khai báo bằng schema và được CI đối chiếu với file mẫu — thiếu một secret là fail to ngay lúc build, thay vì im lặng chết trên production.

Chi phí vận hành toàn bộ — năm surface production, database, email, monitoring, lưu ảnh — rơi vào khoảng $15–20/tháng hạ tầng cố định, chưa tính API AI theo usage. Kiến trúc có chủ đích cũng chính là một chiến lược chi phí.

Sơ đồ kiến trúc vẽ tay: hub hợp đồng Zod nối extension, web, portal và mobile, với một backend duy nhất là server duy nhất — hạ tầng cố định 15 tới 20 đô một tháng

Release lên store bằng code, ngay từ đầu

Đưa sản phẩm lên ba store với 21 ngôn ngữ nghe như nhiều tuần bấm dashboard. Thay vào đó nó được script hoá:

  • iOS ship mà không mở Xcode. Build, ký và upload app chạy headless bằng script gọi thẳng App Store Connect API; listing của cả 21 locale sống dưới dạng file JSON trong git và được đẩy lên bởi một script chỉ ghi bản draft — con người mới là người bấm submit.
  • Android dùng cùng cách tiếp cận metadata-as-code, với các lane release cho internal testing và production.
  • Toàn bộ screenshot cho cả ba store render từ một file HTML — một "screenshot studio" tự chế mà headless Chrome biến thành trọn bộ asset: ảnh iPhone và iPad, Android phone và tablet, feature graphic, promo tile. Rebrand cả bộ asset đồng nghĩa với sửa một file.

Phần thưởng: store listing trở nên diff được, review được, rollback được như mọi dòng code khác — và một AI agent vận hành được trọn pipeline release từ đầu tới cuối.

Những gì đã hỏng, giữ nguyên cho thành thật

Một case study bỏ qua thất bại là một bài quảng cáo. Ba thứ đã cắn rất đau:

Google index đúng 0 trang suốt nhiều tuần — vì trailing slash. Một lệch pha cấu hình static-site khiến mọi URL trong sitemap trả về redirect, nên toàn bộ 577 URL đều không thể index. Bản fix là hai dòng cấu hình build. Bài học: không tồn tại thứ gọi là SEO nộp-rồi-quên; hãy nhìn báo cáo index coverage, đừng nhìn biên nhận "đã submit sitemap".

Apple reject app — hai lần, và họ đúng. Listing ghi "Free" trong khi app bán credits mà không có in-app purchase, vi phạm hai điều trong review guideline. Sửa cho đúng đồng nghĩa với tích hợp nguyên một lớp IAP. Hãy đọc guideline của store trước khi thiết kế bề mặt pricing, đừng đợi email từ chối.

Cỗ máy hoàn hảo chưa phải là distribution. Chính bản audit tháng 7 của bọn mình chấm dự án "engineering A, distribution F": technical SEO không tì vết, nhưng 0 backlink, 0 review, 0 hiện diện social. Google gần như chẳng buồn crawl. Trong workflow này, ship là bài toán đã giải; được tìm thấy là một bộ môn riêng với khối lượng việc riêng.

Ba tấm card vẽ tay về những gì đã hỏng: 577 URL không được index vì trailing slash, hai lần App Store từ chối buộc phải làm in-app purchase thật, và bản tự audit chấm engineering A nhưng distribution F

Điều này nghĩa là gì nếu bạn đang scope một dự án AI

Tài sản chuyển giao được ở đây không phải là sự phi thường — mà là quy trình: chứng minh rủi ro trong một ngày, đóng băng quyết định bằng văn bản, để mỗi milestone tự verify, tách người build khỏi người duyệt, coi release và store metadata là code. Đó chính xác là quy trình bọn mình mang vào các dự án cho khách hàng, scale theo team: vì thế mà dịch vụ phát triển AI agent của ISEMI bắt đầu bằng một discovery sprint ngắn thay vì một bản hợp đồng to, và gate production được đặt từ tuần đầu tiên.

Còn nếu bạn đang so sánh các vendor, dạng bài viết này chính là loại bằng chứng bọn mình khuyên bạn đòi hỏi từ bất kỳ ai — đây là checklist 10 điểm mà bọn mình sẵn sàng để bị chấm ngược.

FAQ

Có thật là 23 ngày không? Hai mươi ba ngày lịch từ commit đầu tiên đến live trên cả ba store — 11/06 đến 04/07/2026. Chỉ 13 ngày trong đó có commit; khoảng trống chủ yếu là hàng chờ store review. Cách nói thành thật theo bọn mình là "khoảng hai tuần công build, hơn ba tuần thời gian thực".

AI agents viết code thật à? Gần như toàn bộ, qua Claude Code chạy trong một vòng lặp có điều phối: đọc plan, làm milestone, tự verify gate, ghi tiến độ, lặp lại. Con người đặt phương hướng, review output, duyệt milestone, và xử lý những bước cần người thật — tài khoản store, credential thanh toán, bấm submit cuối cùng.

Chi phí vận hành bao nhiêu? Khoảng $15–20/tháng hạ tầng cố định cho cả năm surface, cộng API AI theo usage và subscription công cụ dev. Phí store một lần: Apple $99/năm, Google Play $25, Chrome Web Store $5.

Tốc độ kiểu này có đánh đổi chất lượng không? Guardrail chính là câu trả lời: 153 test tự động từ ngày đầu, verify theo từng milestone, và một bước review đối kháng nơi một agent riêng biệt từ chối những phần việc dưới chuẩn trước khi được merge. Nhanh mà không có gate là cách ship một bản demo; nhanh kèm gate là cách ship một sản phẩm.

Quy trình này áp dụng được cho sản phẩm của tôi không? Quy trình thì chuyển giao được; timeline phụ thuộc scope. Prototype khả thi một ngày, quyết định ghi thành văn, milestone tự verify, tách vai reviewer — áp dụng cho mọi dự án AI. Đó là cách bọn mình chạy dự án khách hàng: bắt đầu bằng discovery sprint, không phải một cú nhảy niềm tin.


AI Solve Quiz là sản phẩm của chính bọn mình — cùng đội ngũ và cùng pipeline đứng sau các dự án khách hàng. Nếu bạn muốn một dự án AI được chạy với mức kỷ luật này, trao đổi với bọn mình về phát triển AI agent.

Từ Blog →

AI workflow automation là gì? Giải thích dễ hiểu

AI workflow automation giải thích bằng ngôn ngữ thường: nó là gì, khác RPA và automation theo luật ra sao, con người đứng ở đâu, và bắt đầu thế nào.

Multi-agent hay một AI agent: khi nào cần nhiều hơn một?

Hệ thống multi-agent rất mạnh — và thường là quá sớm. Một khung quyết định thực dụng: khi nào một AI agent là đủ, khi nào thật sự cần nhiều hơn.