Langsung ke konten utama

Aplikasi white-label dan multi-tenant

Rilis aplikasi tiap tenant dari satu codebase

Berikan tiap tenant, brand, atau lokasi channel Capgo sendiri. Update web layer satu tenant tanpa mengganggu yang lain, dan buat branded native shell dengan Capgo Build.

1 codebase
Aplikasi Capacitor bersama untuk tiap tenant
1 channel per tenant
Bundle, history, dan rollback sendiri
Cloud build
Android flavors dan iOS schemes

Shell

app Capacitor

Tenants

Channel

Native

Build Capgo

Masalahnya

Aplikasi white-label jadi sulit saat tiap klien jadi fork

Varian brand bertambah cepat

Tiap klien ingin logo, tema, fitur, konten, dan tanggal rilis sendiri. Fork terpisah membuat permintaan tersebut jadi beban maintenance di setiap rilis.

Review store menghambat perbaikan tenant

Typo menu atau perbaikan onboarding satu tenant tidak seharusnya menunggu binary baru dan review store selama 24–48 jam, atau bahkan lebih lama.

Rilis global terlalu kaku

Satu update global bisa merusak semua brand sekaligus. Satu fork per brand memperlambat tim. Anda butuh jalur rilis per tenant.

Setup umum

Seperti apa tampilan white-label di aplikasi Capgo

Aplikasi SaaS dengan brand pelanggan

Setiap pelanggan bisnis mendapatkan logo, tema, teks onboarding, dan fitur sendiri, serta menerima update di channel mereka sendiri.

Aplikasi franchise atau lokasi

Setiap restoran, klinik, gym, atau cabang mendapatkan menu lokal, aset, dan layar kampanye via Live Update, tanpa perlu binary baru.

Marketplace mini-app

Host app menampilkan workspace atau mini-apps dan mengarahkan perangkat ke channel Capgo yang sesuai saat runtime dengan setChannel().

Solusinya

Satu app shell, satu release lane per tenant

Native shell tetap digunakan bersama. Web layer setiap tenant bergerak melalui channel mereka sendiri.

Channel per tenant

Setiap tenant, franchise, atau workspace mendapatkan channel sendiri. Kirim update ke satu tenant atau ke semuanya, dan rollback satu channel tanpa mengganggu yang lain.

Dokumentasi Channels

Self-assign saat runtime

Dengan self-assignment aktif, aplikasi memanggil setChannel() untuk menempatkan perangkat di channel tenant-nya. Capgo tetap memvalidasi channel pada setiap pengecekan update.

Referensi setChannel()

Targeting versi antar shell

Tenant sering memakai versi native yang berbeda-beda. Blokir update major per channel, atau tetapkan versi native minimum, agar bundle hanya sampai ke shell yang bisa menjalankannya.

Dokumentasi version targeting

Capgo Build untuk branded shell

Build setiap Android flavor atau iOS scheme di cloud lalu upload ke store. Gunakan live updates untuk web layer yang berubah tiap minggu.

Opsi build

Cara kerjanya

Cara tim white-label merilis dengan Capgo

Satu codebase Capacitor, satu channel per tenant. Perintah dan code diambil dari dokumentasi Capgo CLI dan updater.

  1. Buat channel untuk setiap tenant

    Setiap tenant mendapat channel dengan bundle dan history sendiri. Aktifkan self-assignment agar aplikasi bisa memindahkan device ke channel tersebut.

    npx @capgo/cli@latest channel add acme com.example.app --self-assign
    npx @capgo/cli@latest channel add globex com.example.app --self-assign
    Dokumentasi Channels
  2. Upload bundle setiap tenant

    Build web layer dengan tema dan config tenant, lalu upload hanya ke channel tenant tersebut. Tenant lain tetap memakai bundle mereka saat ini.

    npx @capgo/cli@latest bundle upload --channel acme
    npx @capgo/cli@latest bundle upload --channel globex
    Dokumentasi rollback
  3. Pindahkan device ke tenant saat sign-in

    Setelah sign-in, panggil setChannel() dengan channel tenant. Pilihan ini disimpan di device dan berlaku pada pengecekan update berikutnya.

    import { CapacitorUpdater } from '@capgo/capacitor-updater'
    
    await CapacitorUpdater.setChannel({
      channel: tenant.channel,
      triggerAutoUpdate: true,
    })
    Referensi setChannel()
  4. Build branded shell di cloud

    Saat tenant butuh store listing, ikon, atau permission sendiri, build flavor atau scheme tersebut dengan Capgo Build. Tidak perlu Mac sendiri.

    npx @capgo/cli@latest build request com.acme.app --platform android --android-flavor acme
    npx @capgo/cli@latest build request com.acme.app --platform ios --ios-scheme Acme
    Opsi build

Aplikasi yang dibangun dengan Capacitor

Aplikasi media dan operator regional berbagi core yang sama, tetapi butuh kontrol lokal

Brand olahraga, hiburan, dan telekomunikasi regional dapat memakai ulang satu fondasi app sambil mengubah jadwal, kampanye, dukungan, dan konten khusus pasar untuk setiap brand atau negara.

Ikon aplikasi Tigo Sports Guatemala OLAHRAGA

Tigo Sports Guatemala

Aplikasi media olahraga regional yang butuh kendali atas jadwal dan konten lokal per pasar.

Instalasi Google Play
1,6jt
Rating toko
3.3
Ikon aplikasi TV SPIELFILM - TV-Programm ENTERTAINMENT

TV SPIELFILM - Program TV

Panduan hiburan dengan konten yang bervariasi tiap pasar dan jadwal program.

Instalasi Google Play
12,1 jt
Rating toko
4.4
Ikon aplikasi Mi Orange ALAT

Mi Orange

Aplikasi operator di mana pola akun bersama tetap butuh konten produk dan dukungan lokal.

Instalasi Google Play
9,3 jt
Rating toko
4.2

Bukti nyata pelanggan

Apa kata tim yang merilis aplikasi dengan Capgo

5.0/5 Diberi rating oleh tim developer 9,400+ tim Baca ulasan

no-tone @ Webincode

Developer, Webincode

“Bisa menambahkan Device ID ke grup tertentu dan push perubahan hanya ke grup itu sangat membantu.”

Nate van Jole

CTO, Privat

“Setup-nya selesai kurang dari sehari. Rollout berbasis channel memungkinkan saya menguji di perangkat sendiri sebelum sampai ke pengguna production.”

Potret Sergiu S

Sergiu S

Lead Developer, drivolino GmbH

“Plugin Capgo Capacitor Updater benar-benar mengubah cara kami merilis update. Yang dulu butuh berhari-hari kini hanya butuh beberapa menit.”

FAQ

Pertanyaan White-label

Apa yang ditanyakan tim sebelum menjalankan banyak brand dalam satu setup Capgo.

Apakah kita butuh app Capgo terpisah untuk setiap brand?

Hanya jika setiap brand punya app ID sendiri di store. Satu app store yang melayani banyak tenant adalah satu app Capgo dengan satu channel per tenant. App store branded yang terpisah adalah app Capgo yang berbeda, masing-masing dengan channel sendiri.

Dokumentasi Channels

Bisakah user berpindah tenant di dalam app?

Bisa. Jika channel tenant mengizinkan self-assignment, panggil setChannel() dari app. Pada versi plugin saat ini, pilihan tersebut disimpan di perangkat dan digunakan pada pengecekan update berikutnya.

Referensi setChannel()

Bagaimana jika beberapa tenant menggunakan versi native yang lebih lama?

Gunakan version targeting. Blokir update major pada suatu channel, atau tetapkan minimum native version pada sebuah bundle, agar shell lama tetap menggunakan bundle yang bisa mereka jalankan.

Dokumentasi version targeting

Bisakah kami melakukan rollback pada satu tenant tanpa memengaruhi tenant lainnya?

Bisa. Setiap channel menyimpan riwayat bundle-nya sendiri. Anda dapat melakukan rollback channel tenant ke bundle sebelumnya, sementara channel lain tetap berjalan normal.

Dokumentasi rollback

Apa saja yang masih memerlukan rilis ke store?

Nama aplikasi, ikon, izin, native plugin, dan native code tersimpan di dalam binary. Capgo Build dapat membuild setiap flavor atau scheme dan mengunggahnya ke App Store Connect dan Google Play.

Dokumentasi Build Capgo

Coba tenant channel di aplikasi Anda sendiri

Selama masa trial 14 hari, buat dua tenant channel, upload bundle ke masing-masing channel, dan pindahkan perangkat uji coba di antara keduanya menggunakan setChannel().