Salta al contenuto principale

App white-label e multi-tenant

Distribuisci l'app di ogni tenant da un unico codebase

Assegna a ogni tenant, brand o sede il proprio canale Capgo. Aggiorna il web layer di un tenant senza toccare gli altri e crea shell native brandizzate con Capgo Build.

1 codebase
App Capacitor condivisa per ogni tenant
1 canale per tenant
Bundle, cronologia e rollback propri
Cloud build
Android flavors e iOS schemes

Shell

app Capacitor

Tenant

Canali

Nativo

Build Capgo

Il problema

Le app white-label diventano difficili quando ogni cliente diventa un fork

Le varianti del brand crescono rapidamente

Ogni cliente vuole il proprio logo, tema, feature set, contenuti e data di lancio. I fork separati trasformano queste richieste in manutenzione da pagare a ogni release.

Le recensioni rallentano i fix dei tenant

Un refuso nel menu o un fix nell'onboarding per un tenant non dovrebbero attendere un nuovo binario e la review dello store, che richiede spesso 24–48 ore, a volte molto di più.

Le release globali sono troppo poco mirate

Un unico update globale può rompere tutti i brand contemporaneamente. Un fork per brand rallenta l'intero team. Ti serve una release lane per ogni tenant.

Configurazioni comuni

Come funziona il white-label in un'app Capgo

App SaaS con branding del cliente

Ogni cliente business ha il proprio logo, tema, testi di onboarding e set di feature, e riceve aggiornamenti sul proprio canale.

App per franchise o sedi locali

Ogni ristorante, clinica, palestra o filiale riceve menu, asset e schermate di campagna come live update, senza un nuovo binario.

Marketplace di mini-app

Un'app host elenca workspace o mini-app e sposta il dispositivo sul canale Capgo corrispondente a runtime con setChannel().

La soluzione

Una sola app shell, una release lane per tenant

La shell nativa resta condivisa. Il web layer di ogni tenant passa sul proprio canale.

Un canale per tenant

Ogni tenant, franchise o workspace ha un canale. Rilascia a un singolo tenant o a tutti, e fai rollback su un canale senza toccare gli altri.

Docs canali

Self-assign a runtime

Con l'auto-assegnazione attiva, l'app chiama setChannel() per inserire il dispositivo nel canale del tenant. Capgo valida comunque il canale a ogni controllo degli update.

Riferimento setChannel()

Targeting delle versioni per shell

I tenant spesso usano versioni native diverse. Blocca gli update major per canale o imposta una versione nativa minima, così il bundle raggiunge solo le shell compatibili.

Documentazione sul version targeting

Capgo Build per shell branded

Builda ogni flavor Android o scheme iOS nel cloud e fai l'upload sugli store. Usa i live updates per il layer web che cambia ogni settimana.

Opzioni di build

Come funziona

Come i team white-label rilasciano con Capgo

Un unico codebase Capacitor, un canale per ogni tenant. I comandi e code arrivano dalla documentazione di Capgo CLI e dell'updater.

  1. Crea un canale per ogni tenant

    Ogni tenant ha un canale con il proprio bundle e la propria cronologia. Abilita l'auto-assegnazione così che l'app possa spostare un dispositivo su quel canale.

    npx @capgo/cli@latest channel add acme com.example.app --self-assign
    npx @capgo/cli@latest channel add globex com.example.app --self-assign
    Docs canali
  2. Upload del bundle di ogni tenant

    Fai la build del layer web con il tema e la config del tenant, poi fai l'upload solo sul canale di quel tenant. Gli altri tenant mantengono il loro bundle attuale.

    npx @capgo/cli@latest bundle upload --channel acme
    npx @capgo/cli@latest bundle upload --channel globex
    Docs: rollback
  3. Sposta il dispositivo sul suo tenant al login

    Dopo il login, chiama setChannel() con il canale del tenant. La scelta viene salvata sul dispositivo e ha effetto al prossimo controllo degli aggiornamenti.

    import { CapacitorUpdater } from '@capgo/capacitor-updater'
    
    await CapacitorUpdater.setChannel({
      channel: tenant.channel,
      triggerAutoUpdate: true,
    })
    Riferimento setChannel()
  4. Builda shell brandizzate nel cloud

    Quando un tenant ha bisogno di una store listing, icona o permessi propri, fai la build di quel flavor o scheme con Capgo Build. Non serve un Mac tuo.

    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
    Opzioni di build

App buildate con Capacitor

App regionali e carrier condividono un core ma richiedono controllo locale

Brand regionali di sport, intrattenimento e telecomunicazioni possono riutilizzare una singola base d'app, personalizzando orari, campagne, supporto e contenuti specifici per ogni brand o paese.

Icona app Tigo Sports Guatemala SPORT

Tigo Sports Guatemala

App di media sportivi regionali con necessità di controllo locale su contenuti e programmi.

Installazioni Google Play
1,6M
Valutazione store
3.3
Icona dell'app TV SPIELFILM - TV-Programm INTRATTENIMENTO

TV SPIELFILM - Programmazione TV

Guida all'intrattenimento con contenuti che variano in base al mercato e alla programmazione.

Installazioni Google Play
12,1M
Valutazione store
4.4
Icona dell'app Mi Orange STRUMENTI

Il mio Orange

App di un carrier dove i modelli di account condivisi richiedono ancora contenuti locali e supporto.

Installazioni Google Play
9,3M
Valutazione store
4.2

Cosa dicono i clienti

Cosa dicono i team che rilasciano con Capgo

5.0/5 valutato dai team di sviluppatori 9,400+ team Leggi le recensioni

no-tone @ Webincode

Sviluppatore, Webincode

“Poter aggiungere i Device ID a determinati gruppi e inviare le modifiche solo a quei gruppi è una manna.”

Nate van Jole

CTO, Privato

“Il setup ha richiesto meno di un giorno. I rollout basati su channel mi permettono di testare sul mio dispositivo prima che qualsiasi cosa arrivi agli utenti in produzione.”

Ritratto di Sergiu S

Sergiu S

Lead Developer, drivolino GmbH

“Il plugin Capgo Capacitor Updater ha rivoluzionato il nostro modo di rilasciare gli aggiornamenti. Quello che prima richiedeva giorni, ora si fa in pochi minuti.”

FAQ

Domande sul White-label

I dubbi dei team prima di gestire più brand con un unico setup Capgo.

Serve un'app Capgo separata per ogni brand?

Solo se ogni brand ha il proprio app ID sugli store. Un'unica app store che serve più tenant è un'app Capgo con un channel per tenant. Le app store brandizzate separate sono app Capgo distinte, ognuna con i propri channel.

Docs canali

Un utente può cambiare tenant all'interno dell'app?

Sì. Se il channel del tenant permette l'auto-assegnazione, chiama setChannel() dall'app. Nelle versioni attuali del plugin, la scelta viene salvata sul dispositivo e utilizzata al controllo dell'aggiornamento successivo.

Riferimento setChannel()

Cosa succede se alcuni tenant usano una versione native più vecchia?

Usa il version targeting. Blocca gli aggiornamenti major su un channel, o imposta una versione native minima su un bundle, così le shell più vecchie manterranno un bundle compatibile.

Documentazione sul version targeting

Possiamo fare il rollback di un singolo tenant senza influenzare gli altri?

Sì. Ogni canale mantiene la propria cronologia dei bundle. Riporta il canale del tenant a un bundle precedente e gli altri canali restano com'erano.

Docs: rollback

Cosa richiede ancora una release sugli store?

Nomi delle app, icone, permessi, plugin nativi e code nativi risiedono nel binario. Capgo Build può compilare ogni flavor o scheme e caricarlo su App Store Connect e Google Play.

Docs su Capgo Build

Prova i canali tenant sulla tua app

Durante la prova di 14 giorni, crea due tenant channel, carica un bundle in ciascuno e passa da uno all'altro su un dispositivo di test con setChannel().