Aller au contenu principal

Apps en marque blanche et multi-tenant

Déployez l'app de chaque tenant depuis un seul codebase

Donnez à chaque tenant, marque ou lieu son propre canal Capgo. Mettez à jour la couche web d'un tenant sans toucher aux autres, et créez des shells natifs personnalisés avec Capgo Build.

1 codebase
Une application Capacitor partagée pour chaque tenant
1 canal par tenant
Bundle, historique et rollback propres
Builds cloud
Flavors Android et schemes iOS

Shell

app Capacitor

Tenants

Canaux

Natif

Build Capgo

Le problème

La gestion des apps white-label devient complexe quand chaque client devient un fork

Les variantes de marque se multiplient vite

Chaque client veut son propre logo, son thème, ses fonctionnalités, son contenu et sa date de lancement. Des forks distincts transforment ces demandes en une maintenance coûteuse à chaque release.

Les reviews des stores ralentissent les correctifs des tenants

Une faute de frappe dans un menu ou un correctif d'onboarding pour un tenant ne devrait pas attendre un nouveau binaire et une review des stores, souvent 24 à 48 h, parfois bien plus.

Les releases globales sont trop imprécises

Une mise à jour globale peut casser toutes les marques d'un coup. Un fork par marque ralentit toute l'équipe. Vous avez besoin d'un canal de release par tenant.

Configurations courantes

À quoi ressemble le white-label dans une app Capgo

App SaaS aux couleurs du client

Chaque client professionnel a son logo, son thème, son contenu d'onboarding et ses fonctionnalités, et reçoit les mises à jour sur son propre canal.

App de franchise ou d'établissement

Chaque restaurant, clinique, salle de sport ou succursale reçoit ses menus locaux, ses assets et ses écrans de campagne via des live updates, sans nouveau binaire.

Marketplace de mini-apps

Une app hôte liste les espaces de travail ou mini-apps et bascule l'appareil, à l'exécution, vers le canal Capgo correspondant avec setChannel().

La solution

Un shell d'app unique, un canal de release par client

Le shell natif reste partagé. La couche web de chaque client passe par son propre canal.

Un canal par client

Chaque client, franchise ou espace de travail dispose d'un canal. Déployez vers un seul client ou vers tous, et faites un rollback sur un canal sans toucher aux autres.

Doc sur les canaux

Auto-assignation au runtime

Avec l'auto-assignation activée, l'app appelle setChannel() pour placer un appareil sur le canal de son tenant. Capgo valide toujours le canal à chaque vérification de mise à jour.

Référence setChannel()

Ciblage de version selon les shells

Les tenants utilisent souvent différentes versions natives. Bloquez les mises à jour majeures par canal, ou définissez une version native minimale, pour qu'un bundle n'atteigne que les shells capables de l'exécuter.

Docs sur le ciblage de version

Capgo Build pour les shells de marque

Compilez chaque flavor Android ou scheme iOS dans le cloud, puis envoyez-le sur les stores. Utilisez les live updates pour la couche web qui change chaque semaine.

Options de build

Comment ça marche

Comment les équipes white-label déploient avec Capgo

Un seul codebase Capacitor, un canal par tenant. Les commandes et code proviennent de la documentation Capgo CLI et de l'updater.

  1. Créer un canal pour chaque tenant

    Chaque tenant a un canal avec son propre bundle et son historique. Autorisez l'auto-affectation pour que l'app puisse y déplacer un appareil.

    npx @capgo/cli@latest channel add acme com.example.app --self-assign
    npx @capgo/cli@latest channel add globex com.example.app --self-assign
    Doc sur les canaux
  2. Envoyer le bundle de chaque tenant

    Compilez la couche web avec le thème et la config du tenant, puis envoyez-l’uniquement vers le canal de ce tenant. Les autres tenants conservent leur bundle actuel.

    npx @capgo/cli@latest bundle upload --channel acme
    npx @capgo/cli@latest bundle upload --channel globex
    Docs sur le rollback
  3. Basculer l'appareil vers son tenant à la connexion

    Après la connexion, appelez setChannel() avec le canal du tenant. Le choix est stocké sur l'appareil et prend effet à la prochaine vérification de mise à jour.

    import { CapacitorUpdater } from '@capgo/capacitor-updater'
    
    await CapacitorUpdater.setChannel({
      channel: tenant.channel,
      triggerAutoUpdate: true,
    })
    Référence setChannel()
  4. Compiler des shells brandés dans le cloud

    Quand un tenant a besoin de sa propre fiche store, de son icône ou de ses permissions, compilez cette flavor ou ce scheme avec Capgo Build. Pas besoin de votre propre Mac.

    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
    Options de build

Apps développées avec Capacitor

Les médias régionaux et les apps opérateurs partagent un cœur commun mais exigent un contrôle local

Les marques régionales de sport, de divertissement ou de télécom peuvent réutiliser une base d'app unique tout en adaptant les calendriers, les campagnes, le support et le contenu spécifique à chaque marque ou pays.

Icône de l'application Tigo Sports Guatemala SPORTS

Tigo Sports Guatemala

Application de médias sportifs régionaux où les programmes et le contenu local doivent être gérés par marché.

Installations Google Play
1,6 M
Note du store
3.3
Icône de l'application TV SPIELFILM - TV-Programm Divertissement

TV SPIELFILM - Programme TV

Guide de divertissement où le contenu varie selon le marché et la programmation.

Installations Google Play
12,1 M
Note du store
4.4
Icône de l'application Mi Orange OUTILS

Mi Orange

App opérateur où les modèles de comptes partagés ont encore besoin de contenu produit et support local.

Installations Google Play
9,3 M
Note du store
4.2

Témoignages clients

Ce que disent les équipes qui déploient avec Capgo

5.0/5 noté par les équipes de développeurs 9,400+ équipes Lire les avis

no-tone @ Webincode

Développeur, Webincode

« Pouvoir ajouter des Device ID à certains groupes et n'envoyer les changements qu'à certains groupes, ça nous sauve la vie. »

Nate van Jole

CTO, Privé

« L'installation a pris moins d'une journée. Les déploiements progressifs par canal me permettent de tester sur mon propre appareil avant de toucher les utilisateurs en production. »

Portrait de Sergiu S

Sergiu S

Développeur principal, drivolino GmbH

« Le plugin Capgo Capacitor Updater a totalement transformé notre façon de déployer les mises à jour. Ce qui prenait des jours ne prend plus que quelques minutes. »

FAQ

Questions sur la marque blanche

What teams ask before running many brands on one Capgo setup.

Avons-nous besoin d'une application Capgo distincte pour chaque marque ?

Seulement si chaque marque a son propre app ID dans les stores. Une seule application dans les stores qui sert plusieurs tenants correspond à une application Capgo, avec un canal par tenant. Des applications de marque distinctes dans les stores sont des applications Capgo distinctes, chacune avec ses propres canaux.

Doc sur les canaux

Un utilisateur peut-il changer de tenant dans l'application ?

Oui. Si le canal du tenant autorise l'auto-assignation, appelez setChannel() depuis l'application. Sur les versions actuelles du plugin, le choix est stocké sur l'appareil et utilisé lors de la prochaine vérification de mise à jour.

Référence setChannel()

Et si certains tenants sont sur une version native plus ancienne ?

Utilisez le ciblage de version. Bloquez les mises à jour majeures sur un canal, ou définissez une version native minimale sur un bundle, pour que les anciens shells gardent un bundle qu'ils peuvent faire tourner.

Docs sur le ciblage de version

Pouvons-nous effectuer un rollback pour un seul tenant sans affecter les autres ?

Oui. Chaque canal conserve son propre historique de bundles. Effectuez un rollback sur le canal du tenant vers un bundle précédent, et les autres canaux conservent leur version actuelle.

Docs sur le rollback

What still needs a store release?

Les noms d'app, les icônes, les permissions, les plugins natifs et le code natif résident dans le binaire. Capgo Build peut compiler chaque flavor ou scheme et l'envoyer sur App Store Connect et Google Play.

Documentation Capgo Build

Testez les canaux de tenant sur votre propre app

Pendant l'essai de 14 jours, créez deux canaux de tenant, envoyez un bundle sur chacun, et basculez un appareil de test entre eux avec setChannel().