---
description: Implement Live Updates in your Nuxt Capacitor apps with Capawesome Cloud. Ship instant updates without going through app store review.
title: Live Updates for Nuxt Capacitor Apps - Capawesome
image: https://capawesome.io/docs/assets/images/social/blog/live-updates-for-nuxt-capacitor.png
---

<!doctype html> 

[Skip to content ](#live-updates-for-nuxt-capacitor-apps-with-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

* [ Usage ](#usage)
* [ Publishing updates ](#publishing-updates)
* [ FAQ ](#faq)
* [ Related Posts ](#related-posts)

* Related links

# Live Updates for Nuxt Capacitor Apps with Capawesome Cloud[¶](#live-updates-for-nuxt-capacitor-apps-with-capawesome-cloud "Permanent link")

Live Updates, also known as Over-the-Air (OTA) or hot code updates, are a way to push updates to your Android or iOS app without going through the app store review process. This is particularly useful for fixing bugs, adding new features, or making changes to your app without requiring users to download a new version from the app store. For this, we will use the [Capacitor Live Update plugin](/docs/sdks/capacitor/live-update/) from Capawesome in combination with [Capawesome Cloud](/).

## Installation[¶](#installation "Permanent link")

To enable Live Updates in your Capacitor app, you need to install the `@capawesome/capacitor-live-update` plugin:

`[](#%5F%5Fcodelineno-0-1)npm install @capawesome/capacitor-live-update
`

After that, you need to sync the changes with your native projects:

`[](#%5F%5Fcodelineno-1-1)npx cap sync
`

## Configuration[¶](#configuration "Permanent link")

Next, you need to configure the plugin to work with [Capawesome Cloud](/).

### App ID[¶](#app-id "Permanent link")

In order for your app to identify itself to Capawesome Cloud, you need to set the `appId` in your `capacitor.config` file. For this, you need to create an app on the [Capawesome Cloud Console](https://console.cloud.capawesome.io/) and get the App ID.

`[](#%5F%5Fcodelineno-2-1){
[](#%5F%5Fcodelineno-2-2)  "plugins": {
[](#%5F%5Fcodelineno-2-3)    "LiveUpdate": {
[](#%5F%5Fcodelineno-2-4)      "appId": "00000000-0000-0000-0000-000000000000"
[](#%5F%5Fcodelineno-2-5)    }
[](#%5F%5Fcodelineno-2-6)  }
[](#%5F%5Fcodelineno-2-7)}
`

Replace `00000000-0000-0000-0000-000000000000` with your actual App ID from the Capawesome Cloud Console.

After configuring the App ID, sync your Capacitor project again:

`[](#%5F%5Fcodelineno-3-1)npx cap sync
`

## Usage[¶](#usage "Permanent link")

The most basic usage of the Live Update plugin is to call the [sync(...)](/docs/sdks/capacitor/live-update/#sync) method when the app starts. This method checks for updates, downloads them if available, and sets them as the next bundle to be applied. You can then call the [reload()](/docs/sdks/capacitor/live-update/#reload) method to apply the update immediately. If the [reload()](/docs/sdks/capacitor/live-update/#reload) method is not called, the new bundle will be used on the next app start.

`[](#%5F%5Fcodelineno-4-1)import { LiveUpdate } from "@capawesome/capacitor-live-update"
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)const sync = async () => {
[](#%5F%5Fcodelineno-4-4)  const result = await LiveUpdate.sync()
[](#%5F%5Fcodelineno-4-5)  if (result.nextBundleId) {
[](#%5F%5Fcodelineno-4-6)    await LiveUpdate.reload()
[](#%5F%5Fcodelineno-4-7)  }
[](#%5F%5Fcodelineno-4-8)}
`

## Publishing updates[¶](#publishing-updates "Permanent link")

To publish your first update, you need to [create a bundle](/docs/cloud/live-updates/bundles/#create-a-bundle) on Capawesome Cloud. For this, you need a bundle artifact. A bundle artifact is the build output of your web app. In Nuxt, this is the `dist` folder. You can create a bundle artifact by running the following command:

`[](#%5F%5Fcodelineno-5-1)npx nuxi generate
`

This will create a `dist` folder with the build output of your web app. You can then upload this folder to Capawesome Cloud using the [Capawesome CLI](/docs/cloud/cli/). To install the Capawesome CLI, run the following command:

`[](#%5F%5Fcodelineno-6-1)npm i -g @capawesome/cli
`

After installing the Capawesome CLI, you need to log in to your Capawesome Cloud account. Run the following command and follow the instructions:

`[](#%5F%5Fcodelineno-7-1)npx capawesome login
`

Once you are logged in, you can create a bundle by running the following command:

`[](#%5F%5Fcodelineno-8-1)npx capawesome apps:liveupdates:upload --path dist
`

Congratulations! You have successfully published your first live update. You can now test it by running your app on a device or emulator. The app will check for updates and apply them if available. Feel free to check out the [documentation](/docs/sdks/capacitor/live-update/) of the Live Update plugin to see what else you can do with it.

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

### Does `nuxi generate` produce the right output for a Live Update bundle, or do I need a different build command?[¶](#does-nuxi-generate-produce-the-right-output-for-a-live-update-bundle-or-do-i-need-a-different-build-command "Permanent link")

`nuxi generate` is the right command — it produces the static `dist` output that Capacitor's WebView loads, which is exactly what a live update bundle needs to contain. Just make sure you're generating a fully static build (via Nuxt's static site generation mode) rather than relying on server-rendered routes, since a live update bundle has no server behind it on the device.

### What happens if I call `sync()` but skip `reload()`?[¶](#what-happens-if-i-call-sync-but-skip-reload "Permanent link")

The downloaded bundle is set as the next bundle but won't be applied until the app's next cold start. Calling `reload()` immediately after a successful `sync()` (when `result.nextBundleId` is present) applies the update right away instead of waiting for the user to relaunch the app — useful when you want the fix live in the current session rather than the next one.

### Do I need to re-run `npx cap sync` every time I publish a new live update bundle?[¶](#do-i-need-to-re-run-npx-cap-sync-every-time-i-publish-a-new-live-update-bundle "Permanent link")

No — `cap sync` is only needed after installing the plugin or changing your `capacitor.config` (like setting the `appId`). Publishing a new live update bundle is a separate step (`apps:liveupdates:upload`) that doesn't touch your native project files, so it doesn't require a sync.

### Can users on an older native app version receive a Nuxt bundle built against a newer plugin API?[¶](#can-users-on-an-older-native-app-version-receive-a-nuxt-bundle-built-against-a-newer-plugin-api "Permanent link")

Only if the bundle doesn't call anything the older native binary doesn't have — if your Nuxt app starts using a newer Capacitor plugin method after a native release, that bundle can break on older installs. Pinning bundles to specific native versions via channels avoids this; see the [complete Live Updates guide](/blog/capacitor-live-updates-guide/) for the versioned channel setup.

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

* [Announcing the Live Update Plugin for Capacitor](/blog/announcing-the-capacitor-live-update-plugin/)
* [Capacitor App Updates: The Complete Guide](/blog/capacitor-app-update-guide/)
* [Capacitor Live Updates: The Complete OTA Guide](/blog/capacitor-live-updates-guide/)

July 17, 2026 

Back to top

```json
{
      "@context": "https://schema.org",
      "@type": "BlogPosting",
      "headline": "Live Updates for Nuxt Capacitor Apps",
      "description": "Implement Live Updates in your Nuxt Capacitor apps with Capawesome Cloud. Ship instant updates without going through app store review.",
      "image": "https://capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png",
      "datePublished": "2025-07-06T00: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": "Capacitor",
      "keywords": ["Capacitor", "Cloud", "Guides", "SDKs"],
      "isPartOf": {
        "@type": "Blog",
        "@id": "https://capawesome.io/blog/#blog"
      },
      "mainEntityOfPage": "https://capawesome.io/blog/live-updates-for-nuxt-capacitor/",
      "url": "https://capawesome.io/blog/live-updates-for-nuxt-capacitor/"
    }
{
      "@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": "Live Updates for Nuxt Capacitor Apps",
          "item": "https://capawesome.io/blog/live-updates-for-nuxt-capacitor/"
        }
      ]
    }
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Does nuxi generate produce the right output for a Live Update bundle, or do I need a different build command?", "acceptedAnswer": {"@type": "Answer", "text": "nuxi generate is the right command — it produces the static dist output that Capacitor's WebView loads, which is exactly what a live update bundle needs to contain. Just make sure you're generating a fully static build (via Nuxt's static site generation mode) rather than relying on server-rendered routes, since a live update bundle has no server behind it on the device."}}, {"@type": "Question", "name": "What happens if I call sync() but skip reload()?", "acceptedAnswer": {"@type": "Answer", "text": "The downloaded bundle is set as the next bundle but won't be applied until the app's next cold start. Calling reload() immediately after a successful sync() (when result.nextBundleId is present) applies the update right away instead of waiting for the user to relaunch the app — useful when you want the fix live in the current session rather than the next one."}}, {"@type": "Question", "name": "Do I need to re-run npx cap sync every time I publish a new live update bundle?", "acceptedAnswer": {"@type": "Answer", "text": "No — cap sync is only needed after installing the plugin or changing your capacitor.config (like setting the appId). Publishing a new live update bundle is a separate step ( apps:liveupdates:upload) that doesn't touch your native project files, so it doesn't require a sync."}}, {"@type": "Question", "name": "Can users on an older native app version receive a Nuxt bundle built against a newer plugin API?", "acceptedAnswer": {"@type": "Answer", "text": "Only if the bundle doesn't call anything the older native binary doesn't have — if your Nuxt app starts using a newer Capacitor plugin method after a native release, that bundle can break on older installs. Pinning bundles to specific native versions via channels avoids this; see the complete Live Updates guide for the versioned channel setup."}}], "url": "https://capawesome.io/blog/live-updates-for-nuxt-capacitor/"}
```
