doublur
v0.1 · private beta
Pre-launch UX research, on demand

Find the friction before your users do.

Point it at your staging URL with an activation goal. It runs headless browsers as synthetic users, captures screenshots at every moment of confusion, and hands you a ranked report with suggested fixes. Five-minute read for a PM.

No instrumentation. No test scripts. Just a URL and a goal.
Book a 15-min pilot →
UNDER THE HOOD

The hard parts are already built.

Headless browsers against staging

Real Chromium sessions hitting your actual pages. No mocking, no synthetic DOM. The persona sees what your users see.

Screenshots at the moment of confusion

Every step is captured. When a persona hesitates or abandons, you get the exact screenshot. Attach it to the ticket.

Memory across runs

Successful paths, error patterns, and page hints persist between simulations. Later runs skip known dead-ends and surface new issues.

Ranked report, not a log dump

Blockers sorted by severity and frequency. Each one comes with the persona's reasoning, the screenshot, and a suggested fix.

INTEGRATIONS

Ships where your team already works.

MCP SERVER

Run from your editor

Trigger runs, query results, and compare friction across deploys — directly from Claude Code, Cursor, or any MCP-compatible agent. No context-switching.

doublur.run({ url: "staging.acme.app", goal: "Complete onboarding" })
GITHUB ACTION

Friction checks on every PR

Runs against your preview deploy, posts findings as a PR comment with screenshots, and optionally fails the check if critical blockers are found.

- uses: showdownlabs/doublur@v1 with: staging-url: ${{ env.PREVIEW_URL }} fail-on: critical
LINEAR / JIRA

Blockers become tickets

One click turns a friction finding into a ticket with severity, repro steps, screenshots, and suggested fix. Or auto-create for critical blockers.

[doublur] Critical: "Connect source" CTA unclickable → Linear ticket PSM-142 created
WHY NOT JUST PROMPT AN LLM?

You can ask an AI to imagine a user. We run one.

A PROMPT ALONE
Imagines a user from a product description
Generates plausible-sounding narratives
No access to the real UI
No screenshots, no DOM, no traces
Cannot compare across deploys
No memory between runs
Output: "the user felt confused"
DOUBLUR
Executes real actions in a real browser
Captures DOM state and screenshots at every step
Sees what your users actually see
Evidence-backed findings with repro traces
Diffs friction between deploys and PRs
Persistent memory — skips known dead-ends
Output: "looped /billing → /team 3× over 47s, then quit"
WHO IT'S FOR

Teams that ship before they have research budget.

PMs who own activation but can’t recruit a panel before every launch
Growth leads watching cohorts and guessing at the why
Design teams who want friction signal without a usability lab
Founders shipping weekly who need a sanity check before prod

See what it finds in your onboarding.

10 free pilot sessions. 15 minutes. You show me your staging URL, I run doublur live, you keep the report.

Book a pilot session →