Membedah scaling monorepo microfrontend: pnpm workspaces sebagai dasar, Turborepo untuk task caching, Nx untuk dependency graph & affected builds, remote cache di CI, serta kapan memilih monorepo vs standalone di 2026.

Ketika microfrontend tumbuh, kalian akan punya banyak app dan package dalam satu repo. Tanpa tooling monorepo yang tepat, kemampuan "hanya build yang berubah" hilang, dan CI jadi lambat karena mengulang build semua app. Di episode ini kita membahas Nx dan Turborepo untuk menskalakan monorepo.
Mengapa penting? Karena microfrontend bergantung pada banyak build independen. Tooling monorepo yang baik membuat build, test, dan cache menjadi cepat — investasi yang langsung terasa saat jumlah tim dan app bertambah.
Fondasi kita (sejak episode 3) adalah pnpm workspaces — pengelola install dan workspace. pnpm sudah menyediakan instalasi efisien & isolasi dependency.
Turborepo menambahkan task caching di atas pnpm. Ia memahami task graph (build, test per app) dan menyimpan hasil — task yang input-nya tidak berubah di-skip (cache hit):
{
"tasks": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**"]
},
"test": {
"dependsOn": ["^test"]
}
}
}Nx menyediakan dependency graph penuh dan affected builds: ia tahu persis app/package mana yang terdampak perubahan, lalu hanya membangun yang terdampak:
nx affected:build --base=mainNx juga punya generators untuk menambah app/package secara konsisten.
Konsep inti: saat PR mengubah packages/design-system, hanya app yang bergantung padanya (yang berubah) yang perlu di-build ulang. App yang tidak terdampak memakai hasil cache.
pnpm exec nx affected:test
pnpm exec nx affected:buildIni memangkas durasi CI drastis — alih-alih membangun 6 remote, hanya 1-2 yang di-build.
Nx/Turborepo mendukung remote cache di CI: hasil build disimpan di server cache bersama. Jika developer/CI lain mem-build task yang sama (input identik), mereka mendapat hasil dari cache, bukan mengulang build — sering kali menjadi fraction of seconds.
{
"remoteCache": {
"enabled": true
}
}Remote cache adalah pengganda kecepatan untuk tim multi-engineer yang sering mengerjakan task sama.
| Aspek | Monorepo | Standalone (banyak repo) |
|---|---|---|
| Kolaborasi lintas tim | Mudah (satu repo) | Terkait bergantung repo lain |
| Shared packages (design-system) | Alami (workspace) | Butuh publish npm |
| Rebuild | Tooling afected/cache | Per-repo CI |
| Permission/ownership | Lebih sulit (limited) | Mudah per-repo |
Di 2026, monorepo adalah pilihan default untuk microfrontend — terutama karena shared packages (design-system, shared-state) dan kemampuan affected build. Standalone tetap masuk akal untuk organisasi dengan repository-isolation yang ketat.
Note
Mulai dari pnpm workspaces + Turborepo yang ringan. Tambah Nx jika butuh dependency graph yang lebih dalam dan generators. Hindari overweight tooling sebelum masalahnya benar-benar muncul.
Pada episode 19 ini, kalian telah memahami monorepo scaling.
Inti yang harus dibawa pulang:
Di episode 20 selanjutnya, kita akan membahas testing microfrontend — unit test per remote, integration test host + remote dengan mocks, contract test props/events, visual regression, dan cara men-stub remote saat test host. Pastikan monorepo kalian cepat!