Introduction
SwiftPatch is an over-the-air deployment platform for React Native. Push a JS bundle diff and your users run the new code on next app launch — no App Store Review, no 48-hour wait.
Quickstart
Three commands. That's the whole thing.
$ npm install swiftpatch
$ npx swiftpatch init
$ npx swiftpatch deploy --channel productionInstall the SDK
The SDK is a single npm package plus a tiny native bridge. No pod install, no Gradle tweak — the autolinker handles it.
npm install swiftpatch
# or
yarn add swiftpatch
# or
pnpm add swiftpatchYour first deploy
swiftpatch init generates an Ed25519 signing keypair and writes swiftpatch.config.ts to the project root. The private key stays on your machine; never commit it.
Signing keys
Every deploy is signed on your machine with your private key and verified on-device with the public key baked into the binary. We literally cannot push code to your users.
swiftpatch deploy
The main workhorse. Accepts a channel, optional rollout strategy, and an arbitrary JSON payload for release notes.
swiftpatch deploy \
--channel production \
--rollout staged \
--notes "fix: typo on settings screen"GitHub Actions
Drop this in .github/workflows/deploy.yml:
name: Deploy OTA
on: { push: { branches: [main] } }
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npx swiftpatch deploy
env:
SWIFTPATCH_KEY: ${{ secrets.SWIFTPATCH_KEY }}We answer every question in the Discord, usually within an hour.
Join the waitlist for Discord access →