FEMA
Emergency guidance where small content mistakes can become urgent.
- Google Play installs
- 1.6M
- Store rating
- 4.0
By default, a live update runs one session after it downloads. Direct update modes apply it at launch instead, behind your splash screen, so the first screen users see is already the new version.
14-day unlimited free trial. No credit card required
Enterprise needs? Talk to our team
The Problem
The user opens the app
The app starts on the bundle it already has. The updater checks for a new one and downloads it in the background.
The session runs the current version
For the rest of that session, the user runs the code that was installed before your fix.
The update applies on the next resume
When the user leaves the app, the updater installs the new bundle. They see it the next time they open the app.
For most releases, that is the right trade-off. When the session that starts after your upload must run the new code, use a direct update mode.
Users who open the app should not go through the broken screen once more before the fix applies.
You want the patched JavaScript running from launch, not from the next session.
Terms, notices, or event content that must be current on the first screen users see.
The Solution
The updater checks at launch while your splash screen stays up. If a new bundle is available, it downloads and applies it before the splash screen hides.
No wait at launch. Users see the update one session later.
Users see the new version on the first screen. They wait on the splash screen while it downloads.
How it works
A direct mode is native configuration, so it ships in a store build first. After that, every live update follows it. Commands are from the Capgo docs.
Install @capacitor/splash-screen, then set autoUpdate, autoSplashscreen, and launchAutoHide in capacitor.config.ts.
npm install @capacitor/splash-screen
npx cap sync
// capacitor.config.ts
plugins: {
CapacitorUpdater: {
autoUpdate: 'onLaunch', // or 'atInstall' / 'always'
autoSplashscreen: true,
keepUrlPathAfterReload: true,
},
SplashScreen: { launchAutoHide: false },
}
Splash screen handling
capacitor.config is compiled into the native app, so the new mode reaches users with your next store release. Capgo Build can produce it in the cloud.
npx @capgo/cli@latest build request --platform ios
npx @capgo/cli@latest build request --platform android
Capgo Build docs
Users wait for the download at launch, so send only the changed files. The CLI detects instant apply modes and prompts for a delta upload.
npx @capgo/cli@latest bundle upload --channel production --delta
Delta updates docs
Call notifyAppReady() once your app has started. If a new bundle fails to start, the device goes back to the last working one.
import { CapacitorUpdater } from '@capgo/capacitor-updater'
await CapacitorUpdater.notifyAppReady()
notifyAppReady() docs
Direct updates are a trade: a short wait at launch in exchange for the new version on the first screen.
Set autoUpdate in capacitor.config.ts. Each mode decides when an update may apply while the user waits.
3
Instant apply modes in autoUpdate
Direct modes need @capacitor/splash-screen with launchAutoHide set to false, and autoSplashscreen set to true. The updater hides the splash screen once the update is applied, or once it knows no update is needed.
autoSplashscreen
Required for every direct mode
Users wait for the download at launch, and with always an update can reload the app while it is in use. Plan for both.
--delta
Recommended for every direct update upload
Use a direct mode when the current session must run the new code. Keep the default for everything else.
Payment, login, or data bugs where running the old code for one more session is too much.
atInstall applies the latest bundle right after a fresh install or store update, so new users start on your current onboarding.
Event pages, notices, or terms that must be current when users open the app.
Web-layer security fixes that should run from launch. Fixes in native code still need a store release.
Styling tweaks and small features rarely justify a wait at launch. The default mode applies them one session later.
With always, periodic checks (every 10 minutes by default) can apply an update while the app is open. Save state before relying on it.
The wait at launch is the update check plus the download. Delta updates keep the download to the files that changed.
Typical API latency
Only changed files are downloaded
Updates delivered per month
Find the solution that matches your team's needs
Apps built with Capacitor
Emergency, health, and civic apps cannot wait days to correct a broken checklist, resource link, or location-specific notice. Direct updates let the web layer move as soon as the fix is approved.
Emergency guidance where small content mistakes can become urgent.
Health records and guidance surfaces where approved copy changes need fast delivery.
Civic identity workflows where version-safe guidance matters across devices.
Customer proof
Founder, NuTriQ
“Being able to push production OTA updates instantly without waiting for full App Store review cycles has been a massive operational advantage.”
Lead Developer, drivolino GmbH
“The Capgo Capacitor Updater plugin completely transformed how we ship updates. What used to take days now takes just minutes.”
El que paga, Anirol
“Since I started using Capgo everything is faster, and I can give my users the time they deserve without neglecting my daily life.”
FAQ
When to use them, how to set them up, and what they cost at launch.
Use the default for most releases: there is no wait at launch, and users get the update one session later. Use a direct mode when the session that starts after your upload must run the new code, for example a broken checkout or a web-layer security fix.
Update behavior docsatInstall applies an update immediately only after a fresh install or a store update of the native app, then behaves like the default. onLaunch applies immediately when the app starts from a killed state. always checks on every foreground and applies as soon as the download finishes, even while the user is in the app.
Updater settingsDirect modes apply the update while the user waits. Without @capacitor/splash-screen, autoSplashscreen: true, and launchAutoHide: false, users can see a flicker or the old UI before the reload. With them, the splash stays up until the update is applied or the updater knows none is needed.
Splash screen handlingNo. autoUpdate lives in capacitor.config, which is read into the native app at build time. Ship the new setting in a store release. After that, every live update follows the new mode.
Native compatibility docsdirectUpdate is deprecated but still detected. Its values match the autoUpdate modes atInstall, onLaunch, and always. Move the setting to autoUpdate in your next native release.
Updater settingsTry a direct update mode on a test build during the trial and measure the launch wait on your own app.
14-day free trial. No credit card required.