RECUS DOCS

Core Concepts

The fundamental building blocks of Recus.

Apps

An App in Recus maps to one of your React Native applications.

Each App has:

  • A unique SDK key used to authenticate the SDK
  • Multiple onboarding flows
  • Its own user database — users are identified by the userId you pass from your app
  • Its own analytics — MAU counts, flow completion rates, field drop-off data

When to create multiple Apps: Create a separate Recus App for each distinct React Native application you maintain. If you have a user-facing app and an admin app — those are two separate Apps with two separate SDK keys.

Don't split by environment

Do not create multiple Apps for different environments. Use the same App for staging and production, but keep separate flows for each if needed.

Flows

A Flow is a sequence of screens a user moves through during onboarding.

Each flow has:

  • A unique ID used internally
  • Multiple screens in a defined order
  • A mandatory setting — if true, users cannot bypass it
  • A version number — increments every time you publish changes

Multiple flows per App: An App can have many flows.

FlowWhen it triggers
User OnboardingEvery new user on first login
KYC VerificationUsers who need identity verification
Re-onboardingReturning users after a major product update
Feature IntroductionWhen a user first accesses a new feature

The SDK renders the flow marked as active and mandatory automatically. You control which flow is active from the dashboard.

Screens

A Screen is one step in a flow. Each screen has:

  • A background — solid color, gradient, or image
  • Elements — headings, body text, images, inputs
  • A button — continue or skip
  • An animation — how it enters and exits

Screens are rendered natively by the SDK. They appear as real React Native views — not WebViews, not overlays. They feel exactly like screens you built yourself.

The User Object

tsx
<RecusAppProvider
  sdkKey="pk_live_xxx"
  user={{
    userId: "usr_123",           // required — your user's ID
    email:  "jane@example.com",  // optional
    name:   "Jane Smith",        // optional
    plan:   "pro",               // optional — any extra properties
  }}
>

Important rules:

  • userId is the only required field
  • Pass undefined when the user is not logged in — Recus stays dormant
  • Use your own user IDs — Recus stores data against your IDs so you can join it with your own database without any mapping
  • Two different Apps can both have a user with ID usr_123 — they are completely isolated

What Recus stores

When a user first appears, Recus creates a record for them. When they complete a flow, their submitted values are stored against their userId. You can retrieve this data via the API or receive it via webhooks.

SDK Keys

Each App has two keys:

Publishable key (pk_live_...)

Safe to include in your React Native app. Used by the SDK to fetch flow schemas and submit user data. Can only access data for your specific App — not other Apps on your account.

Secret key (sk_live_...)

Never include this in your React Native app. Use it on your backend server to access the full Recus API — retrieve user data, manage flows programmatically, verify webhooks.

Key rotation

You can rotate keys at any time in dashboard Settings. Old keys stop working immediately. Plan key rotations carefully as they require an app update to distribute the new publishable key.