---
description: Complete guide to migrating your live update setup from Capgo to Capawesome Cloud for better reliability and Capacitor features.
title: Migrating from Capgo to Capawesome Cloud - Capawesome
image: https://capawesome.io/docs/assets/images/social/blog/migrating-from-capgo-to-capawesome-cloud.png
---

<!doctype html> 

[Skip to content ](#migrating-from-capgo-to-capawesome-cloud) 

[🖥️ Introducing the **Capacitor Electron Platform** — build desktop apps for macOS, Windows, and Linux. Free & open source. ](/blog/announcing-the-capacitor-electron-platform/) 

* [ SDKs ](/docs/sdks/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ Gyroscope ](/docs/sdks/capacitor/gyroscope/)
* [ Haptics ](/docs/sdks/capacitor/haptics/)
* [ Home Indicator ](/docs/sdks/capacitor/home-indicator/)
* [ In-App Browser ](/docs/sdks/capacitor/in-app-browser/)
* [ Install Referrer ](/docs/sdks/capacitor/install-referrer/)
* [ Intercom ](/docs/sdks/capacitor/intercom/)
* [ Intune ](/docs/sdks/capacitor/intune/)
* [ Keep Awake ](/docs/sdks/capacitor/keep-awake/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Light Sensor ](/docs/sdks/capacitor/light-sensor/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* [ Localization ](/docs/sdks/capacitor/localization/)
* [ Mail Composer ](/docs/sdks/capacitor/mail-composer/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ Network ](/docs/sdks/capacitor/network/)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ Node.js ](/docs/sdks/capacitor/nodejs/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Passkeys ](/docs/sdks/capacitor/passkeys/)
* [ Password Autofill ](/docs/sdks/capacitor/password-autofill/)
* [ PDF Generator ](/docs/sdks/capacitor/pdf-generator/)
* [ PDF Viewer ](/docs/sdks/capacitor/pdf-viewer/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Permissions ](/docs/sdks/capacitor/permissions/)
* [ Phone Dialer ](/docs/sdks/capacitor/phone-dialer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ Photo Manipulator ](/docs/sdks/capacitor/photo-manipulator/)
* [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ Proximity Sensor ](/docs/sdks/capacitor/proximity-sensor/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Root Detection ](/docs/sdks/capacitor/root-detection/)
* [ Screen Brightness ](/docs/sdks/capacitor/screen-brightness/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screen Reader ](/docs/sdks/capacitor/screen-reader/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Settings Launcher ](/docs/sdks/capacitor/settings-launcher/)
* [ Shake ](/docs/sdks/capacitor/shake/)
* [ Silent Mode ](/docs/sdks/capacitor/silent-mode/)
* [ SIM ](/docs/sdks/capacitor/sim/)
* [ SMS Composer ](/docs/sdks/capacitor/sms-composer/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ System WebView ](/docs/sdks/capacitor/system-webview/)
* [ Tauri ](/docs/sdks/capacitor/tauri/)
* [ Text Interaction ](/docs/sdks/capacitor/text-interaction/)
* [ Text Zoom ](/docs/sdks/capacitor/text-zoom/)
* [ Thermal State ](/docs/sdks/capacitor/thermal-state/)
* [ Toast ](/docs/sdks/capacitor/toast/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Volume ](/docs/sdks/capacitor/volume/)
* [ Wallet ](/docs/sdks/capacitor/wallet/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ YouTube Player ](/docs/sdks/capacitor/youtube-player/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Integrations ](/docs/cloud/integrations/)
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

* [ Step 2: Installing the Capawesome Live Update SDK ](#step-2-installing-the-capawesome-live-update-sdk)
* [ Step 3: Configuring Your App ](#step-3-configuring-your-app)
* [ Step 4: Replacing the Capgo SDK ](#step-4-replacing-the-capgo-sdk)
* [ Live Update Strategies ](#live-update-strategies)
* [ Step 5: Building and Distributing Updates ](#step-5-building-and-distributing-updates)
* [ Migration Timeline ](#migration-timeline)
* [ FAQ ](#faq)
* [ Related Posts ](#related-posts)
* [ Conclusion ](#conclusion)

# Migrating from Capgo to Capawesome Cloud[¶](#migrating-from-capgo-to-capawesome-cloud "Permanent link")

If you're currently using Capgo for live updates and considering a switch to a more reliable, feature-rich platform, Capawesome Cloud offers a seamless migration path. With superior uptime, faster response times, and more competitive pricing, Capawesome Cloud provides everything you need for robust Over-the-Air updates.

## Why Migrate from Capgo?[¶](#why-migrate-from-capgo "Permanent link")

While Capgo has served as a live update solution for Capacitor apps, there are several compelling reasons to consider migrating to Capawesome Cloud. The platform offers significantly better reliability with 99.99% uptime compared to Capgo's 99.65%, translating to just 10 minutes of downtime versus 7 hours over the past 90 days. Response times are notably faster at 267ms versus 441ms, ensuring your users receive updates more quickly.

Beyond performance metrics, Capawesome Cloud provides a more stable platform with fewer bug reports and patch releases, indicating a more mature and tested codebase. The pricing structure is more accessible, starting at $9/month with a free tier available, compared to Capgo's $14/month minimum. You also gain access to unique features like EU hosting options, Git integration, and unlimited updates that aren't available with Capgo.

The Capawesome team brings deep expertise in Capacitor plugin development, with official Ionic Developer Experts on staff who understand the intricacies of the Capacitor ecosystem. This expertise translates into better support and more thoughtful feature development that aligns with Capacitor best practices.

## Prerequisites[¶](#prerequisites "Permanent link")

Before starting your migration from Capgo to Capawesome Cloud, make sure you have these requirements in place:

* A Capacitor app currently using Capgo for live updates
* Node.js version 18 or higher installed on your development machine
* Access to your current Capgo configuration and deployment settings
* Your app's bundle IDs and channel configurations from Capgo

Take a moment to document your current Capgo setup, including any custom update strategies or configurations you've implemented. This will help ensure a smooth transition to Capawesome Cloud.

## Migration Overview[¶](#migration-overview "Permanent link")

The migration process from Capgo to Capawesome Cloud follows a structured approach designed to minimize disruption to your existing users. You'll begin by setting up your Capawesome Cloud account and configuring your app. Then you'll install the Capawesome Live Update SDK, replacing the Capgo plugin in your project. After updating your code to use Capawesome's API methods, you'll configure your desired update strategies. Finally, you'll build and deploy your first update through Capawesome Cloud.

Throughout this process, you can maintain your existing update cadence and user experience patterns. The APIs are designed to be familiar, making the code migration straightforward while giving you access to enhanced capabilities.

AI-Assisted Migration

For a more guided experience, add the [Capawesome skills](https://github.com/capawesome-team/skills) to your project with `npx skills add capawesome-team/skills --skill capawesome-cloud` and use the following prompt with your preferred AI coding assistant:

`` [](#%5F%5Fcodelineno-0-1)Use the `capawesome-cloud` skill from `capawesome-team/skills` to help me set up Capacitor Live Updates in my project.
 ``

## Step 1: Setting Up Capawesome Cloud[¶](#step-1-setting-up-capawesome-cloud "Permanent link")

### Create Your Account[¶](#create-your-account "Permanent link")

Start by visiting the [Capawesome Cloud Console](https://console.cloud.capawesome.io/) to create your account. The registration process is quick and gives you immediate access to the platform. Unlike Capgo, Capawesome Cloud offers a generous free tier that lets you test all features before committing to a paid plan.

Once logged in, you'll find an intuitive dashboard where you can manage your applications, monitor update deployments, and access detailed analytics about your user base and update performance. The interface is designed to be familiar to anyone who has used live update platforms before, while offering enhanced visibility into your deployment pipeline.

### Create Your App[¶](#create-your-app "Permanent link")

In the Capawesome Cloud Console, navigate to the Apps section and click "Create App" to set up your first application. Enter a descriptive name for your app that will help you identify it easily in your dashboard. The system will generate a unique App ID that serves as the primary identifier for your application in all API calls and configurations.

You'll want to configure channels that match your existing Capgo setup. If you're using channels like "production", "staging", or "development" in Capgo, you can create equivalent channels in Capawesome Cloud. This ensures a smooth transition without disrupting your existing deployment workflows.

## Step 2: Installing the Capawesome Live Update SDK[¶](#step-2-installing-the-capawesome-live-update-sdk "Permanent link")

Remove the Capgo plugin from your project and install the Capawesome Live Update plugin:

`[](#%5F%5Fcodelineno-1-1)npm uninstall @capgo/capacitor-updater
[](#%5F%5Fcodelineno-1-2)npm install @capawesome/capacitor-live-update
[](#%5F%5Fcodelineno-1-3)npx cap sync
`

The Capawesome Live Update plugin is built from the ground up for Capacitor, ensuring optimal performance and compatibility. It's fully open-source under the MIT license, giving you transparency into how your updates are handled and the freedom to contribute improvements if needed.

## Step 3: Configuring Your App[¶](#step-3-configuring-your-app "Permanent link")

Replace your Capgo configuration with the Capawesome Cloud settings in your Capacitor configuration file:

TypeScriptJSON

capacitor.config.ts

`[](#%5F%5Fcodelineno-2-1)import { CapacitorConfig } from "@capacitor/cli";
[](#%5F%5Fcodelineno-2-2)
[](#%5F%5Fcodelineno-2-3)const config: CapacitorConfig = {
[](#%5F%5Fcodelineno-2-4)  plugins: {
[](#%5F%5Fcodelineno-2-5)    LiveUpdate: {
[](#%5F%5Fcodelineno-2-6)      appId: "00000000-0000-0000-0000-000000000000", // Your Capawesome App ID
[](#%5F%5Fcodelineno-2-7)      defaultChannel: "production", // Optional: Your default channel
[](#%5F%5Fcodelineno-2-8)      autoDeleteBundles: true // Optional: Automatically clean up old bundles
[](#%5F%5Fcodelineno-2-9)    }
[](#%5F%5Fcodelineno-2-10)  }
[](#%5F%5Fcodelineno-2-11)};
[](#%5F%5Fcodelineno-2-12)
[](#%5F%5Fcodelineno-2-13)export default config;
`

capacitor.config.json

`[](#%5F%5Fcodelineno-3-1){
[](#%5F%5Fcodelineno-3-2)  "plugins": {
[](#%5F%5Fcodelineno-3-3)    "LiveUpdate": {
[](#%5F%5Fcodelineno-3-4)      "appId": "00000000-0000-0000-0000-000000000000",
[](#%5F%5Fcodelineno-3-5)      "defaultChannel": "production",
[](#%5F%5Fcodelineno-3-6)      "autoDeleteBundles": true
[](#%5F%5Fcodelineno-3-7)    }
[](#%5F%5Fcodelineno-3-8)  }
[](#%5F%5Fcodelineno-3-9)}
`

The configuration is intentionally streamlined compared to Capgo, focusing on essential settings while handling advanced behaviors through code. This gives you more flexibility in implementing custom update logic specific to your app's needs.

Here's a full comparison of the relevant configuration options between Capgo and Capawesome Cloud:

| Capgo              | Capawesome Cloud  | Notes                                                          |
| ------------------ | ----------------- | -------------------------------------------------------------- |
| appReadyTimeout    | readyTimeout      |                                                                |
| autoDeletePrevious | autoDeleteBundles |                                                                |
| autoSplashscreen   | Not needed        | Handled in code, see [Step 4](#step-4-replacing-the-capgo-sdk) |
| autoUpdate         | Not needed        | Handled in code, see [Step 4](#step-4-replacing-the-capgo-sdk) |
| appId              | appId             |                                                                |
| defaultChannel     | defaultChannel    |                                                                |
| directUpdate       | Not needed        | Handled in code, see [Step 4](#step-4-replacing-the-capgo-sdk) |
| periodCheckDelay   | Not needed        | Handled in code, see [Step 4](#step-4-replacing-the-capgo-sdk) |
| publicKey          | publicKey         |                                                                |
| resetWhenUpdate    | Not needed        | Automatically handled by the SDK                               |
| responseTimeout    | httpTimeout       |                                                                |
| statsUrl           | Not needed        |                                                                |
| updateUrl          | serverDomain      | Same purpose, different value                                  |
| version            | Not needed        | Native version code is used by the SDK                         |

## Step 4: Replacing the Capgo SDK[¶](#step-4-replacing-the-capgo-sdk "Permanent link")

### API[¶](#api "Permanent link")

The migration from Capgo's API to Capawesome Cloud's API involves updating your method calls and adjusting some patterns. Here's how to translate the most common operations:

#### Get Latest[¶](#get-latest "Permanent link")

In Capgo, you might check for the latest available bundle using the `getLatest` method. Capawesome Cloud provides this functionality through the [fetchLatestBundle(...)](/docs/sdks/capacitor/live-update/#fetchlatestbundle) method:

**Capgo**: 

`[](#%5F%5Fcodelineno-4-1)import { CapacitorUpdater } from '@capgo/capacitor-updater';
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)const checkForUpdate = async () => {
[](#%5F%5Fcodelineno-4-4)  const latest = await CapacitorUpdater.getLatest();
[](#%5F%5Fcodelineno-4-5)  if (latest.url) {
[](#%5F%5Fcodelineno-4-6)    console.log('Update available:', latest.version);
[](#%5F%5Fcodelineno-4-7)  }
[](#%5F%5Fcodelineno-4-8)};
`

**Capawesome Cloud**: 

`[](#%5F%5Fcodelineno-5-1)import { LiveUpdate } from '@capawesome/capacitor-live-update';
[](#%5F%5Fcodelineno-5-2)
[](#%5F%5Fcodelineno-5-3)const checkForUpdate = async () => {
[](#%5F%5Fcodelineno-5-4)  const result = await LiveUpdate.fetchLatestBundle();
[](#%5F%5Fcodelineno-5-5)  if (result.downloadUrl) {
[](#%5F%5Fcodelineno-5-6)    console.log('Update available:', result.bundleId);
[](#%5F%5Fcodelineno-5-7)  }
[](#%5F%5Fcodelineno-5-8)};
`

#### Download[¶](#download "Permanent link")

Downloading the update bundle is done using the `download` method in Capgo, while Capawesome Cloud uses the [downloadBundle(...)](/docs/sdks/capacitor/live-update/#downloadbundle) method:

**Capgo**:

`[](#%5F%5Fcodelineno-6-1)import { CapacitorUpdater } from '@capgo/capacitor-updater';
[](#%5F%5Fcodelineno-6-2)
[](#%5F%5Fcodelineno-6-3)const downloadUpdate = async () => {
[](#%5F%5Fcodelineno-6-4)  const latest = await CapacitorUpdater.getLatest();
[](#%5F%5Fcodelineno-6-5)  if (latest.url) {
[](#%5F%5Fcodelineno-6-6)    const bundle = await CapacitorUpdater.download({
[](#%5F%5Fcodelineno-6-7)      url: latest.url,
[](#%5F%5Fcodelineno-6-8)      version: latest.version
[](#%5F%5Fcodelineno-6-9)    });
[](#%5F%5Fcodelineno-6-10)    console.log('Bundle downloaded');
[](#%5F%5Fcodelineno-6-11)  }
[](#%5F%5Fcodelineno-6-12)};
`

**Capawesome Cloud**:

`[](#%5F%5Fcodelineno-7-1)import { LiveUpdate } from '@capawesome/capacitor-live-update';
[](#%5F%5Fcodelineno-7-2)
[](#%5F%5Fcodelineno-7-3)const downloadUpdate = async () => {
[](#%5F%5Fcodelineno-7-4)  const result = await LiveUpdate.fetchLatestBundle();
[](#%5F%5Fcodelineno-7-5)  if (result.downloadUrl) {
[](#%5F%5Fcodelineno-7-6)    await LiveUpdate.downloadBundle({
[](#%5F%5Fcodelineno-7-7)      bundleId: result.bundleId,
[](#%5F%5Fcodelineno-7-8)      url: result.downloadUrl
[](#%5F%5Fcodelineno-7-9)    });
[](#%5F%5Fcodelineno-7-10)    console.log('Bundle downloaded');
[](#%5F%5Fcodelineno-7-11)  }
[](#%5F%5Fcodelineno-7-12)};
`

#### Next[¶](#next "Permanent link")

To set a specific bundle as the next one to be loaded, you have to use the [setNextBundle(...)](/docs/sdks/capacitor/live-update/#setnextbundle) method in Capawesome Cloud.

**Capgo**:

`[](#%5F%5Fcodelineno-8-1)import { CapacitorUpdater } from '@capgo/capacitor-updater';
[](#%5F%5Fcodelineno-8-2)
[](#%5F%5Fcodelineno-8-3)const setNextBundle = async () => {
[](#%5F%5Fcodelineno-8-4)  await CapacitorUpdater.next({ id: 'bundle-id-123' });
[](#%5F%5Fcodelineno-8-5)};
`

**Capawesome Cloud**:

`[](#%5F%5Fcodelineno-9-1)import { LiveUpdate } from '@capawesome/capacitor-live-update';
[](#%5F%5Fcodelineno-9-2)
[](#%5F%5Fcodelineno-9-3)const setNextBundle = async () => {
[](#%5F%5Fcodelineno-9-4)  await LiveUpdate.setNextBundle({ bundleId: 'bundle-id-123' });
[](#%5F%5Fcodelineno-9-5)};
`

#### Reload[¶](#reload "Permanent link")

Finally, if you want to apply the downloaded update directly, you have to use the `reload` functionality which works the same way in both platforms.

**Capgo**: 

`[](#%5F%5Fcodelineno-10-1)import { CapacitorUpdater } from '@capgo/capacitor-updater';
[](#%5F%5Fcodelineno-10-2)
[](#%5F%5Fcodelineno-10-3)const applyUpdate = async () => {
[](#%5F%5Fcodelineno-10-4)  await CapacitorUpdater.reload();
[](#%5F%5Fcodelineno-10-5)};
`

**Capawesome Cloud**: 

`[](#%5F%5Fcodelineno-11-1)import { LiveUpdate } from '@capawesome/capacitor-live-update';
[](#%5F%5Fcodelineno-11-2)
[](#%5F%5Fcodelineno-11-3)const applyUpdate = async () => {
[](#%5F%5Fcodelineno-11-4)  await LiveUpdate.reload();
[](#%5F%5Fcodelineno-11-5)};
`

### Live Update Strategies[¶](#live-update-strategies "Permanent link")

Capawesome Cloud supports flexible update strategies that can replicate and enhance your existing Capgo update behaviors:

#### Background[¶](#background "Permanent link")

The background strategy silently downloads updates while your app runs, applying them seamlessly on the next launch:

`[](#%5F%5Fcodelineno-12-1)import { LiveUpdate } from '@capawesome/capacitor-live-update';
[](#%5F%5Fcodelineno-12-2)
[](#%5F%5Fcodelineno-12-3)// Check for updates on app launch
[](#%5F%5Fcodelineno-12-4)const initializeApp = async () => {
[](#%5F%5Fcodelineno-12-5)  await LiveUpdate.sync();
[](#%5F%5Fcodelineno-12-6)  // Your app initialization code
[](#%5F%5Fcodelineno-12-7)};
[](#%5F%5Fcodelineno-12-8)
[](#%5F%5Fcodelineno-12-9)initializeApp(); // Call once at app startup
`

This approach mirrors Capgo's default behavior and offers additional flexibility in managing updates.

#### Always Latest[¶](#always-latest "Permanent link")

This approach is our recommended strategy for ensuring users always have the latest version of your app in a timely manner:

`[](#%5F%5Fcodelineno-13-1)import { App } from '@capacitor/app';
[](#%5F%5Fcodelineno-13-2)import { LiveUpdate } from '@capawesome/capacitor-live-update';
[](#%5F%5Fcodelineno-13-3)
[](#%5F%5Fcodelineno-13-4)App.addListener('resume', async () => {
[](#%5F%5Fcodelineno-13-5)  const result = await LiveUpdate.sync();
[](#%5F%5Fcodelineno-13-6)  if (result.nextBundleId) {
[](#%5F%5Fcodelineno-13-7)    const shouldReload = confirm('A new update is available. Would you like to install it now?');
[](#%5F%5Fcodelineno-13-8)    if (shouldReload) {
[](#%5F%5Fcodelineno-13-9)      await LiveUpdate.reload();
[](#%5F%5Fcodelineno-13-10)    }
[](#%5F%5Fcodelineno-13-11)  }
[](#%5F%5Fcodelineno-13-12)});
`

This strategy balances keeping your app updated with respecting user choice, allowing them to defer updates if they're in the middle of something important.

#### Force Update[¶](#force-update "Permanent link")

The force update strategy ensures users have the latest version **before** they can use the app. This is useful for critical updates:

`[](#%5F%5Fcodelineno-14-1)import { SplashScreen } from '@capacitor/splash-screen';
[](#%5F%5Fcodelineno-14-2)import { LiveUpdate } from '@capawesome/capacitor-live-update';
[](#%5F%5Fcodelineno-14-3)
[](#%5F%5Fcodelineno-14-4)const initializeApp = async () => {
[](#%5F%5Fcodelineno-14-5)  const result = await LiveUpdate.sync();
[](#%5F%5Fcodelineno-14-6)  if (result.nextBundleId) {
[](#%5F%5Fcodelineno-14-7)    await LiveUpdate.reload(); // Apply the update
[](#%5F%5Fcodelineno-14-8)  } else {
[](#%5F%5Fcodelineno-14-9)    await SplashScreen.hide(); // Hide the splash screen
[](#%5F%5Fcodelineno-14-10)  }
[](#%5F%5Fcodelineno-14-11)};
[](#%5F%5Fcodelineno-14-12)
[](#%5F%5Fcodelineno-14-13)initializeApp(); // Call once at app startup
`

While this ensures all users are on the latest version, use this strategy judiciously as it can impact the user experience if updates are frequent or large.

## Step 5: Building and Distributing Updates[¶](#step-5-building-and-distributing-updates "Permanent link")

### Build Your App[¶](#build-your-app "Permanent link")

Generate your web assets using your standard build process:

`[](#%5F%5Fcodelineno-15-1)npm run build
`

Ensure your build output directory (typically `www` or `dist`) contains all necessary assets. Capawesome Cloud uses intelligent diffing to create delta updates, so even if your initial bundle is large, subsequent updates will be minimal.

### Install Capawesome CLI[¶](#install-capawesome-cli "Permanent link")

Install the Capawesome CLI tool to manage your deployments:

`[](#%5F%5Fcodelineno-16-1)npm install -g @capawesome/cli@latest
`

The CLI provides powerful commands for bundle management, including creation, upload, and rollback capabilities. It's designed to integrate seamlessly with CI/CD pipelines, supporting both interactive and automated workflows.

### Deploy a Live Update[¶](#deploy-a-live-update "Permanent link")

Create and deploy your first bundle to Capawesome Cloud:

`[](#%5F%5Fcodelineno-17-1)npx @capawesome/cli apps:liveupdates:upload --app-id YOUR_APP_ID --channel production --path www
`

This command packages your web assets into a bundle and uploads it to Capawesome Cloud. The bundle becomes immediately available to your users through the channel you specified. You can automate this process in your CI/CD pipeline just as you did with Capgo.

## Migration Timeline[¶](#migration-timeline "Permanent link")

A well-planned migration ensures minimal disruption to your users while maintaining continuous update capability throughout the transition. Here's a recommended timeline that balances thoroughness with efficiency:

Begin with a pilot phase where you set up Capawesome Cloud and test the integration with a development build of your app. This typically takes 1-2 days and allows you to familiarize yourself with the platform's features and validate that all your update scenarios work correctly.

Next, implement the SDK replacement in a feature branch, thoroughly testing each update strategy your app uses. Allocate 3-5 days for this phase, including comprehensive QA testing. Pay special attention to edge cases like network interruptions during updates or app backgrounding during the update process.

Roll out the Capawesome-enabled version to a small group of beta users or internal testers. Monitor this group for 5-7 days, tracking metrics like update success rates, download times, and any user-reported issues. This controlled rollout helps identify any unexpected behaviors before full deployment.

Finally, release the updated app to all users through your standard app store deployment process. Continue monitoring for the first week after release to ensure stability. Once confirmed, you can safely sunset your Capgo subscription while maintaining full update capabilities through Capawesome Cloud.

## FAQ[¶](#faq "Permanent link")

### Does the actual code migration take a day, or does the whole switch take weeks?[¶](#does-the-actual-code-migration-take-a-day-or-does-the-whole-switch-take-weeks "Permanent link")

Both, depending on what you're measuring. The code-level migration — swapping the SDK, updating method calls, adjusting config — typically takes less than a day of development time, since the APIs map closely. The multi-week timeline in this guide covers the full rollout process: a pilot phase, QA on each update strategy, a controlled beta rollout, and a monitoring period before fully sunsetting Capgo. You can move faster than that timeline if your app and risk tolerance allow it.

### Do I need to keep both Capgo and Capawesome Cloud running during the transition?[¶](#do-i-need-to-keep-both-capgo-and-capawesome-cloud-running-during-the-transition "Permanent link")

Only temporarily, and only if you want a controlled rollout. The recommended approach ships the Capawesome-enabled version to a subset of users first (via a beta or internal testing group) while your main user base stays on the existing Capgo-delivered version, then you cut over fully once you've confirmed update success rates and stability — you don't need both running indefinitely, just during the validation window.

### Which Capgo config options don't have a direct Capawesome Cloud equivalent?[¶](#which-capgo-config-options-dont-have-a-direct-capawesome-cloud-equivalent "Permanent link")

Several are handled in code instead of config: `autoSplashscreen`, `autoUpdate`, `directUpdate`, and `periodCheckDelay` don't have config-file equivalents — you implement the equivalent behavior directly in your app's initialization code using the update strategies shown in this guide (Background, Always Latest, Force Update). `resetWhenUpdate`, `statsUrl`, and `version` aren't needed at all, since the SDK handles those automatically.

### Is there an official side-by-side comparison of Capawesome Cloud versus Capgo beyond this migration guide?[¶](#is-there-an-official-side-by-side-comparison-of-capawesome-cloud-versus-capgo-beyond-this-migration-guide "Permanent link")

Yes — see the [Capgo alternative](https://capawesome.io/alternatives/capgo/) comparison page for uptime, pricing, and feature differences beyond the API migration steps covered here.

### Does switching away from Capgo mean losing delta/diff-based updates?[¶](#does-switching-away-from-capgo-mean-losing-deltadiff-based-updates "Permanent link")

No — Capawesome Cloud uses its own intelligent diffing to generate delta updates, so subsequent bundles after your initial one stay small even though the underlying mechanism differs from Capgo's. You don't lose delta-update efficiency by migrating; it just comes from a different update-delivery implementation.

## Related Posts[¶](#related-posts "Permanent link")

* [Capawesome Cloud: Alternative to Ionic Appflow](/blog/alternative-to-appflow/)
* [Best CI/CD Platforms for Capacitor Apps in 2026](/blog/comparing-ci-cd-platforms-for-capacitor-apps/)
* [The Best CI/CD Platforms for Cordova Apps in 2026](/blog/comparing-ci-cd-platforms-for-cordova-apps/)
* [Migrating from App Center to Capawesome Cloud](/blog/migrating-from-app-center-to-capawesome-cloud/)

## Conclusion[¶](#conclusion "Permanent link")

Migrating from Capgo to Capawesome Cloud brings immediate benefits in reliability, performance, and cost-effectiveness. The platform's superior uptime, faster response times, and robust feature set ensure your live update infrastructure is built on a solid foundation. With delta updates reducing data transfer and transparent pricing that scales with your app's growth, Capawesome Cloud represents a significant upgrade for your Over-the-Air update strategy.

The migration process, while requiring some code changes, is designed to be straightforward and can typically be completed in less than a day of development time. The familiar API patterns and comprehensive documentation make the transition smooth, while the enhanced capabilities provide room for future growth and optimization.

For assistance during your migration, the Capawesome team offers dedicated support to ensure your transition is successful. Visit the [Capawesome Cloud documentation](/docs/cloud/) for detailed technical guides, explore the [Live Update plugin reference](/docs/sdks/capacitor/live-update/) for API details, or [contact the support team](mailto:support@capawesome.io) for personalized migration assistance.

Take control of your app's update infrastructure today with Capawesome Cloud and join the growing community of developers who've made the switch to a more reliable, feature-rich live update platform.

July 17, 2026 

Back to top

```json
{
      "@context": "https://schema.org",
      "@type": "BlogPosting",
      "headline": "Migrating from Capgo to Capawesome Cloud",
      "description": "Complete guide to migrating your live update setup from Capgo to Capawesome Cloud for better reliability and Capacitor features.",
      "image": "https://capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png",
      "datePublished": "2025-08-29T00:00:00+00:00",
      "dateModified": "2026-07-17T00:00:00+00:00",
      "author": [
        {
          "@type": "Person",
          "name": "Robin Genz",
          "url": "https://github.com/robingenz"
        }
      ],
      "publisher": {
        "@type": "Organization",
        "name": "Capawesome",
        "url": "https://capawesome.io",
        "logo": {
          "@type": "ImageObject",
          "url": "https://capawesome.io/assets/images/logo.svg"
        }
      },
      "articleSection": "Cloud",
      "keywords": ["Cloud", "Guides"],
      "isPartOf": {
        "@type": "Blog",
        "@id": "https://capawesome.io/blog/#blog"
      },
      "mainEntityOfPage": "https://capawesome.io/blog/migrating-from-capgo-to-capawesome-cloud/",
      "url": "https://capawesome.io/blog/migrating-from-capgo-to-capawesome-cloud/"
    }
{
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://capawesome.io/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://capawesome.io/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Migrating from Capgo to Capawesome Cloud",
          "item": "https://capawesome.io/blog/migrating-from-capgo-to-capawesome-cloud/"
        }
      ]
    }
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Why Migrate from Capgo?", "acceptedAnswer": {"@type": "Answer", "text": "While Capgo has served as a live update solution for Capacitor apps, there are several compelling reasons to consider migrating to Capawesome Cloud. The platform offers significantly better reliability with 99.99% uptime compared to Capgo's 99.65%, translating to just 10 minutes of downtime versus 7 hours over the past 90 days. Response times are notably faster at 267ms versus 441ms, ensuring your users receive updates more quickly. Beyond performance metrics, Capawesome Cloud provides a more stable platform with fewer bug reports and patch releases, indicating a more mature and tested codebase. The pricing structure is more accessible, starting at $9/month with a free tier available, compared to Capgo's $14/month minimum. You also gain access to unique features like EU hosting options, Git integration, and unlimited updates that aren't available with Capgo. The Capawesome team brings deep expertise in Capacitor plugin development, with official Ionic Developer Experts on staff who understand the intricacies of the Capacitor ecosystem. This expertise translates into better support and more thoughtful feature development that aligns with Capacitor best practices."}}, {"@type": "Question", "name": "Does the actual code migration take a day, or does the whole switch take weeks?", "acceptedAnswer": {"@type": "Answer", "text": "Both, depending on what you're measuring. The code-level migration — swapping the SDK, updating method calls, adjusting config — typically takes less than a day of development time, since the APIs map closely. The multi-week timeline in this guide covers the full rollout process: a pilot phase, QA on each update strategy, a controlled beta rollout, and a monitoring period before fully sunsetting Capgo. You can move faster than that timeline if your app and risk tolerance allow it."}}, {"@type": "Question", "name": "Do I need to keep both Capgo and Capawesome Cloud running during the transition?", "acceptedAnswer": {"@type": "Answer", "text": "Only temporarily, and only if you want a controlled rollout. The recommended approach ships the Capawesome-enabled version to a subset of users first (via a beta or internal testing group) while your main user base stays on the existing Capgo-delivered version, then you cut over fully once you've confirmed update success rates and stability — you don't need both running indefinitely, just during the validation window."}}, {"@type": "Question", "name": "Which Capgo config options don't have a direct Capawesome Cloud equivalent?", "acceptedAnswer": {"@type": "Answer", "text": "Several are handled in code instead of config: autoSplashscreen, autoUpdate, directUpdate, and periodCheckDelay don't have config-file equivalents — you implement the equivalent behavior directly in your app's initialization code using the update strategies shown in this guide (Background, Always Latest, Force Update). resetWhenUpdate, statsUrl, and version aren't needed at all, since the SDK handles those automatically."}}, {"@type": "Question", "name": "Is there an official side-by-side comparison of Capawesome Cloud versus Capgo beyond this migration guide?", "acceptedAnswer": {"@type": "Answer", "text": "Yes — see the Capgo alternative comparison page for uptime, pricing, and feature differences beyond the API migration steps covered here."}}, {"@type": "Question", "name": "Does switching away from Capgo mean losing delta/diff-based updates?", "acceptedAnswer": {"@type": "Answer", "text": "No — Capawesome Cloud uses its own intelligent diffing to generate delta updates, so subsequent bundles after your initial one stay small even though the underlying mechanism differs from Capgo's. You don't lose delta-update efficiency by migrating; it just comes from a different update-delivery implementation."}}], "url": "https://capawesome.io/blog/migrating-from-capgo-to-capawesome-cloud/"}
```
