- Kasava quản lý toàn bộ quy trình phát triển sản phẩm trong một monorepo duy nhất, tích hợp toàn bộ mã nguồn, tài liệu, marketing và dữ liệu vận hành
- Mọi thay đổi đều được phản ánh bằng một commit duy nhất, theo cấu trúc mà backend, frontend, website và tài liệu được cập nhật đồng thời
- Công cụ AI tham chiếu trực tiếp mã nguồn, tài liệu và website để thực hiện kiểm tra tính nhất quán, tự động cập nhật tài liệu, rà soát nội dung, v.v.
- Sử dụng CLAUDE.md, Selective CI/CD, cấu trúc dự án npm độc lập để giảm thiểu độ phức tạp của kho lưu trữ quy mô lớn
- Cách tiếp cận này củng cố văn hóa phát triển AI-native, xóa bỏ ranh giới giữa sản phẩm, nội dung và vận hành, giúp triển khai và cộng tác nhanh hơn
Ý nghĩa của phát triển AI-native và monorepo
- Kasava hợp nhất mọi thành phần nền tảng vào một kho Git duy nhất, không chỉ gồm mã nguồn mà còn cả tài liệu, marketing, email và tài liệu gọi vốn
- Ví dụ: cấu trúc gồm hơn 5.470 tệp TypeScript như
frontend/, backend/, website/, docs/, marketing/, external/
- AI có thể truy cập đồng thời mã nguồn và tài liệu để thực hiện tự động hóa dựa trên ngữ cảnh
- Việc sửa tài liệu, thay đổi giá trên website, kiểm tra bài blog đều có thể được xử lý trong một cuộc hội thoại duy nhất với AI
- Mọi thay đổi đều được triển khai theo cùng một quy trình Git (
git push)
- Mã nguồn, nội dung, tài liệu và marketing đều đi qua cùng một quy trình review, CI/CD và kiểm toán
- Cách làm này tăng tốc độ và tính nhất quán, đồng thời định hình văn hóa “quản lý mọi thứ dưới dạng mã”
Vì sao hợp nhất vào một kho lưu trữ duy nhất
- Thay đổi nguyên tử xuyên biên giới (Atomic Changes)
- Khi sửa backend API, định nghĩa kiểu ở frontend và tài liệu được cập nhật trong cùng một commit
- Ví dụ: khi thêm tính năng tích hợp Asana, backend, frontend, tài liệu và website được gộp vào một PR duy nhất
- Nguồn chân lý duy nhất (Single Source of Truth)
- Chỉ với một
billing-plans.json để định nghĩa giới hạn gói cước, mọi dịch vụ đều tham chiếu vào đó
- AI tự động kiểm tra tính nhất quán giữa backend, frontend và website
- Refactor xuyên dự án
- Có thể tìm kiếm và chỉnh sửa toàn bộ mã nguồn, tài liệu, thậm chí cả ví dụ trong blog ngay trong IDE
- Công cụ và pipeline dùng chung
- Đơn giản hóa việc quản lý bằng CI/CD, phụ thuộc và môi trường tìm kiếm dùng chung
Cấu trúc kho lưu trữ và các thành phần
- Ứng dụng cốt lõi:
frontend/ dựa trên Next.js 16 + React 19, backend/ sử dụng Cloudflare Workers + Hono + Mastra
- Khi API thay đổi, có thể chia sẻ tính an toàn kiểu dữ liệu và utility kiểm thử
- Marketing:
- Gồm
website/, marketing/blogs/, investor-deck/, email/
- Blog, email và tài liệu gọi vốn đều được quản lý phiên bản như mã nguồn, có thể rollback bằng
git revert
- Tài liệu:
docs/ là tài liệu công khai dựa trên Mintlify, docs-internal/ là tài liệu kiến trúc nội bộ
- Có thể tìm kiếm cùng với mã nguồn, duy trì thông tin luôn mới theo thời gian thực thay vì dùng wiki
- Dịch vụ bên ngoài:
- Bao gồm các dịch vụ triển khai bên ngoài như tiện ích mở rộng Chrome, Google Docs Add-on, GCP Functions
- Nhờ chia sẻ hợp đồng API, thay đổi có thể được phản ánh đồng thời
- Hạ tầng phát triển:
- Gồm máy chủ mô phỏng và công cụ kiểm thử cho phát triển cục bộ như
github-simulator/, infra-tester/, scripts/
Cách vận hành và văn hóa phát triển
- Không dùng workspace
- Giữ mỗi thư mục như một dự án npm độc lập để tránh xung đột phụ thuộc
- Selective CI/CD
- GitHub Actions được kích hoạt theo đường dẫn để chỉ chạy các bài kiểm thử liên quan
- Quy tắc CLAUDE.md
- Mỗi thư mục chính đều ghi lại stack kỹ thuật, lệnh và quyết định kiến trúc
- Trợ lý AI đọc nội dung này để hiểu ngữ cảnh của dự án
- Thiết lập công cụ nhất quán
- Duy trì các cấu hình dùng chung như
.prettierrc, .eslintrc, tsconfig.json
Thách thức và cách ứng phó
- Kích thước kho lưu trữ: thời gian clone hiện tại khoảng 20 giây, chưa có vấn đề về hiệu năng Git
- Tài sản dung lượng lớn dự kiến sẽ được tách sang R2/S3
- Thời gian build: mỗi dự án build độc lập, tái build nhanh nhờ Turbopack, Wrangler, WXT
- Ranh giới quyền hạn: đội ngũ nhỏ có thể truy cập toàn bộ, khi cần có thể áp dụng CODEOWNERS và bảo vệ nhánh
- Chuyển đổi ngữ cảnh: việc chuyển qua lại giữa nhiều ngôn ngữ (TypeScript, Apps Script, MJML) được giảm tải nhờ CLAUDE.md và định dạng thống nhất
Kết luận
- Monorepo của Kasava không chỉ là một xu hướng đơn thuần mà là công cụ tối đa hóa năng suất thông qua hợp nhất ngữ cảnh
- Backend, frontend, tài liệu và marketing cùng vận hành trong một thay đổi duy nhất, đồng thời AI kiểm tra chúng theo thời gian thực
- Kết quả là “monorepo không phải ràng buộc mà là đòn bẩy tăng tốc (force multiplier)”
1 bình luận
Ý kiến Hacker News
Cái này không phải là quản lý toàn bộ công ty, mà chỉ giống như một sản phẩm duy nhất (monorepo)
Không có tài chính, HR, hợp đồng, ảnh đội ngũ hay những thứ tương tự; chỉ là cấu trúc frontend + backend với một thư mục marketing được đưa vào theo cách hơi khác thường
Vì vậy có thể nhét mọi thứ vào một repo, nhưng trong hoàn cảnh như vậy thì giá trị của những “insight” rút ra được cũng đáng để nghi ngờ
Ví dụ bao gồm cả artifact được mã hóa, theo kiểu “chỉ CEO nắm giữ khóa mã hóa dưới dạng vật lý”
Sẽ hay nếu GitHub thêm khái niệm private folder, nhưng đó là vấn đề ACL nên có lẽ là đòi hỏi hơi quá
Tôi ủng hộ triết lý monorepo và không có development branch
Nhưng phát triển và phát hành vẫn phải được tách bạch
Cần có khả năng cắt ra các bản phát hành ổn định rồi cherry-pick, và độ ổn định API giữa frontend và backend bắt buộc phải được duy trì
Nếu phát triển trực tiếp trên nhánh main thì họ thắc mắc làm sao quản lý song song các công việc ở nhiều quy mô khác nhau
Người này đang vận hành hơn 3 sản phẩm trong một monorepo, nhưng nói rằng triển khai theo đơn vị release ổn định vẫn không có vấn đề gì
Họ không thích git squash và cho rằng cách làm forking cho lập trình viên môi trường tự do hơn
Câu “chỉ cần một thay đổi là mọi nơi được cập nhật cùng lúc” là một ảo tưởng nguy hiểm
Với các hệ thống có DB hay API, lúc nào cũng phải tính đến khả năng tương thích ngược
Trong tổ chức có nhiều team, sẽ có trường hợp một team không thể xác minh nâng cấp và khiến cả hệ thống bị kẹt lại
Vì vậy rollout dần dần là điều bắt buộc
Bản thân monorepo không xấu, nhưng chuyện “một thay đổi là mọi thứ được deploy ngay lập tức” là bất khả thi
Vì schema DB và code không thể thay đổi đồng thời
Những bài như thế này trông giống blog do AI viết, và có lẽ cũng gần như không có khách hàng thực tế
Đừng nhầm vấn đề tổ chức với vấn đề kỹ thuật; nên điều phối bằng chính sách giữa các team và năng lực lãnh đạo
Và họ cũng nói thêm rằng đây là cách tiếp cận chỉ phù hợp với team nhỏ
Trước đây tôi ghét monorepo, nhưng sau khi dùng Claude Code thì đã đổi ý
Khi frontend và backend ở cùng một repo, việc đồng bộ dễ hơn
Bài viết này tạo cảm giác như do AI viết
Thật mệt mỏi khi ngày càng khó tìm được nội dung do con người viết
Những câu như “This isn’t just for…” hay “The Challenges (And How We Handle Them)” là giọng văn AI rất điển hình
Đại ý là dù không hoàn hảo thì chẳng phải vẫn tốt hơn bài do con người viết sao
Đoạn “bảo Claude cập nhật trang giá” nghe khá kỳ lạ
Quản lý trang marketing trong cùng một repo mà lại giao cho LLM việc đáng ra chỉ cần đọc dữ liệu từ file config là xong thì khó mà thuyết phục
Có AI không có nghĩa là con người không còn kiểm tra nữa
Việc bỏ “frontend, backend, website” vào cùng một repo khá rối rắm
Gộp theo đơn vị commit thì có vẻ hay, nhưng 3 repo riêng vẫn hoàn toàn quản lý được
Muốn vận hành monorepo đúng cách thì chi phí duy trì là khá lớn
Bài viết có vẻ do AI viết, nhưng ý tưởng mở rộng IaC đến mức cực đoan thì bản thân nó lại khá thú vị
Vì thế cảm giác khá phức tạp
Có lẽ khi kiểu phong cách LLM này trở nên quen thuộc với công chúng hơn, những bài hiện nay sẽ bị thấy là quê mùa
Nếu để website công ty trong cùng một repo thì sẽ dễ tìm tài liệu branding và giọng điệu thương hiệu hơn
Vì vậy cũng thuận lợi cho việc tự động tạo slide cho khách hàng hoặc video demo
Xa hơn nữa, việc đưa cả tài liệu, bug, issue vào cùng một chỗ cũng khá thú vị
Trước đây tại startup Pangea họ đã làm một cấu trúc tương tự
Nhìn chung là tốt, nhưng không phải hoàn hảo
Dù vậy họ vẫn đạt được kết quả như chuyển sang ARM và giảm 70% chi phí compute
Liên kết Pangea
Vì nếu không có những công cụ đó thì sớm muộn cũng sẽ chạm trần về khả năng mở rộng của CI