Log inSign up

User onboarding built
for SolidJS

Flows works alongside SolidJS signals and SolidStart. Add user onboarding without disrupting your reactivity model.

How Flows powers SolidJS user onboarding

Flows initializes client-side and works alongside SolidJS's fine-grained reactivity. Trigger onboarding workflows from effects, route events, or user actions without disrupting your signal graph.

Product tours

Guide users step-by-step through your product with tooltips, modals, and hints that feel native to your app.

Embeddable components

Embed interactive content directly inside your app layout: checklists, empty states, and contextual guides without floating overlays.

Custom components

Use your own design system and component library to build adoption experiences that match your product's look and feel exactly.

Localization

Deliver workflow content in any language to reach a global user base.

User targeting

Target specific users or segments with AND/OR logic to show the right experience to the right person.

Analytics

Track workflow performance with built-in analytics. Measure completion rates, drop-off, and engagement across all your adoption experiences.

Designed for unlimited customizability

Flows is designed to be a “Headless product adoption platform”. We’ll focus on user state problems, so you can focus on your own product.

Localization

Localization

Support any language or locale to reach a global audience.

Segmentation

Segmentation

Target specific users or companies based on properties or behavior.

Versioning

Versioning

Deploy, audit, and restore your changes across environments.

Analytics

Analytics

Understand how users interact with your workflows.

Environments

Environments

Test workflows on staging before deploying them to production.

Actions

Actions

Trigger actions based on user behavior.

Workflow logic

Workflow logic

Branch, filter, and control the path of your workflows.

Privacy first

Privacy first

Built with privacy in mind. Minimizing data collection.

Questions and Answers

Initialize the Flows SDK inside an onMount callback or a root-level effect and pass user identity and properties. Flows evaluates targeting rules independently and triggers the right onboarding workflow without adding reactive primitives to your own signal graph. See the SolidJS installation guide for step-by-step instructions and code examples.

Yes. Initialize Flows inside an onMount method to ensure it runs in the browser. SolidStart route transitions are detected automatically, so onboarding steps can trigger on specific page visits without custom router hooks.

Yes. Flows is headless. You can use your own SolidJS components and Flows controls when they appear. Your reactivity model, stores, and component patterns stay exactly as they are.

Flows manages its own internal state independently from your signal graph. If you need to, you can listen and react to workflow changes in your SolidJS components with supplied Flows methods.

Pass user properties (like plan, createdAt, or custom attributes) when initializing Flows. Targeting rules are defined in the Flows dashboard and evaluated locally, so new users get onboarding flows while returning users are automatically skipped. See the guide on targeting only new users.

Build better SolidJS user onboarding today

Flows works with fine-grained reactivity, not against it. Add onboarding to your SolidJS app without compromising performance.

Get started for free

No credit card required. Free forever.