Fictura
Paywalls & onboarding

Native templates

Prebuilt React Native paywall and onboarding flows that ship inside the SDK — the dashboard edits words, six colours, and which screens run.

A locked template's layout lives in SDK code; its config carries only copy, a palette, and a screen toggle map. That trade is deliberate: no canvas and nothing to drag, so a config can never break a layout, and every change still reaches installed apps on the next config refresh.

What ships in the SDK

KindKeyScreens
Paywallhouse_ai5-screen flow: free_try → trial_notification → trial_reel → exclusive_offer → one_time_offer
Paywalltemplate_24-screen flow: intro → features → notification → pricing
Onboardinghouse_ai24 steps; welcome and plan_ready always on
Onboardingtemp48 steps, light theme — welcome, value prop, then questions
Onboardingtemp54 steps, fitness-oriented
Onboardingtemp67 steps, light theme — welcome, four questions, closing pitch

Copy fields accept placeholders — {price}, {percent}, {per_week}, {standard_price} — substituted at render from the live store package. Unknown placeholders stay verbatim on purpose, and the backend rejects literal currency amounts in copy so a hard-coded "$9.99" can never drift from the store's truth.

Old builds and new templates

A template key the installed SDK doesn't know renders a fallback — "Update the app to see this offer." with a working Close — and logs paywall_template_unsupported. The dashboard's preview mirrors the SDK registry, so what previews is what devices can actually render.

Registering your own

TypeScript
import { registerPaywallTemplate } from "@fictura/sdk";

registerPaywallTemplate({
  key: "my_template",
  name: "My template",
  screens: MY_SCREENS,        // your React Native screens
  defaultTheme: MY_THEME,     // the palette the dashboard edits
});

Imagery is host-provided through the assets prop rather than shipped in the package — templates name the assets they want and your app supplies them, which keeps the npm install small and your art out of a third-party bundle.

On this page