ScaleBun
Skip to article

Publishing

react-nativeDeveloper

Build and ship a JavaScript bundle from the CLI — Hermes bytecode, staged rollout, release notes, source maps — plus what actually ships and how upload-then-promote works.

Updated

Publishing is one command. The CLI builds your JS bundle, hashes it, optionally signs it, uploads it to storage, and promotes it to a channel.

Terminal
npx scalebun ota publish \  --app-id <appId> \  --channel production \  --platform android \  --hermes \  --rollout 10 \  --release-note "Fix checkout crash"

Common options#

FlagDefaultWhat it does
--channel <name>defaultWhich channel to publish to. The channel must already exist
--platform <p>androidandroid or ios — bundles are platform-specific
--hermesonCompile to Hermes bytecode (faster start). Use --hermes-disabled for plain JS
--rollout <pct>100Initial rollout percentage — start small (see below)
--release-note <text>Shown in the dashboard and to devices
--target-version <range>>=1.0.0Which native app versions may receive this bundle
--sourcemapoffUpload a source map for crash symbolication (needs SCALEBUN_SDK_SECRET)
--require-signingoffFail rather than publish unsigned — see Signing
--skip-promoteoffUpload only; promote later from the dashboard

What actually ships#

The bundle is your JavaScript plus the assets it references from the installed binary — nothing native. The CLI prints exactly what it built:

Text
✅ Hermes bytecode compiled✅ Bundle built: bundle.jsbundle   Runtime: RN 0.78.3, Hermes HBC v96🔒 Computing SHA-256…   Size: 18.08 MB   Native app id: org.example.app⬆️  Uploading bundle to storage…🚀 Promoting release to active target channel…✅ Bundle v24 published successfully!

Start small, then widen#

--rollout 100 sends a brand-new bundle to your whole fleet at once. Prefer a staged rollout: publish at 10, watch the health page, then widen.

Terminal
scalebun ota publish --channel production --platform android --rollout 10# looks healthy →scalebun ota rollout --percent 50scalebun ota rollout --percent 100

Upload now, promote later#

To stage a bundle without making it live — for a manual promote or a scheduled release — publish with --skip-promote:

Terminal
scalebun ota publish --channel production --platform android --skip-promote

The bundle is uploaded and finalized but no device receives it until you promote it from the dashboard or re-run without the flag.

Build the bundle without uploading#

To inspect or hand off a bundle file (e.g. to upload from the dashboard):

Terminal
scalebun ota bundle build --platform android --hermes

Next#

Publishing · OTA updates · React Native SDK · ScaleBun