Digital Transformation
Monorepo
TL;DR: Monorepo adalah satu repositori yang menampung beberapa aplikasi atau paket sekaligus. Pendekatan ini memudahkan kolaborasi tim besar, mempercepat refactor lintas project, dan menjaga konsistensi tooling.
Apa itu Monorepo?
Monorepo, singkatan dari monolithic repository, menggabungkan beberapa codebase yang sebelumnya terpisah ke dalam satu Git repository. Contoh nyata: satu repo berisi web app Next.js, dashboard admin, package UI bersama, dan utilitas TypeScript. Pendekatan ini dipakai Google, Meta, dan Vercel untuk skala besar. Untuk konteks stack modern, monorepo sering dipasangkan dengan Next.js dan deployment serverless.
Cara Kerja Monorepo
| Komponen | Fungsi |
|---|---|
| Workspace manager | pnpm workspaces, Yarn workspaces, npm workspaces untuk hoisting dependency |
| Build orchestrator | Turborepo atau Nx untuk caching task dan paralelisasi build |
| Shared packages | Komponen UI, utility, types yang dipakai semua app |
| Versioning | Changesets atau Lerna untuk publish independen tiap package |
Kenapa Penting?
Untuk tim Indonesia yang masih kecil tapi punya banyak product (website utama, landing page kampanye, internal dashboard), monorepo memangkas duplikasi. Satu perubahan di komponen Button langsung dipakai semua app tanpa publish ke npm. Ini juga mempercepat onboarding developer baru karena satu clone berarti seluruh ekosistem.
Pertanyaan Umum
Apakah monorepo cocok untuk tim kecil?
Cocok jika punya lebih dari satu app yang berbagi kode. Untuk satu app tunggal, multi-repo lebih sederhana.
Apa beda monorepo dengan monolith?
Monorepo adalah strategi penyimpanan kode. Monolith adalah arsitektur aplikasi. Monorepo bisa berisi banyak microservice yang masing-masing tetap kecil.
Istilah Terkait