pororocaota

POROROCA OTA

A CodePush alternative for teams that write native code

CodePush is gone, and it never covered native teams

CodePush shipped JavaScript bundle updates to React Native apps, and Microsoft has retired it. It was never an option for teams writing SwiftUI or Jetpack Compose directly, because there was no JavaScript bundle to hot-swap in a fully native app in the first place.

If your app is React Native, CodePush's retirement is a real gap. If your app is native iOS or Android, the question was never "which CodePush replacement" — it was "is there anything like CodePush for native code at all."

What CodePush was good at

Give it credit: CodePush let RN teams push small JavaScript and asset patches straight to installed apps, skipping the store review queue for changes that were really just data and logic already expressible in JS. For teams already on React Native, that was a genuine, useful shortcut for years.

Where it stopped

CodePush's model depended entirely on React Native's JavaScript bundle. It had no answer for a team writing Swift and SwiftUI, or Kotlin and Jetpack Compose, because there was no equivalent bundle to replace — the UI is compiled native code, not an interpreted script.

Its retirement leaves React Native teams without a maintained successor from Microsoft, and it never offered native SwiftUI or Compose teams anything to begin with.

Where Pororoca fits

Pororoca does not patch code or ship a JavaScript bundle. It delivers a signed, data-only screen document to a native runtime: an iOS 17+ SwiftUI runtime with a managed crash-safe store and an embedded fallback, and an Android API 26+ Compose runtime that verifies the document's signature and hashes before using it.

Every document is described by an Ed25519-signed manifest, and the private signing key stays on your development machine or in CI — it never ships inside the app. Rollouts are deterministic by install ID, organized into channels, and reversible with one-command rollback. Once a document is adopted, `applied` telemetry shows up in the dashboard so you can see whether it actually reached devices, not just whether you pressed publish.

Publishing goes through a publisher CLI that validates and signs bundles before a remote publish step sends them to the control plane, and the same operations are available to a coding agent through an MCP server if you want an agent handling routine releases under supervision.

Android and team limits, honestly

On Android, storage of the update is host-managed today, and while the host app retains the last accepted document for offline use, the managed previous-update crash recovery that exists on iOS is not yet in the Android SDK. The Android renderer surface is also smaller than SwiftUI's, and full modifier parity between the two platforms isn't there yet.

Not yet available on either platform: team members and role-based access control, usage-based limits, automated alerts, cross-platform expression parity, and a hosted MCP transport (the MCP server runs locally today). There is one Pro plan, with a card-required 21-day trial, billed in BRL or USD.

Start 21-day trial Read the docs