pororocaota

POROROCA OTA

Firebase Remote Config vs server-driven UI

Two different jobs that look similar from a distance

Firebase Remote Config lets you change key-value parameters in a live app without a release — a price string, a feature toggle, a copy variant already coded into the UI. Server-driven UI, the category Pororoca is built for, goes further: the screen's structure itself is sent as data and rendered natively, so you can change what's on screen, not just which of several pre-built branches is active.

What Remote Config is good at

Remote Config is simple, fast to adopt, and works across whatever platforms Firebase supports. For flipping a value your UI already knows how to display — a limit, a flag, a string — it's hard to beat for how little setup it needs.

Where it stops

Every possible outcome of a Remote Config value has to already be built and shipped in the app. It can pick between paths you compiled in advance; it can't hand the client a new screen structure it hasn't seen before, and it has no built-in signing, staged-rollout-by-install, or screen-level rollback model of its own.

Where Pororoca fits

Pororoca ships the screen itself as a signed, data-only document to a native runtime — an iOS 17+ SwiftUI runtime with a managed crash-safe store and embedded fallback, or an Android API 26+ Compose runtime that verifies the document's signature and hashes before rendering it.

Manifests are Ed25519-signed, with the private key staying on a developer machine or in CI. Rollouts are deterministic by install ID, organized into channels, with one-command rollback if a screen needs to come back, and `applied` telemetry visible in the dashboard so you can see whether the new screen actually rendered on real devices.

A publisher CLI and remote publish step move signed bundles to the control plane, and the same operations are available to a coding agent through an MCP server.

Because every document is signed before publish, a malformed or tampered value can't silently reach the UI the way an unvalidated remote-config parameter could — the runtime checks the manifest's Ed25519 signature and hashes before it ever renders. And because `applied` telemetry is tied to the specific update ID your CLI generated, you can trace a live screen change back to the exact publish command and rollout percentage that shipped it, rather than just a generic parameter name and its last-known value.

Android and team limits, honestly

Android storage is host-managed today; the host keeps the last accepted document for offline use, but the previous-update crash recovery available 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, billed in BRL or USD.

Start 21-day trial Read the docs