Rheo documentation
User Guide

Flow builder

Author screens, branches, motion, paywalls, and collaboration on the visual canvas.

Purpose

Use the flow editor to design a versioned onboarding storyboard: ordered screens, decision branches, modal steps, motion, localized copy, and third-party surfaces (such as a RevenueCat paywall) — without shipping a new app build for every copy tweak.

Flow editor with canvas, Layers panel, and top bar (Publish, Translations, Animations)

Open the flow editor

  1. Go to your app’s Flows page.
  2. Click Edit on the flow you want to change.

Canvas and graph

Use the canvas to arrange screen nodes, decision nodes, and external surface nodes. Connect edges for linear paths, branches, and Fallback routes (required for paywalls).

Select a node to open its settings in the side drawer. Use the add menu on the canvas to insert new screens, decisions, or integration steps.

Layers panel

Select a screen to edit its content in the Layers panel (or select the screen node itself for shell chrome):

Layout sizing

Each layer has width and height controls in the inspector. Modes match flexbox / Figma semantics on both axes:

ModeBehavior
HugSizes to content (auto).
FillOccupies the parent on that axis (full for width, fill for height).
FixedPixel size you enter.
FractionHalf, third, two thirds, quarter, or three quarters of the parent on that axis.

Fill chains: A child set to Fill only grows when its parent is also Fill (or a fraction) on that axis. If a region should expand, set Fill on every ancestor up to the body stack. The builder shows a warning on the width/height control when a Fill chain is broken.

Body stack: The screen body region root stack always fills the available body area — you do not need to set Fill on it for basic full-screen layouts.

Hug wins on the cross axis: Hug (auto) is never upgraded to Fill just because the parent stack uses stretch alignment.

  • Content — Text, media, buttons, layout stacks, and other building blocks.
  • Loader — Full-screen or inline loading treatments that respect the motion timeline.
  • Hyperlink — Opens external URLs; the native SDK tracks opens for analytics.
  • Screen background — In Appearance, use Color, Image, or Video on the Background row. Image and video support fit, opacity, and an optional scrim overlay. Video adds loop, auto-play, trigger button, and audio (same playback model as video layers, including Play media button targets for screen backgrounds).

Layers panel with a screen selected and layer list visible

Motion and timeline

Open Animations from the top bar to tune enter/exit motion and use the timeline for timing. Preview motion in context before you publish.

Animation workbench with timeline dock at the bottom of the editor

Lottie and video layers use inspector settings (Auto-play on mount, optional trigger button, On complete when play-once). They are not scrubbed on the animation timeline like loaders; opacity and resting-motion clips still appear on the timeline as usual.

Comments

Add comments for reviewers. Threads anchor to canvas nodes (including decisions and external surfaces). Open the comments browser from the top bar to filter and reply.

Autosave and validation

The editor autosaves during long sessions. Fix validation issues surfaced in the editor before you Publish — for example orphaned connections, missing Fallback on paywalls, disabled integrations, or OS permission / ATT hints for iOS attribution-sensitive flows.

Publish

When the flow is ready, click Publish in the top bar. You can add an optional version label and choose which channels should pin the new version. Channels and experiments only consume published versions.

Publish dialog with version label and channel assignment checkboxes

External surfaces (paywalls)

When RevenueCat is enabled for the app, add a RevenueCat paywall external surface from the add menu. Configure offering and presentation mode, then wire per-outcome edges plus a Fallback path. Rheo blocks save and publish if the integration is off or Fallback is missing.

Canvas controls

Workspace admins can restrict which layer types appear in the editor for a given app under App settings → Canvas controls. Examples include Lottie, OAuth login (preset and custom providers), email/password auth fields, and OS permission requests. Disabled controls also block publish if the flow still uses a turned-off capability. Your plan may further limit features (for example Lottie on Indie).

Request app review (button action)

Use Request app review on a button’s On tap action (or add the Rate the app preset from the Button family) when you want the native in-app store rating sheet after a positive moment.

  • Submits the screen like Continue (inputs and checkboxes on that screen are captured).
  • Always follows the screen’s default next step — no per-outcome branches in the editor.
  • The OS may not show a prompt (rate limits, TestFlight, missing store config); the flow still advances.
  • Editor preview and web simulators treat the tap as “not shown” and advance immediately; test on a device build.

Limits and permissions

  • Publish vs edit depends on your workspace role and any approval policy tied to channels.
  • Integration-dependent nodes require the matching app integration — see Apps & settings.

Troubleshooting

  • Validation blocks save or publish: Read the issue list (missing targets, paywall Fallback, disabled integration, canvas control violations).
  • Motion stutters on device: Reduce concurrent clips or simplify layer counts on low-end hardware.
  • Comments hard to find: Use canvas anchors and filters in the comments sidebar.