Make AI customers test before users do.

Fraser autonomously tests your product with AI customers, turns feedback into fixes, and continuously improves your product, all within your team’s existing workflow.

@Canaan created this channel today. This is the very beginning of the # web-app channel. Where the site gets tested before anyone outside sees it. (Edit description)

Today
Trusted by
teams at:
Cartesia
E2B
MongoDB
PostHog
Notion
Google
Key
NVIDIA
Cartesia
E2B
MongoDB
PostHog
Notion
Google
Key
NVIDIA

Teams ship faster than QA feedback can keep up

Pushed today
214
197unverified
in prod

shipped vs reviewed · 10h

QA runs19
Passed QA17
Oldest unreviewed4h 12m
#3385fix(cart): qty stepper alignment56m
#3386fix(auth): reset link expiry54m
#3387fix(cart): qty stepper alignment52m
#3388fix(pdp): size selector state50m
#3389chore(ci): cache node_modules48m
#3390fix(pdp): size selector state46m
#3391fix(auth): reset link expiry44m
#3392fix(cart): qty stepper alignment42m
#3393fix(auth): reset link expiry40m
#3394chore(ci): cache node_modules38m
#3395fix(pdp): size selector state36m
#3396chore(ci): cache node_modules34m
#3397fix(cart): qty stepper alignment32m
#3398fix(auth): reset link expiry30m
#3399fix(cart): qty stepper alignment28m
#3400fix(pdp): size selector state26m
#3401chore(ci): cache node_modules24m
#3402fix(pdp): size selector state22m
#3403fix(auth): reset link expiry20m
#3404fix(cart): qty stepper alignment18m
#3405fix(auth): reset link expiry16m
#3406chore(ci): cache node_modules14m
#3407fix(pdp): size selector state12m
#3408chore(ci): cache node_modules10m
#3409fix(cart): qty stepper alignment8m
#3410fix(auth): reset link expiry6m
#3411fix(cart): qty stepper alignment4m
#3412fix(pdp): size selector state2m
#3385fix(cart): qty stepper alignment56m
#3386fix(auth): reset link expiry54m
#3387fix(cart): qty stepper alignment52m
#3388fix(pdp): size selector state50m
#3389chore(ci): cache node_modules48m
#3390fix(pdp): size selector state46m
#3391fix(auth): reset link expiry44m
#3392fix(cart): qty stepper alignment42m
#3393fix(auth): reset link expiry40m
#3394chore(ci): cache node_modules38m
#3395fix(pdp): size selector state36m
#3396chore(ci): cache node_modules34m
#3397fix(cart): qty stepper alignment32m
#3398fix(auth): reset link expiry30m
#3399fix(cart): qty stepper alignment28m
#3400fix(pdp): size selector state26m
#3401chore(ci): cache node_modules24m
#3402fix(pdp): size selector state22m
#3403fix(auth): reset link expiry20m
#3404fix(cart): qty stepper alignment18m
#3405fix(auth): reset link expiry16m
#3406chore(ci): cache node_modules14m
#3407fix(pdp): size selector state12m
#3408chore(ci): cache node_modules10m
#3409fix(cart): qty stepper alignment8m
#3410fix(auth): reset link expiry6m
#3411fix(cart): qty stepper alignment4m
#3412fix(pdp): size selector state2m

QA can’t keep pace

You ship every 90 seconds. QA inspects one release at a time.

R

So hard to navigate

8 Jan

Took me four screens just to find my own orders, and I still ended up searching for it.

Raul G.
E

Buggy, would not recommend

7 Jan

It crashes constantly and half the buttons do nothing at all. Uninstalled after a week.

Emma D.
M

Checkout is broken

6 Jan

Tapped pay three times and nothing happened, so I gave up and ordered somewhere else.

Marcus R.
P

Lost my whole basket

5 Jan

Changed one item and the whole thing emptied. Had to build the order again from scratch.

Priya S.

Product problems surface after launch

Customers become the feedback loop when QA cannot keep up with release velocity.

Create AI personas from
real customer data

PostHogread-only
Sessions read0
#4821exit · plan picker0:42
#4822rage-click · Continue1:07
#4823exit · signup0:19
#4824back · plan picker2:15
#4825idle 30s · pricing1:53
#4826exit · empty state0:08
#4827rage-click · Compare0:57

Capture customer data

Connect tools like PostHog to transform customer data into living user personas automatically.

Patricia’s run3 filed

Add to basket does nothing

LYT-482screenshot · Pixel 8

Keyboard covers Continue

CHK-119screenshot · iPhone SE

Skip sits below the fold

#214screenshot · Web

You approve every ticket. Fraser has no code access.

Turn findings into tickets

Send issues directly to Jira, Linear, Github with context attached.

--:--

Create a self-improving loop

Create tickets and fixes all within your team’s workflow.

Why teams use simulations

What do my customers think of my new revamp?
iPhone users · US95% confidence
Confidence level95%
LowHigh

Validate design choices

Find friction in user flows before launch.

!Missing e.preventDefault() — form conflict on mobile.
// CheckoutButton.tsx
onClick={() => handleSubmit()}
+onClick={(e) => { e.preventDefault(); handleSubmit(); }}
disabled={isLoading}
Fix applied

Catch bugs

Detect broken features before production.

👩🏻Sarah
🧑🏽Tyler
👩🏾Maya
🧑🏼Jordan
👨🏿Alex

Improve UX

See where users get confused before you ship.

👩🏻
SIM-Maya-Writer-01
I don't like the wording on landing.
What do you not like about it?
👩🏻
SIM-Maya-Writer-01
Pretty much, the use of "was" is everywhere.

Persona Debrief

Follow up with AI personas to understand the rationale behind every action.

A
Authenticated states
Test flows behind login, paywalls, and role gates.
LoginAdmin
M
Multi-step journeys
Walk through onboarding, checkout, and complex forms.
OnboardingCheckout

Navigate complex product flows

Test the pages, states, and edge cases that ordinary agents cannot access.

Lythe
MCP
GitHub
Jira
Claude Code
Cursor
Codex
MCP Server

From feedback to fix

Turn user issues into prioritized fixes your team can approve and build.