Userpilot

userpilot.com

ALMOST

A weekend of work, and real gaps remain.

Onboarding flows, surveys and product analytics in one: build the walkthrough visually, target it by behaviour, and measure whether it changed anything.

Promptfree, for everyone, and the only version there is
Build the onboarding and survey layer I actually need instead of Userpilot.

The honest split: the rendering is a day, the targeting is a week, and the visual builder is the product. Decide whether a developer adds each flow before you start.

STACK
- Node 20+ with Fastify serving a small script
- SQLite through better-sqlite3, WAL mode
- Vanilla JS on the page, no framework
- Caddy in front

THE DATA MODEL
- flows: id, name, kind, steps_json, audience_json, frequency_json, goal_event, is_live, version
- surveys: id, name, questions_json, audience_json, trigger_json, is_live
- responses: id, survey_id, person_hash, answers_json, at
- exposures: id, flow_id, person_hash, step_index, action, at
- events: id, person_hash, name, props_json, at — the same table the targeting reads

ONE EVENT STREAM FOR BOTH JOBS
- The reason these products bundle analytics with flows is that targeting needs behaviour. Write both to the same table and the audience rule is a query
- Audiences as saved predicates over events and traits: signed up in the last week, has never created a project, is on the paid plan
- **Evaluate the audience on the server, once per session**, and send the qualifying flows in the same response. Evaluating in the browser means shipping your customer segments to the browser

RENDERING
- Tooltip, modal, slideout, checklist, banner, and a survey card. Six shapes cover everything these products sell
- Anchoring by a data attribute your own code adds, never a generated class. If the anchor is missing after a short wait, skip and record it
- Keyboard reachable, escape closes, focus returned, prefers-reduced-motion honoured

SURVEYS DONE PROPERLY
- NPS, one question with a comment, and a short multiple choice. That is the whole vocabulary anybody uses
- **Never ask the same person twice within a stated window**, and never during a task they are in the middle of. A survey that interrupts a checkout is a survey that lowers your revenue
- Store the raw answer and the page it was asked on; NPS without context is a number nobody can act on

PROVING IT WORKED
- Every flow declares a goal event. Compare people exposed with people who qualified and were not, in the following seven days
- **Hold back a random slice from every flow**, permanently. Without a control group, 'onboarding improved activation' is a story rather than a finding, and this is the single feature that makes the whole system worth having

WHAT MATTERS MOST
The shared event stream and the permanent holdback. The first makes targeting easy; the second is the only way you will ever know if any of it works.

What you lose

  • A visual builder a product manager uses without a developer
  • Analytics and flows over the same events, so targeting is trivial
  • NPS and surveys already wired to the same audience
  • A hosted script that works across single-page and server-rendered applications

If you would rather not build

  • A first-party events table plus a small script, which is the core

The escape hatch

open source · no votes, no paid placement

PostHog

$0

Analytics, surveys and feature flags over one event stream; self-hostable.

PostHog/posthogfree · open source

Shepherd

$0

Anchored guided tours in the browser.

shepherd-pro/shepherdfree · open source

Why this verdict

our own opinion · changed only by a person

45/100

Verdict kinda at 45: the same trade as every adoption tool — the rendering is easy, the no-code builder is not. The holdback group is the part most homemade versions skip and the part that gives the answer.

History

tracked since 14 Aug 2026 · nothing is ever overwritten

Interest · last 30 days

Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.

Questions about Userpilot

answered from the record above

Is Userpilot free?

No — the plan we track is $299 a month. Starter from around $299/month billed annually, priced by monthly active users.

Can you replace Userpilot by building your own?

ALMOST. A weekend of work, and real gaps remain. Replacement score 45 out of 100, build time a weekend. Read what you lose before you decide.

How much does Userpilot cost?

$299 a month on Starter — $3,588 a year. Recorded 14 Aug 2026.

What do you lose by replacing Userpilot?

A visual builder a product manager uses without a developer; Analytics and flows over the same events, so targeting is trivial; NPS and surveys already wired to the same audience; A hosted script that works across single-page and server-rendered applications. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Userpilot?

Yes: PostHog, Shepherd. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 36 in Analytics

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc