UserCurrent Web: for growth and marketing
Personalize the site, with no CMS migration.
Your code declares where the page can change. UserCurrent decides what each visitor sees there, from what they did a moment ago. Run web experiments, and trigger journeys from the same behavior.
- Variant
- default
- Rule
- None matched
- Why
- No rule matched, so the slot shows its code default.
- Variant
- returning_runner
- Rule
- r1
- Why
- In segment returning_trail_runners: trail_shoe_viewed at least 3 times in the last 7 days.
The page, its nav and its product cards are your code and your CMS. The slot is the only part UserCurrent decides.
Experiences and slots
Your code declares the slot. UserCurrent decides what goes in it.
Marketers stop waiting on a developer for each change, and nobody migrates a CMS. UserCurrent is headless: it picks the props, and your site renders them.
A developer declares the slot
In code or through their coding agent: an ID, a props schema and a fallback. The same contract serves Astro and the web SDK.
A marketer authors the variants
Variant props are edited in a form generated from the schema. Targeting, schedule and priority are set beside them.
UserCurrent decides for each visitor
The decision reads the live profile. On Astro the variant is in the first HTML. Elsewhere the web SDK shows the fallback at once and replaces it only if the decision differs.
Your page renders the props
Props are values or references: a CMS entry ID, a URL or a product ID. Your code and your CMS keep rendering.
BuiltSlots on Astro, in the browser through the web SDK, and on any server through the server SDK.
There is no media library, no rich-text editor and no visual editor on the live page. Variants hold values and references to content that lives in your CMS.
Realtime segments
Target people by what they did seconds ago, not last night
A segment is evaluated on every event, at decision time and when time passes.
Segment returning_trail_runners
1,284users now
Live Size and members update as events arrive.
Returning trail runners include users where all are true
- trail_shoe_viewedat least3 timesinlast 7 days
- last seenwithinlast 7 days
Membership changes
- 14:02:11u_4821entered trail_shoe_viewed, 3rd time in 7 days
- 13:58:40u_1977entered trail_shoe_viewed, 3rd time in 7 days
- 13:41:02u_3305left not seen in 7 days, with no new event
Targetable on the next interaction
Every decision reads the live profile, so a behavior can change the next response.
Time moves membership too
A condition such as "no session in 7 days" changes membership within 1 hour of becoming true, even if the user sends nothing.
New segments apply to past behavior
Event counts and first and last seen cover behavior from before the segment existed, so it has members at once.
One definition, two front doors
Build a segment in the console or in config. It is the same definition either way.
Web experiments
Know whether a change worked, and keep a person in charge
Experiments run on the same slots and the same profile. People set the budget, and the platform acts inside it.
A/B/n tests on a slot
Test variants of a slot against a goal metric, with secondary metrics and guardrail metrics beside it.
Results you can read at any time
Sequential intervals stay valid however often you check them. A sample ratio check warns when the split is off.
Layers and a holdout
Mutually exclusive layers keep concurrent tests on one surface from overlapping. A project-wide holdout measures long-run lift.
Traffic that follows the winner
Among approved variants, a bandit can shift traffic within a budget you set. Guardrails can roll a test back.
Variants drafted by AI
Generate text variants within the slot schema. They go to the approval queue, and Production refuses an AI variant nobody approved.
AI
Ship the winner
Promote a variant to everyone from the console, config or MCP. An agent's change to Production waits for a person.
Outbound and journeys
Act on behavior outside the page
A journey starts when someone enters a segment, does an event or reaches a time. It waits, branches, sends and ends when the goal is reached.
Journey abandoned_checkout_recovery
- TriggerEnters segment abandoned_checkout1,240Entered
- Wait1 hour, or until order_placed1,046Still no order
- BranchIn segment has_push_token1,046Checked on each person
- pushSend push cart_reminder612SentemailSend email cart_reminder_email434Sent
- GoalExit on order_placed31125.1% of 1,240 entered
Checked before every send: frequency cap, quiet hours in the person's time zone, suppression and unsubscribe.
Email through your provider
UserCurrent renders code templates and sends through your own email provider account. It is never the sender of record for your mail.
Mobile push
Sent directly to the push services for iOS and Android.
Signed webhooks
Reach any tool that accepts a webhook, with retries, dead letters and replay.
Message content lives in code, as templates with a props schema, or in your email provider. There is no template designer. Frequency caps, quiet hours, suppression and one-click unsubscribe apply to every send, and a journey can hold out a share of people to measure its effect.
ComingRegistering push tokens from native apps needs the iOS and Android SDKs, which are not built yet.
Acquisition analytics
See where visitors come from and what they do next
Acquisition reporting runs on the same events as decisions. There is no second pipeline to keep in sync.
New visitors, last 7 days
11,270
+5.6% vs prior 7 days (10,670). Email grew the most: 1,940 against 1,510.
Where visitors come from
Reports group users by first-touch and last-touch UTM, referrer and landing page.
What they do next
New users, activation and retention by channel, on the same events that drive decisions.
People and agents apart
Each event carries a visitor class, so agent and crawler traffic can be told apart from people.
Filter by anything on the profile
Break any report down by segment, experiment variant or property.
ComingImporting ad spend, so cost per channel sits beside what visitors do next, is not built yet.
E-commerce and content sites
Slots for content, and an angle for shopping
Comparison shopping
For e-commerce, personalized comparison where the shopper's agent works with the site, instead of classic recommendations.
Coming
Content slots and variants on entries
Content slots on Astro pages, and an EmDash plugin that puts variants on any content entry.
Built
Add the first slot to your site
Your coding agent declares the slot and the first variant from config in your repo.
Why this button?
It is this page's own suggestion for now. As you read, this site keeps a small profile of who each page is for and what it is about, in your browser, and picks this button from it. Nothing is sent.