---
description: Make Capacitor and Cordova Live Updates smaller and faster — drop source maps, optimize assets, and choose between zip and delta (manifest) delivery.
title: Reduce Live Update Size - Capawesome
image: https://capawesome.io/docs/assets/images/social/cloud/live-updates/bundle-size.png
---

[ Skip to content](#reduce-update-size) 

[ 🔐 Introducing the **Capacitor Vault** plugin — store secrets behind biometrics or a device passcode.](/blog/announcing-the-capacitor-vault-plugin/) 

* [  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/)
* [  libSQL ](/docs/sdks/capacitor/libsql/)
* [  Live Update ](/docs/sdks/capacitor/live-update/)
* [  Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [  Media Session ](/docs/sdks/capacitor/media-session/)
* [  ML Kit ](/docs/sdks/capacitor/mlkit/)
* [  Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [  NFC ](/docs/sdks/capacitor/nfc/)
* [  OAuth ](/docs/sdks/capacitor/oauth/)
* [  Pedometer ](/docs/sdks/capacitor/pedometer/)
* [  Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [  PostHog ](/docs/sdks/capacitor/posthog/)
* [  Printer ](/docs/sdks/capacitor/printer/)
* [  Purchases ](/docs/sdks/capacitor/purchases/)
* [  RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [  Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [  Screenshot ](/docs/sdks/capacitor/screenshot/)
* [  Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [  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/)
* [  Torch ](/docs/sdks/capacitor/torch/)
* [  Vault ](/docs/sdks/capacitor/vault/)
* [  Wifi ](/docs/sdks/capacitor/wifi/)
* [  Zip ](/docs/sdks/capacitor/zip/)
* [  Cordova ](/docs/sdks/cordova/)
* [  Cloud ](/docs/cloud/)
* [  Self-Host Bundles ](/docs/cloud/live-updates/self-hosting/)
* [  Manage Devices ](/docs/cloud/live-updates/devices/)
* [  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 or Yarn ](/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

# Reduce Update Size[¶](#reduce-update-size "Permanent link")

Smaller bundles download faster and fail less often on flaky connections, and they keep your [data transfer](/docs/cloud/live-updates/limits/) down. There are two levers: shrink the assets, and choose the right delivery format.

## Optimize your assets[¶](#optimize-your-assets "Permanent link")

A few changes cover most of the wins:

* **Drop source maps.** They're often the majority of a bundle's size and don't belong in production downloads. In Vite, set `build.sourcemap: false`; in Angular, build with `--source-map=false`. If you need them for error tracking, upload them to your error-tracking service separately.
* **Move heavy static assets to a CDN.** Hero images, marketing media, and downloadable files that don't have to ship inside the bundle should be served from a CDN and loaded on demand.
* **Audit your bundle.** Tree-shaking and minification are handled by most modern build tools, but a tool like `rollup-plugin-visualizer` or `webpack-bundle-analyzer` helps find unexpectedly large dependencies.

## Choose the delivery format[¶](#choose-the-delivery-format "Permanent link")

### Zip (recommended)[¶](#zip-recommended "Permanent link")

By default, the whole web folder is compressed into a single `.zip` and uploaded. The device downloads one compressed file and extracts it. This is almost always the right choice — compression typically halves the size and the download is a single request.

### Delta updates (manifest)[¶](#delta-updates-manifest "Permanent link")

Live Updates can be smaller if only modified files are downloaded. For this, each bundle requires a **manifest** — a JSON file containing hashes of the files in the bundle. When updating, the manifest of the new bundle is compared with the current one, and only the changed files are downloaded.

Try the zip artifact type first

Delta updates are only beneficial if your app contains large files that rarely change. Most modern frameworks generate content-hashed filenames on each build, causing every file to look changed — which makes delta comparison ineffective and can result in hundreds of individual file requests instead of one zip download. Start with `zip` and only switch to `manifest` if you have a clear, measured need.

#### Generate the manifest file[¶](#generate-the-manifest-file "Permanent link")

Generate a manifest with the [apps:liveupdates:generatemanifest](/docs/cloud/cli/commands/#appsliveupdatesgeneratemanifest) command, after building your web assets but before copying them to the native projects:

`[](#%5F%5Fcodelineno-0-1)npm run build
[](#%5F%5Fcodelineno-0-2)npx @capawesome/cli apps:liveupdates:generatemanifest --path www
`

The easiest way to keep it in sync is to add it to your build script:

`[](#%5F%5Fcodelineno-1-1){
[](#%5F%5Fcodelineno-1-2)  "scripts": {
[](#%5F%5Fcodelineno-1-3)    "build": "ng build && npx @capawesome/cli apps:liveupdates:generatemanifest --path www"
[](#%5F%5Fcodelineno-1-4)  }
[](#%5F%5Fcodelineno-1-5)}
`

Manifest required on both sides

Delta updates only work when two manifests are available for comparison. Always include the manifest file in your native releases — if one is missing, all files are downloaded.

#### Upload a delta bundle[¶](#upload-a-delta-bundle "Permanent link")

Upload with the `manifest` artifact type so files are uploaded individually rather than as a single zip:

`[](#%5F%5Fcodelineno-2-1)npx @capawesome/cli apps:liveupdates:upload --artifact-type manifest
`

CLI only

Delta updates can only be created with the CLI, not the Console.

June 8, 2026 

 Back to top 