Auto-optimizing onboarding experiments
Personalize onboarding.
Auto-test variants.
Grow subscription revenue.
Spinosis assigns users, watches which onboarding actually converts, and shifts new traffic toward the winner — automatically. You still keep a holdout. RevenueCat tells you which experience made more money.
01
Test onboarding, then let it run
Ship Control and Variant B in your own screens. Each user gets a sticky assignment. As results come in, Spinosis sends more new users to the winner and keeps a holdout on the rest. The SDK never blocks onboarding if the network is slow.
import { Spinosis } from "@spinosis/react-native";
await Spinosis.init({
apiKey: "spn_live_xxx",
userId: currentUser.id,
});
const variant = await Spinosis.getVariant("onboarding_v1", {
fallback: "control",
timeout: 1500,
});
if (variant === "variant_b") {
return <NewOnboarding />;
}
return <CurrentOnboarding />;02
Measure subscription revenue
Connect RevenueCat with a webhook. Purchases and renewals are attributed to the variant that user actually saw — using the same App User ID you pass to the SDK.
03
Auto-shift to what actually won
Compare users, onboarding completion, trials, paid conversion, and revenue per exposed user. Auto-optimize reallocates new-user traffic every hour, then generates a new headline from the winner to keep testing. RevenueCat still decides the money winner.
Assigned users stay put. New traffic follows the better Welcome CTA, then a challenger headline is generated from that winner. Revenue per user is still the score that matters.
How it works
Create Control vs Variant B and turn auto-optimize on.
Each person keeps the variant they first saw.
New users shift toward the winner, then a new variation is generated from it.
RevenueCat shows which experience made more money.
Turn on auto-optimize for one test.
Create a project, install the SDK, connect RevenueCat. Traffic starts shifting on its own.