Publishing
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.
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.
npx scalebun ota publish \ --app-id <appId> \ --channel production \ --platform android \ --hermes \ --rollout 10 \ --release-note "Fix checkout crash"Common options#
| Flag | Default | What it does |
|---|---|---|
--channel <name> | default | Which channel to publish to. The channel must already exist |
--platform <p> | android | android or ios — bundles are platform-specific |
--hermes | on | Compile to Hermes bytecode (faster start). Use --hermes-disabled for plain JS |
--rollout <pct> | 100 | Initial rollout percentage — start small (see below) |
--release-note <text> | — | Shown in the dashboard and to devices |
--target-version <range> | >=1.0.0 | Which native app versions may receive this bundle |
--sourcemap | off | Upload a source map for crash symbolication (needs SCALEBUN_SDK_SECRET) |
--require-signing | off | Fail rather than publish unsigned — see Signing |
--skip-promote | off | Upload 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:
✅ 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.
scalebun ota publish --channel production --platform android --rollout 10# looks healthy →scalebun ota rollout --percent 50scalebun ota rollout --percent 100Upload now, promote later#
To stage a bundle without making it live — for a manual promote or a scheduled
release — publish with --skip-promote:
scalebun ota publish --channel production --platform android --skip-promoteThe 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):
scalebun ota bundle build --platform android --hermesNext#
Channels & rollouts — target the right devices and widen safely.
Signing — sign what you publish.
CI/CD — publish automatically on every push.