- Kasava mengelola seluruh proses pengembangan produk di dalam satu monorepo, menyatukan kode, dokumentasi, pemasaran, dan data operasional
- Semua perubahan diterapkan dalam satu commit, sehingga backend, frontend, situs web, dan dokumentasi diperbarui secara bersamaan
- Alat AI langsung merujuk ke kode, dokumentasi, dan situs web untuk melakukan verifikasi konsistensi, pembaruan dokumentasi otomatis, dan peninjauan konten
- CLAUDE.md, Selective CI/CD, dan struktur proyek npm independen digunakan untuk meminimalkan kompleksitas repositori berskala besar
- Pendekatan ini memperkuat budaya pengembangan AI-native dan menghilangkan batas antara produk, konten, dan operasi sehingga memungkinkan deployment dan kolaborasi yang cepat
Makna pengembangan AI-native dan monorepo
- Kasava mengintegrasikan semua komponen platform ke dalam satu repositori Git, mencakup bukan hanya kode tetapi juga dokumentasi, pemasaran, email, hingga materi investor
- Contoh: terdiri dari lebih dari 5.470 file TypeScript seperti
frontend/, backend/, website/, docs/, marketing/, external/
- AI dapat mengakses kode dan dokumentasi sekaligus untuk melakukan otomatisasi berbasis konteks
- Revisi dokumentasi, perubahan harga di situs web, dan verifikasi blog dapat ditangani dalam satu percakapan AI
- Semua perubahan dideploy dengan workflow Git yang sama (
git push)
- Kode, konten, dokumentasi, dan pemasaran melewati proses review, CI/CD, dan audit yang sama
- Cara ini meningkatkan kecepatan dan konsistensi serta menanamkan budaya “mengelola semuanya sebagai kode”
Alasan menyatukan semuanya dalam satu repositori
- Atomic changes lintas batas
- Saat API backend diubah, definisi tipe frontend dan dokumentasi diperbarui dalam commit yang sama
- Contoh: saat menambahkan integrasi Asana, backend, frontend, dokumentasi, dan situs web digabung dalam satu PR
- Single source of truth
- Satu
billing-plans.json mendefinisikan batas paket harga dan semua layanan merujuk padanya
- AI secara otomatis memverifikasi konsistensi antara backend, frontend, dan situs web
- Refactoring lintas proyek
- Di IDE, seluruh kode, dokumentasi, hingga contoh di blog dapat dicari dan diubah
- Alat dan pipeline bersama
- Pengelolaan disederhanakan lewat CI/CD, dependensi, dan lingkungan pencarian yang sama
Struktur repositori dan komponennya
- Core Application:
frontend/ berbasis Next.js 16 + React 19, sedangkan backend/ menggunakan Cloudflare Workers + Hono + Mastra
- Saat API berubah, stabilitas tipe dan utilitas pengujian dapat dibagikan
- Marketing:
- Mencakup
website/, marketing/blogs/, investor-deck/, email/
- Blog, email, dan materi investor semuanya dikelola versinya sebagai kode, dan dapat di-rollback dengan
git revert
- Documentation:
docs/ adalah dokumentasi publik berbasis Mintlify, docs-internal/ adalah dokumentasi arsitektur internal
- Dapat ditelusuri bersama kode, menjaga informasi tetap terbaru secara real-time alih-alih memakai wiki
- External Services:
- Mencakup layanan eksternal yang dideploy seperti ekstensi Chrome, Google Docs Add-on, dan GCP Functions
- Kontrak API dibagikan sehingga perubahan dapat diterapkan secara serentak
- Development Infrastructure:
- Mencakup server tiruan dan alat pengujian untuk pengembangan lokal seperti
github-simulator/, infra-tester/, scripts/
Cara kerja operasional dan budaya pengembangan
- Tidak menggunakan workspace
- Setiap direktori dipertahankan sebagai proyek npm independen untuk mencegah konflik dependensi
- Selective CI/CD
- GitHub Actions dipicu berdasarkan path sehingga hanya pengujian terkait yang dijalankan
- Aturan CLAUDE.md
- Setiap direktori utama mendokumentasikan stack teknis, perintah, dan keputusan arsitektur
- Asisten AI membacanya untuk memahami konteks proyek
- Konfigurasi alat yang konsisten
- Menjaga pengaturan bersama seperti
.prettierrc, .eslintrc, tsconfig.json
Tantangan dan respons
- Ukuran repositori: saat ini waktu clone sekitar 20 detik, tanpa masalah performa Git
- Aset berukuran besar rencananya akan dipisahkan ke R2/S3
- Waktu build: setiap proyek dibangun secara independen, dengan rebuild cepat melalui Turbopack, Wrangler, dan WXT
- Batas izin akses: tim kecil dapat mengakses seluruhnya, dan bila perlu CODEOWNERS serta branch protection dapat diterapkan
- Perpindahan konteks: perpindahan antarberbagai bahasa (TypeScript, Apps Script, MJML) diringankan dengan CLAUDE.md dan format yang seragam
Kesimpulan
- Monorepo Kasava bukan sekadar tren, melainkan alat untuk memaksimalkan produktivitas melalui integrasi konteks
- Backend, frontend, dokumentasi, dan pemasaran bergerak dalam satu perubahan, dan AI memverifikasinya secara real-time
- Hasilnya, “monorepo bukan batasan melainkan perangkat akselerasi (force multiplier)”
1 komentar
Komentar Hacker News
Ini tampaknya bukan mengelola seluruh perusahaan, melainkan hanya satu produk (monorepo)
Tidak ada hal seperti keuangan, HR, kontrak, atau foto tim; hanya struktur frontend+backend dengan folder pemasaran yang sedikit tidak biasa
Jadi wajar jika semuanya bisa dimasukkan ke satu repo, tetapi nilai “insight” yang didapat dalam situasi seperti itu jadi patut dipertanyakan
Misalnya sampai mencakup artefak terenkripsi, dengan model seperti “hanya CEO yang memegang kunci enkripsi secara fisik”
Akan bagus jika GitHub menambahkan konsep private folder, tetapi itu menyangkut masalah ACL jadi mungkin tuntutan yang berlebihan
Saya mendukung filosofi monorepo dan no development branch
Namun pengembangan dan rilis harus dibedakan
Harus bisa memotong rilis stabil lalu melakukan cherry-pick, dan stabilitas API antara frontend dan backend wajib dijaga
Jika pengembangan dilakukan langsung di branch utama, mereka penasaran bagaimana mengelola berbagai pekerjaan dengan skala berbeda secara paralel
Ia mengatakan dirinya mengelola lebih dari 3 produk dalam monorepo, dan tidak ada masalah meski deployment dilakukan per unit rilis stabil
Ia tidak suka git squash, dan mengatakan pendekatan forking memberi lingkungan yang lebih bebas bagi developer
Pernyataan “satu perubahan memperbarui semua tempat sekaligus” adalah ilusi berbahaya
Dalam sistem yang memiliki DB atau API, kompatibilitas ke belakang harus selalu dipertimbangkan
Di organisasi dengan banyak tim, sering terjadi satu tim tidak bisa memvalidasi upgrade sehingga semuanya ikut terhambat
Karena itu rollout bertahap adalah keharusan
Monorepo itu sendiri tidak buruk, tetapi “semua langsung ter-deploy dengan satu perubahan” itu mustahil
Karena skema DB dan kode tidak bisa berubah secara bersamaan
Tulisan seperti ini terlihat seperti blog yang ditulis AI, dan sepertinya juga hampir tidak punya pelanggan sungguhan
Jangan salah mengira masalah organisasi sebagai masalah teknis; ini harus diselaraskan lewat kebijakan antar tim dan kepemimpinan
Ia menambahkan bahwa pendekatan seperti ini hanya mungkin untuk tim kecil
Dulu saya tidak suka monorepo, tetapi setelah memakai Claude Code pandangan saya berubah
Jika frontend dan backend ada dalam satu repo, sinkronisasi jadi mudah
Tulisan ini terasa seperti ditulis AI
Melelahkan karena sulit menemukan konten yang benar-benar ditulis manusia
Kalimat seperti “This isn’t just for...” dan “The Challenges (And How We Handle Them)” adalah gaya khas AI
Kurang lebih maksudnya, meski tidak sempurna bukankah ini tetap lebih baik daripada tulisan manusia
Bagian yang menyuruh “Claude untuk memperbarui halaman harga” terasa aneh
Jika halaman pemasaran dikelola dalam repo yang sama, rasanya sulit memahami mengapa hal yang cukup dilakukan dengan membaca data dari file config justru diserahkan ke LLM
Maksudnya, keberadaan AI tidak berarti manusia tidak lagi melakukan peninjauan
Menaruh “frontend, backend, website” dalam satu repo terasa membingungkan
Integrasi pada level commit memang terlihat bagus, tetapi 3 repo pun sudah cukup untuk mengelolanya
Untuk menjalankan monorepo dengan benar, biaya pemeliharaannya cukup besar
Tulisan ini memang tampak seperti dibuat AI, tetapi gagasannya sendiri sebagai perluasan ekstrem dari IaC tetap menarik
Karena itu rasanya campur aduk
Jika nanti gaya LLM seperti ini menjadi akrab bagi publik, tulisan-tulisan sekarang mungkin akan terasa kuno
Jika situs web perusahaan ada di repo yang sama, materi branding dan tone mudah ditemukan
Karena itu lebih mudah untuk membuat slide atau video demo untuk pelanggan secara otomatis
Lebih jauh lagi, menaruh dokumentasi, bug, dan issue di satu tempat juga terdengar menarik
Di startup lama Pangea, kami pernah membuat struktur serupa
Secara umum bagus, tetapi tidak sempurna
Meski begitu, ada juga hasil seperti beralih ke ARM dan mengurangi biaya komputasi 70%
Tautan Pangea
Katanya tanpa tool seperti itu, CI akan menabrak batas skalabilitas