pororocaota

POROROCA OTA

A native paywall alternative to Superwall and Adapty

Two ways to make a paywall remotely editable

Superwall and Adapty let non-engineers build and edit paywalls in a web-based editor, which then renders inside your app. Pororoca takes a different route: you keep writing the paywall in SwiftUI or Jetpack Compose the same as any other screen, and update it remotely as a signed document instead of moving its authoring out of your codebase.

What Superwall and Adapty are good at

Their editors are genuinely useful for teams that want marketers or growth engineers editing paywall layout and copy without touching the app's source, and for running rapid visual experiments through a dedicated experimentation platform built around that editor.

Where they stop

The paywall ends up living in the vendor's editor and rendering model, separate from the rest of your SwiftUI or Compose codebase — which means a second place to maintain design consistency, and a migration cost if you ever want the paywall back in native code.

Where Pororoca fits

With Pororoca, the paywall stays exactly where the rest of your screens live — SwiftUI or Jetpack Compose — and updates ship as a signed, data-only document rather than a rewrite of how the screen is built. The iOS 17+ SwiftUI runtime holds a managed crash-safe store and embedded fallback; the Android API 26+ Compose runtime verifies the document's signature and hashes before using it.

Every update is Ed25519-signed, with the private key on a developer machine or in CI, never in the app. You can stage a paywall change to a percentage of installs by deterministic install-ID rollout, read `applied` telemetry in the dashboard to see whether it actually reached devices, and roll it back with one command if it doesn't perform. Publishing goes through a publisher CLI and remote publish to the control plane, with the same operations available to a coding agent via MCP.

Because publishing goes through the same publisher CLI whether the screen is a paywall, an onboarding step, or any other native screen, a paywall change doesn't require a separate vendor-SDK update or editor sync — it's the same validate, export, and publish sequence, staged to a percentage of installs by deterministic install-ID rollout, with `applied` telemetry in the dashboard confirming the new paywall actually rendered on real devices before you widen further or roll it back.

Android and team limits, honestly

Android storage is host-managed today, with the host retaining the last accepted document for offline use; the previous-update crash recovery on iOS is not yet in the Android SDK, the renderer surface is smaller, and full modifier parity with SwiftUI isn't there yet.

Not yet available: team members and RBAC, usage-based limits, automated alerts, cross-platform expression parity, and a hosted MCP transport. There's one Pro plan, card-required 21-day trial, in BRL or USD.

Start 21-day trial Read the docs