Saltar al contenido principal

Apps white-label y multi-tenant

Publica la app de cada tenant desde un único codebase

Asigna a cada tenant, marca o ubicación su propio canal de Capgo. Actualiza la capa web de un tenant sin afectar a los demás y crea shells nativas de marca con Capgo Build.

1 codebase
App Capacitor compartida para cada tenant
1 canal por tenant
Bundle, historial y rollback propios
Builds en la nube
Android flavors e iOS schemes

Shell

App Capacitor

Tenants

Canales

Nativo

Build de Capgo

El problema

Las apps white-label se complican cuando cada cliente es un fork

Las variantes de marca se multiplican rápido

Cada cliente quiere su propio logo, tema, conjunto de funciones, contenido y fecha de lanzamiento. Los forks separados convierten esas solicitudes en mantenimiento que pagas en cada release.

Las reviews de la tienda frenan los fixes por cliente

Un typo en el menú o un fix de onboarding para un cliente no debería esperar a un nuevo binario y la review de la tienda, que suele tardar de 24 a 48 horas, y a veces mucho más.

Los releases globales son demasiado generales

Una actualización global puede romper todas las marcas a la vez. Un fork por marca ralentiza a todo el equipo. Necesitas un canal de release por cliente.

Configuraciones comunes

Cómo se ve el white-label en una app Capgo

SaaS con marca de cliente

Cada cliente empresarial tiene su propio logo, tema, textos de onboarding y conjunto de features, y recibe actualizaciones en su propio canal.

App para franquicias o locales

Cada restaurante, clínica, gimnasio o sucursal recibe menús, assets y pantallas de campaña como live updates, sin un nuevo binario.

Marketplace de mini-apps

Una app host lista workspaces o mini-apps y, en runtime, mueve el dispositivo al canal Capgo correspondiente con setChannel().

La solución

Una app shell, un release lane por tenant

El native shell sigue siendo compartido. La capa web de cada tenant se mueve por su propio canal.

Canal por tenant

Cada tenant, franquicia o workspace tiene un canal. Haz deploy a uno o a todos, y haz rollback de un canal sin tocar los demás.

Docs de Channels

Autoasignación en runtime

Con la autoasignación activa, la app llama a setChannel() para poner un dispositivo en el canal de su tenant. Capgo sigue validando el canal en cada comprobación de actualización.

Referencia de setChannel()

Segmentación de versiones entre shells

Los tenants suelen usar distintas versiones nativas. Bloquea las actualizaciones major por canal o define una versión nativa mínima para que un bundle solo llegue a los shells que puedan ejecutarlo.

Docs de segmentación de versiones

Capgo Build para shells con marca

Haz el build de cada flavor de Android o scheme de iOS en la nube y súbelo a las stores. Usa Live Updates para la capa web que cambia cada semana.

Opciones de build

Cómo funciona

Cómo los equipos white-label lanzan con Capgo

Una codebase de Capacitor, un canal por tenant. Los comandos y code provienen de la documentación de Capgo CLI y updater.

  1. Crea un canal para cada tenant

    Cada tenant recibe un canal con su propio bundle e historial. Permite la auto-asignación para que la app pueda mover el dispositivo a él.

    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 de Channels
  2. Sube el bundle de cada tenant

    Construye la capa web con el tema y config del tenant, luego súbela solo a su canal. Los demás tenants mantienen su bundle actual.

    npx @capgo/cli@latest bundle upload --channel acme
    npx @capgo/cli@latest bundle upload --channel globex
    Docs de rollback
  3. Mueve el dispositivo a su tenant al iniciar sesión

    Tras el sign-in, llama a setChannel() con el canal del tenant. La elección se guarda en el dispositivo y surte efecto en el próximo update check.

    import { CapacitorUpdater } from '@capgo/capacitor-updater'
    
    await CapacitorUpdater.setChannel({
      channel: tenant.channel,
      triggerAutoUpdate: true,
    })
    Referencia de setChannel()
  4. Crea shells con marca en la nube

    Cuando un tenant necesite su propio store listing, icono o permisos, construye ese flavor o scheme con Capgo Build. Sin necesidad de un Mac propio.

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

Apps creadas con Capacitor

Apps de medios y operadoras regionales comparten una base pero necesitan control local

Marcas regionales de deportes, entretenimiento y telecomunicaciones pueden reutilizar una misma base de app y cambiar horarios, campañas, soporte y contenido específico para cada marca o país.

Icono de la app Tigo Sports Guatemala DEPORTES

Tigo Sports Guatemala

App de medios deportivos regionales con horarios y contenido local que requieren control de mercado.

Instalaciones en Google Play
1.6M
Calificación en la tienda
3.3
Icono de la app TV SPIELFILM - TV-Programm ENTRETENIMIENTO

TV SPIELFILM - Guía de TV

Guía de entretenimiento donde el contenido varía según el mercado y la programación.

Instalaciones en Google Play
12,1M
Calificación en la tienda
4.4
Icono de la app Mi Orange HERRAMIENTAS

Mi Naranja

App de operadora donde las cuentas compartidas aún requieren contenido local de producto y soporte.

Instalaciones en Google Play
9,3M
Calificación en la tienda
4.2

Testimonios de clientes

Lo que dicen los equipos que publican con Capgo

5.0/5 valorado por equipos de desarrollo 9,400+ equipos Leer reseñas

no-tone @ Webincode

Desarrollador, Webincode

“Poder añadir Device IDs a grupos concretos y enviar los cambios solo a esos grupos es un salvavidas.”

Nate van Jole

CTO, Privado

“La configuración tomó menos de un día. Los rollouts por canales me permiten probar en mi propio dispositivo antes de lanzarlo a producción.”

Retrato de Sergiu S

Sergiu S

Desarrollador principal, drivolino GmbH

“El plugin Capgo Capacitor Updater transformó por completo cómo lanzamos actualizaciones. Lo que antes tardaba días ahora tarda solo minutos.”

FAQ

Preguntas sobre white-label

Qué preguntan los equipos antes de gestionar varias marcas en un setup de Capgo.

¿Necesitamos una app Capgo independiente para cada marca?

Solo si cada marca tiene su propio app ID en las tiendas. Una app de tienda que sirve a múltiples tenants es una app Capgo con un canal por tenant. Las apps de marca separadas en las tiendas son apps Capgo distintas, cada una con sus propios canales.

Docs de Channels

¿Puede un usuario cambiar de tenant dentro de la app?

Sí. Si el canal del tenant permite la autoasignación, llama a setChannel() desde la app. En las versiones actuales del plugin, la elección se guarda en el dispositivo y se usa en la siguiente comprobación de actualización.

Referencia de setChannel()

¿Qué pasa si algunos tenants usan una versión nativa más antigua?

Usa el version targeting. Bloquea actualizaciones mayores en un canal, o establece una versión nativa mínima en un bundle, para que los shells antiguos mantengan un bundle que puedan ejecutar.

Docs de segmentación de versiones

¿Podemos hacer un rollback de un solo tenant sin afectar a los demás?

Sí. Cada canal mantiene su propio historial de bundles. Revierte el canal del tenant a un bundle anterior y los otros canales conservan lo que tienen.

Docs de rollback

¿Qué sigue necesitando un release en la store?

Los nombres de las apps, los iconos, los permisos, los plugins nativos y el code nativo van en el binario. Capgo Build puede compilar cada flavor o scheme y subirlo a App Store Connect y Google Play.

Docs de Capgo Build

Prueba los tenant channels en tu propia app

Durante la prueba de 14 días, crea dos tenant channels, sube un bundle a cada uno y alterna un dispositivo de prueba entre ellos con setChannel().