Capawesome Cloud as an alternative to Appflow¶
First of all: No, Capawesome Cloud is not a real alternative to Appflow, the platform from the team behind Capacitor and the Ionic Framework. At least not when it comes to native builds and app store publishing. But Capawesome Cloud does offer an alternative to Appflow when it comes to Live Updates for Capacitor and it is exactly this feature that we want to take a closer look at in this post. So let's take a look at both platforms and find out why it might even be worth combining them.
Features¶
Both Appflow and Capawesome Cloud offer all the basic functionalities for managing and distributing live updates for Capacitor apps. This includes providing a Capacitor plugin with support for both Android and iOS, a web interface for managing updates, and a CLI for publishing updates. Additionally, both platforms offer the possibility of organizing updates into channels, allowing for different versions of the app to be provided to various user and device groups. Let's take a look at the plugins themselves and the methods they offer:
export interface LiveUpdates {
sync(progress?: (percentage: number) => void): Promise<SyncResult>;
setConfig(config: LiveUpdateConfig): Promise<void>;
getConfig(): Promise<LiveUpdateConfig>;
resetConfig(): Promise<void>;
reload(): Promise<void>;
}
export interface LiveUpdate {
deleteBundle(options: DeleteBundleOptions): Promise<void>;
downloadBundle(options: DownloadBundleOptions): Promise<void>;
getBundle(): Promise<GetBundleResult>;
getBundles(): Promise<GetBundlesResult>;
getChannel(): Promise<GetChannelResult>;
getCustomId(): Promise<GetCustomIdResult>;
getDeviceId(): Promise<GetDeviceIdResult>;
getVersionCode(): Promise<GetVersionCodeResult>;
getVersionName(): Promise<GetVersionNameResult>;
ready(): Promise<void>;
reload(): Promise<void>;
reset(): Promise<void>;
setBundle(options: SetBundleOptions): Promise<void>;
setChannel(options: SetChannelOptions): Promise<void>;
setCustomId(options: SetCustomIdOptions): Promise<void>;
sync(): Promise<SyncResult>;
}
The first thing you notice is that the plugin from Appflow offers significantly fewer methods than the plugin from Capawesome.
For example, Appflow does not offer any methods for managing bundles.
It is also not possible to set a custom ID for the device, which makes it possible to deploy live updates to a specific device (without the need for a channel).
However, one of the most important differences is hidden behind the ready()
method of the Capawesome Live Update plugin.
This method must be called directly at app startup to tell the plugin that the app is ready.
If this method is not called, the plugin performs a rollback and reverts to the initial version of the app.
This ensures that the app keeps working even if a corrupt update has been published by the developer.
Performance¶
To test performance, we used both platforms to provide a live update for a Capacitor app and measured the time it took to download and install the update. For testing, a Pixel 6a with Android 14 and an iPhone 13 with iOS 17 was used. The bundle size of the update was 1.4 MB. These are the results:
Platform | Time required on Android | Time required on iOS |
---|---|---|
Appflow | 4,485 Seconds | 0.237 Seconds |
Capawesome Cloud | 3,875 Seconds | 0.528 Seconds |
It should be mentioned that Appflow supports so-called Delta Updates. This only downloads the files that have changed since the last version and not the entire bundle. Depending on the update, this has the benefit that the size of the update can be significantly reduced and therefore also the time required to download and install the update. The Capacitor Live Update plugin from Capawesome Cloud does not yet support this feature (see capawesome-team/capacitor-plugins#180).
Security¶
One important aspect of live updates is security. After all, you don't want your app to be compromised by an attacker. That's why it's crucial that the downloaded files are checked for authenticity and integrity - also known as code signing.
Authenticity means that the files have not been tampered with and come from a trusted source. Integrity means that the files have not been corrupted during the download process.
Both Appflow and Capawesome Cloud offer the option of delivering signed updates. A private key is used to sign the updates and a public key is used to verify the signature. The private key must be kept secret and must not be shared with anyone. The public key, on the other hand, is stored in the app. This means that only people who have the private key can publish verified updates.
Privacy¶
Unlike the plugin from Appflow, the plugin from Capawesome Cloud is completely open source (see capawesome-team/capacitor-plugins). This means that anyone can view the source code and check which data is sent to the servers when an update is requested. To keep it short: Capawesome Cloud generally does not collect any personal data, but only transmits information that is required to provide the live updates. However, we take this one step further and offer our customers the option of using a European cloud in line with the motto “EU-based & hosted” as a European company. This way, you can ensure that not even connection information such as IP addresses leave the European Union. Read more about this in our Privacy section.
Pricing¶
Appflow and Capawesome Cloud both offer different pricing plans, which mainly vary in the number of monthly active users. Both platforms can be tested free of charge, with the number of monthly active users limited to 100 and 500 respectively.
Pricing for Appflow then starts at $49 per month for the Community Plan and ranges up to a custom price for the Enterprise Edition:1
Plan | Price | Features |
---|---|---|
Free | $0 | Unlimited Live Updates, 100 Monthly Active Users, Unlimited Storage |
Community | $49 | Unlimited Live Updates, 500 Monthly Active Users, Unlimited Storage |
Basic | $499 | Unlimited Live Updates, 4,500 Monthly Active Users, Unlimited Storage |
Enterprise | Custom | Unlimited Live Updates, Unlimited Monthly Active Users, Unlimited Storage |
Pricing for Capawesome Cloud starts at $29 per month for the Professional plan and ranges up to a custom price for the Enterprise plan:2
Plan | Price | Features |
---|---|---|
Free | $0 | Unlimited Live Updates, 50 Monthly Active Users, 100 MB of Storage |
Starter | $9 | Unlimited Live Updates, 500 Monthly Active Users, 1 GB of Storage |
Professional | $29 | Unlimited Live Updates, 5,000 Monthly Active Users, 5 GB of Storage |
Team | $99 | Unlimited Live Updates, 50,000 Monthly Active Users, 10 GB of Storage |
Business | $249 | Unlimited Live Updates, 200,000 Monthly Active Users, 20 GB of Storage |
Enterprise | Custom | Unlimited Live Updates, Unlimited Monthly Active Users, Unlimited Storage |
So while Appflow charges approximately $0.01 per monthly active user, Capawesome Cloud starts at $0.001 per monthly active user, making it up to 10x cheaper. It should be noted that each Appflow plan also includes other features such as native builds and app store publishing, while Capawesome Cloud is limited to live updates only.
Conclusion¶
Appflow is a great solution for enterprise customers who need native builds and app store publishing in addition to live updates and want all of this in one platform. Capawesome Cloud, on the other hand, focuses exclusively on live updates and can therefore offer these at a significantly lower price. In addition, Capawesome Cloud is “EU-based & hosted” and is therefore particularly suitable for customers who are looking for an EU-based solution due to data protection regulations. Of course, we were only able to provide a brief insight into both platforms in this post and there are many more features and differences to discover. We therefore recommend testing both platforms and finding out which one is best suited to your individual requirements.