品牌变体迅速增加
每个客户都想有自己的Logo、主题、特性标志、内容、合规文本和发布时间。分离的分支会将这些请求转化为永久的维护债务。
问题
每个客户都想有自己的Logo、主题、特性标志、内容、合规文本和发布时间。分离的分支会将这些请求转化为永久的维护债务。
一个菜单错误、入门修复或客户专属功能不应迫使每个租户通过二进制发布和应用商店评论。
一次全球更新可能会一次性破坏所有品牌。每个品牌的分支会使团队变慢。发布模型需要一个中间路径。
具体模型
B2B SaaS客户可以获得自己的Logo、主题、引导文本和特性标志,而不强制每个其他客户都使用相同的更新。
每个餐厅、诊所、健身房或当地 branch都可以接收本地菜单、资产、宣传屏幕和内容更新,而不需要新的二进制文件。
一个主应用可以列出批准的小应用或客户工作区,并在运行时切换到匹配的Capgo频道。
实现示例
使用相同的Capacitor shell为每个租户。将租户特定的 Web 包发布到Capgo频道,然后让应用程序从登录、组织选择或内部管理员屏幕切换到正确的频道。
# Publish tenant-specific web bundles from the same app
npx @capgo/cli@latest bundle upload --channel acme
npx @capgo/cli@latest bundle upload --channel globex
npx @capgo/cli@latest bundle upload --channel north-branch
import { CapacitorUpdater } from '@capgo/capacitor-updater'
export async function switchTenant(channel: string) {
await CapacitorUpdater.setChannel({ channel })
const latest = await CapacitorUpdater.getLatest()
const bundle = await CapacitorUpdater.download({
url: latest.url,
version: latest.version,
})
await CapacitorUpdater.set({ id: bundle.id })
}
解决方案
The Capgo model keeps the native app stable and moves brand-specific web experiences through controlled channels.
为每个租户、分支机构、工作区、客户或应用程序变体创建一个频道。只推送该品牌应接收的包。
推广一个共享的修复到每个频道时安全,或者将一个特定的更改隔离到一个客户时。
如果租户特定的包破坏了,回滚该频道而不干扰其他品牌应用程序。
使用构建器为新的原生壳创建图标、权限、插件或商店元数据发生变化时。使用 OTA 为品牌内容进行每周更改时。
发布模式
白标运营变得可管理,当每个租户都有一个明确的发布通道,并且每个通道都可以独立监控时
将共享的认证、分析、计费、导航和原生插件放在一个Capacitor应用中,而不是为每个客户重建它们
将每个客户、分公司、地点或工作空间映射到一个Capgo频道,具有自己的更新历史和发布节奏
将客户特定的JavaScript、CSS、资产、配置、副本和实验发送到客户端,无需通过应用商店审查
推广经过验证的变化,暂停风险的发布,或者只回滚需要它的租户
用户信号
用户反复强调的是控制。他们希望租户42在今天获得紧急修复,而不需要同时移动租户1、租户7和所有应用商店列表。
白标客户常见反馈
Capacitor
区域体育、娱乐和电信品牌可以重用一个应用基础,同时改变每个品牌或国家的时间表、营销活动、支持和市场特定内容
体育
区域体育媒体应用,需要市场控制的赛程和当地内容。
娱乐
娱乐指南,内容根据市场和节目窗口而异。
工具
共享账户模式仍需要本地产品和支持内容的运营商app。