About this project

Bundle Drop delivers JavaScript and asset updates to compatible iOS and Android React Native binaries without requiring new native store builds. It supports Expo SDK 54-57 and bare React Native 0.71+, with New Architecture compatibility. Key features include channel-based distribution (develop, production, beta, or custom channels), staged rollouts targeting specific user cohorts, and rollback safety through immutable verified bundles where rollback is a local pointer switch. The transport layer supports hybrid OTA with full-bundle integrity and patch-sized downloads for supported devices. Runtime gating ensures updates only reach compatible native binaries, and observability metadata keeps crash reports attributable to correct releases. The package includes a CLI tool called Bundle Drop Sight that analyzes production JavaScript bundles in the browser. It performs size attribution to packages and files using source maps, compares builds against Git baselines, and generates OTA archive size estimates. The comparison runs locally in private temporary Git worktrees without uploading source code or bundles to servers. Installation uses the Expo config plugin for managed workflows or autolinking for bare React Native. Setup requires authentication via `npx bundle-drop login`, followed by `npx bundle-drop doctor` to validate configuration, runtime identity, native integration, and startup ownership. CI/CD support is available through Personal Access Token uploads from any pipeline. The runtime is initialized early in the app process via `BundleDrop.init()` with configurable channel, environment, and policy settings.