Onboarding flows
Server-driven onboarding: steps, questions and permission prompts configured on the dashboard, rendered by one component, measured end to end.
import { GrowthOnboarding } from "@fictura/sdk";
<GrowthOnboarding
placement="default"
onComplete={(answers) => savePlan(answers)}
fallback={<YourStaticOnboarding />}
/>;Three config shapes render through the same component, in order of what's live: a served HTML flow, a locked template (house_ai, temp4–temp6 — see Native templates), or a step list built from five step types: welcome, feature, question, permission, and paywall — the last hands off to GrowthPaywall for the same placement.
What's measured for free
onboarding_started(withstep_count),onboarding_step_viewed,onboarding_question_answeredonboarding_completed/onboarding_skipped— the pair the conversion funnel's second step is built ononboarding_template_unsupportedwhen an old build meets a template it can't render
Answers accumulate into the onComplete(answers) bag keyed by step key — write them wherever your app plans from. Like paywalls, onboarding runs experiments per placement, and a running experiment overrides the live config.
Native templates
Prebuilt React Native paywall and onboarding flows that ship inside the SDK — the dashboard edits words, six colours, and which screens run.
Client-side gating
One boolean for the UI: Growth.isSubscribed(). Honest about what it is — a rendering hint that fails closed — and what it is not.