acme.app / onboarding rayform
amplitude activation friction detected
default experience
Setup your workspace
Step 1 of 3 — Basic information
Company name *
Industry
Select industry
Team size
Select range
Primary use case
Referral source
Billing email *
Save draft
Continue →
Let's get you set up
Two steps. One minute.
Company name *
Team size
How big is your team?
Get started →
Fill in more details later
Projects
⌘K
+ New
23total
12active
7review
4overdue
NameStatusTeamUpdated
Design · Phase 2 Active Team A 2h ago
API · Staging Review Team B 1d ago
Client X · Delivery Done Solo 3d ago
Internal Tools Active Team C 4d ago
Welcome back, Chad.
You've been away for 92 days.
what's new since you left
🚀 New integrations 📊 Better analytics ⚡ Faster exports
resume where you left off
Project Orion
Last edited Nov 12 · Team A · 3 open tasks
Continue →

We ship the fix before you notice the problem.

built for
how it works

Four steps. One script tag. Runtime, not a deploy.

01

Connect analytics

Read-only OAuth to your existing warehouse. No new events emitted, no sprint required.

02

Install the SDK

One <script> tag, or a server-render proxy for SSR apps. Your codebase stays where it is.

03

Review variants

2–3 variants per cohort with a reason and predicted metric. Pick from console or Slack.

04

Ship & measure

Variant goes live to that cohort only. Uplift reports alongside the reason you approved.

step 02 · in detail

How a variant ships without touching your codebase.

acme.app / onboarding runtime
tick · 0
<Page>
<Header />
data-rf="onboarding.step1"
OnboardForm · default
<Footer />
rayform · runtime tenant: acme
00 page loads · rf.js boots
01 visitor resolved → cohort matched
02 policy: onboarding.step1adapted version
03 fetch from your component registry · cached
04 render inside declared slot · no DOM rewrite outside slot
05 axe a11y pass · CSP respected
01 Slots, not screens. Rayform only renders inside elements you mark. It never invents chrome or touches anything you didn't offer.
02 Your library, your constraints. Variants compose components from your registry. axe runs before ship. Tokens/theme respected.
03 Runtime, reversible. Turn Rayform off and every user sees the default. Git history is untouched.
built for

Pick your angle.

01 · signal
Analytics drops.
An onboarding flow starts underperforming. Rayform flags it and queues a response.
02 · variant
Rayform drafts fixes.
Each comes with reasoning and a recommended direction. Review it where you already work.
03 · shipped
Live to that cohort.
The new experience goes live for the affected users only, and can be rolled back instantly.
preview

Same app. Three users. Three interfaces.

acme.app rayform
Events weighted · day_1
note This is a scripted preview, not a live tenant.
compatibility

Your stack, unchanged.

input
Analytics Warehouse Event stream Product data
ingests
Rayform
ships through
delivery
Slack LaunchDarkly Your app · runtime
read-only access
Rayform reads from your existing systems without writing back into them.
isolated runtime
Your product logic stays separate from everyone else's, with scoped access and clear boundaries.
security reviews
Operational controls, review processes, and rollout safeguards are built into the product path.
kill-switch
One toggle reverts every surface to default. Git untouched.
use cases

Works wherever users drop off.

B2B SaaS
Onboarding & Activation

A crowded onboarding step becomes lighter for first-time users, with the rest deferred until they're ready.

E-commerce
Checkout & Conversion

A fragmented mobile checkout becomes a single, cleaner confirmation flow for the buyers who need it.

Fintech
KYC & Trust Flow

A noisy trust flow narrows to the single next action, with clearer progress for new accounts.

Consumer App
Retention & Re-engagement

Returning users see their last context first, plus the changes most likely to help them pick back up.

request access

Tell us which flow you'd rewrite first.

No captcha. No spam.
One <script> tag or SSR proxy. Rayform renders only inside data-rf elements — nowhere else. Kill-switch reverts all surfaces in one click.
Flag platforms execute variants you already wrote. Rayform sits upstream — it picks both the variant and the cohort from your event stream, then hands off to your flag system or renders directly.
Script tag or npm install @rayform/sdk. CSP-compliant, slot-scoped, and checked for accessibility before rollout. Works with React, Next.js, Vue, Vanilla, and server-rendered apps.
Built by Vishal Singh · I read every submission and reply personally.