Das beste live update ist das, das deine User kaum bemerken.
Das bedeutet meistens drei Dinge:
- Der Download ist klein.
- Der Rollout ist kontrolliert.
- Wenn etwas schiefgeht, ist das Recovery sofort da.
Der Rat „Keep OTA lean“ aus der React-Native-Welt lässt sich auch auf Capgo übertragen. Der Unterschied: Capgo bietet Capacitor-Teams ein paar zusätzliche Hebel: Delta-Updates, Channels, automatische Rollbacks, Version-TargetingNachricht sowie optionale End-to-End-Verschlüsselung.
Die Kombination sorgt für kleinere Payloads, schnellere Installs und deutlich weniger operativen Aufwand.
Lean bleibt wichtig, auch wenn die MAU gleich bleibt
Ein nützliches Detail speziell zu Capgo: Die Capgo MAU ist praktisch die Anzahl der monatlich aktiven Geräte, die in den letzten 30 Tagen den Update-Service kontaktiert haben.
Ein Bundle zu verkleinern ist also in erster Linie kein Trick, um die MAU-Zählung zu drücken. Es zählt, weil es die Dinge verbessert, die User und Teams wirklich spüren:
- Schnellere Downloads über Mobilfunk oder schwaches WLAN
- Besseres Erlebnis durch Direct Updates
- Weniger Bandbreitenverbrauch bei fehlgeschlagenen oder zurückgesetzten Releases
- Geringerer Blast Radius beim Testen oder Staging von Releases
Bei Lean Updates geht es vor allem um Speed, Sicherheit und operative Disziplin.
1. Standardmäßig Delta Updates nutzen
Wenn du nur eine Sache änderst, dann das.
Capgos Delta-Updates Sende nur die Dateien, die sich zwischen den Versionen geändert haben, anstatt das gesamte Web-Bundle neu herunterzuladen. Das ist der größte Hebel für die tägliche OTA-Performance.
bun run build
bunx @capgo/cli@latest bundle upload --channel staging --delta
Sobald dein QA-Pass abgeschlossen ist:
bunx @capgo/cli@latest bundle upload --channel production --delta
Wenn du die CI-Regeln strikt halten willst, nutze --delta-only , damit niemand versehentlich auf Full-Bundle-Uploads zurückgreift:
bunx @capgo/cli@latest bundle upload --channel production --delta-only
Verwende nur --delta-only , wenn deine Production-Flotte Delta-Updates unterstützt. Bei gemischten Plugin-Versionen können ältere Geräte, die kein manifestbasiertes Delta-Delivery unterstützen, dieses Update nicht herunterladen.
Das ist noch wichtiger, wenn du directUpdatenutzt, da die Zeitspanne zwischen „Update gefunden“ und „App neu geladen“ für den User spürbar wird.
2. Assets wie Assets behandeln, nicht wie JavaScript-Ballast
Große Assets sind der Grund, warum OTA-Bundles schleichend aufgebläht werden.
Ein paar praktische Regeln:
- Inlinen von großen Bildern oder Medien in JavaScript vermeiden, wenn eine normale Asset-Datei ausreicht.
- Halte sich häufig ändernde Inhalte auf deinem eigenen CDN oder API, falls sie nicht direkt im App-Bundle liegen müssen.
- Vorsicht bei Marketing-Bildern, Onboarding-Videos und einmaligen Kampagnen-Assets, die bei jedem Release ersetzt werden.
- Lass stabile Assets stabil. Dank Delta-Updates werden unveränderte Dateien wiederverwendet, statt sie erneut herunterzuladen.
Das ist einer der einfachsten Wege, Capgo auch bei wachsender App schnell zu halten. Das schlimmste Szenario ist ein kleiner UI-Fix, der Nutzer dazu zwingt, einen Berg völlig unbeteiligter Medien herunterzuladen.
3. Native Releases für echte native Änderungen nutzen
Capgo aktualisiert den Web-Layer: HTML, CSS, JavaScript und Assets, die zur Laufzeit geladen werden.
Es ist nicht der richtige Kanal für:
- neue native Plugins,
- Berechtigungsänderungen,
capacitor.config.tsÄnderungen,- alles, was den nativen Projektstatus von iOS oder Android verändert.
Diese Trennung ist auch für die Performance entscheidend. Wenn du ständig große strukturelle Änderungen über den OTA-Weg schiebst, wird deine Update-Strategie mit der Zeit schwerfälliger und riskanter.
Nutze bewusst zwei Release-Kanäle:
Native Lane
Bei Plugin-Änderungen, Berechtigungen oder nativer Konfiguration:
bun run build
bunx cap sync
Veröffentliche dann ein reguläres Store-Release.
Capgo Lane
Für sichere Iterationen auf der Web-Layer:
bun run build
bunx @capgo/cli@latest bundle upload --channel production --delta
Aktualisiere auch regelmäßig dein natives Baseline, falls du viele langlebige Assets hinzugefügt hast. Ein neuer Store-Build enthält diese neue Baseline, wodurch zukünftige Capgo Diffs kleiner bleiben.
4. Nutze Channels für kleine Rollouts
Ein „lean“ Update betrifft nicht nur Megabytes. Es geht auch darum, wie viele Geräte das Update erhalten, bevor du sicher bist, dass es stabil läuft.
Capgos Channel-System ist der sauberste Weg, dies zu steuern:
stagingfür QAbetafür eingeladene Testerproductionfor everyonehotfixfür die Notfallwiederherstellung
Ein einfacher Workflow sieht so aus:
- Upload zu
staging. - Auf echten Geräten validieren.
- Schrittweise ausrollen, entweder über kontrollierte Channels oder prozentbasiertes Rollout.
- Sofort zurückrollen, falls die App-Health sinkt.
Wenn deine App mehrere native Baselines im Einsatz hat, kombiniere Channels mit Version-Targeting. Das verhindert, dass inkompatible oder unnötig große Bundles auf ältere Binaries treffen.
Für Teams, die noch schnellere Review-Loops wollen, eignet sich Capgo auch hervorragend für PR-Previews. So können Produkt, QA und Stakeholder JS-only-Änderungen testen, ohne auf neue TestFlight- oder Play-Internal-Builds zu warten.
5. Wenn du Direct Updates aktivierst, optimiere den Startup massiv
Je schneller ein Update angewendet werden soll, desto disziplinierter muss dein Startup-Pfad sein.
Capgos Update-Verhalten die Docs empfehlen explizit die Kombination directUpdate mit Delta Updates. Das ist der richtige Default.
Die zweite Leitplanke ist notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
Wenn deine App nicht innerhalb des standardmäßigen 10-Sekunden-Fensters notifyAppReady() oder des Zeitraums, appReadyTimeout den du in deiner Capacitor-Config festlegst, „ready“ meldet, kann Capgo dieses Bundle als ungültig markieren und die letzte funktionierende Version wiederherstellen. Dieses Rollback-Verhalten willst du in der Produktion, aber es heißt auch, dass du den Startup sauber halten solltest:
- Rufe
notifyAppReady()an der richtigen Stelle - Vermeide langsame Boot-Prozesse im kritischen Pfad
- App-State vorsichtig speichern und wiederherstellen bei sofortigem Reload
- Schlechte Netzwerke und Low-End-Geräte vor dem Rollout testen
Falls du es nicht vor Kurzem gelesen hast, lohnt es sich, den notifyAppReady Guide noch einmal zu lesen.
6. Interne Update-Channels statt unnötiger Native Builds nutzen
Viele Mobile-Teams verschwenden Zeit damit, Binaries für Änderungen zu bauen, die eindeutig nur den Web-Teil betreffen.
Wenn die Änderung:
- Copy ist,
- UI-Polishing ist,
- Onboarding-Flow,
- Pricing-Screen-Logik,
- Analytics-Anbindung,
- Feature Flags,
- Rendering von Prompts oder API Antworten,
dann ist ein Capgo Update oft das schnellere Review-Artefakt.
Das bedeutet weniger Native Builds, weniger TestFlight-Churn und einen schnelleren Feedback-Loop für das Team. Es ist einer der am meisten unterschätzten Vorteile von Capgo: Du kannst mehr Review- und QA-Arbeit in den OTA-Bereich verlagern, ohne die Grenze zwischen Native und Web zu verletzen.
Unser Guide zu Staging mit einer Mobile-App-ID zeigt einen praktischen Weg, um das langfristig sauber zu halten.
7. Lean getrennt von Secrets halten
Kleine Bundles und sichere Bundles lösen unterschiedliche Probleme.
Channels steuern die Berechtigung. Sie machen ein Bundle nicht allein vertraulich.
Wenn du stärkere Liefergarantien benötigst:
- aktivieren Live Update-Verschlüsselung,
- mit eigener Storage oder Self-hosted Delivery,
- behalte Private Keys nur in der CI oder in gesicherten Operator-Workflows.
Das macht die Update-Größe nicht irrelevant. Es bedeutet nur, dass du beide Aspekte optimieren solltest:
- lean für Speed,
- verschlüsselt für die Delivery-Kontrolle,
- Channels für die Rollout-Kontrolle,
- Rollback für die Recovery.
Ein praktischer „Lean Capgo“-Workflow
Wenn du ein einfaches Standard-Betriebsmodell suchst, nutze dieses:
- Trenne Native- und OTA-Release-Lanes strikt.
- Lade JS-Änderungen mit
--deltastandardmäßig hoch. - Nutzt
stagingundbetaChannels vorproduction. - Ansehen Update-Stats und Logs nach dem Rollout, nicht nur davor.
- Mache PRs zu installierbaren Previews, wenn kein Native Build nötig ist.
- Vermeide große, häufig wechselnde Medien im Bundle, wo immer möglich.
- Aktualisiere die native Baseline nach massivem Asset-Wachstum oder nativen Änderungen.
- Betrachte
notifyAppReady()und das Rollback-Verhalten als Teil des Release Engineering, nicht als bloße Setup-Details.
Diese Kombination bleibt deutlich länger schnell als der übliche „einfach alles hochladen, was sich geändert hat“-Ansatz.
Abschließender Gedanke
Für Capgo Teams ist „lean and fast“ nicht nur ein Problem der Bundle-Größe.
Es ist ein Problem des Release-Designs.
Nutze Delta Updates für die Payload-Größe, Channels für die Rollout-Größe und Rollbacks für das Ausmaß von Fehlern. Wenn du OTA so betrachtest, bleiben deine Updates auch bei wachsender App, Team und Nutzerbasis schnell.
Weiterlesen in: How to Keep Capgo Updates Lean and Fast
Wenn du es nutzt So bleiben Capgo Updates schlank und schnell um Channel-Routing und Staged Rollout zu planen, verbinde es mit Kanäle für die Implementierungsdetails in Channels, Kanäle für die Implementierungsdetails in Channels, Kanäle für die Implementierungsdetails in Channels, Beta-Testing-Lösung für den Produkt-Workflow in der Beta-Testing-Lösung, und Version-Targeting-Lösung für den Produkt-Workflow in der Version-Targeting-Lösung.