In this video· click a step to jump to it
Test recording
Reachvo — app walkthrough
109,423 ms · 32,579 pixels changed
We built this regression test for app.reachvo.ai — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against app.reachvo.ai. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const shot = (n, s) => screenshotPath.replace('.png', '-' + n + '-' + s + '.png');
const SCROLL_THROUGH = "(async () => { const ease = t => 1 - Math.pow(1 - t, 3); const max = Math.max(0, document.body.scrollHeight - window.innerHeight); if (max < 40) return; const anim = (a, b, ms) => new Promise(res => { const t0 = performance.now(); const step = now => { const p = Math.min(1, (now - t0) / ms); window.scrollTo(0, a + (b - a) * ease(p)); p < 1 ? requestAnimationFrame(step) : res(); }; requestAnimationFrame(step); }); await anim(0, max, 1200); await new Promise(r => setTimeout(r, 300)); await anim(max, 0, 700); })()";
await page.context().setExtraHTTPHeaders({ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36' });
const noise = ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/sentry-cdn.com/**', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/www.googletagmanager.com/**'];
for (const pattern of noise) {
await page.route(pattern, function (r) { return r.abort(); }).catch(function () {});
}
// ── Post-login landing: assert the replayed session actually authenticated ──
await page.goto(baseUrl + '/en/dashboard', { waitUntil: 'domcontentloaded' });Checks run
Notes from the demo run
AI-generatedWe signed into Reachvo with a fresh trial account and drove the workspace end to end: dashboard, Contacts, Companies, Segments, Outreach, Content Studio, Viral Finder, Deals, Analytics and prospect search. For a platform this broad the shell is impressively coherent, every section carries a real empty state that tells a new operator what to do next rather than dumping them into a blank grid. Two things got in the way of a clean first run, both fixable.
- Empty states that actually coachYour dashboard's 'Nothing needs your attention' and 'No suggestions yet, once your campaigns have enough activity opportunities show up here' explain the product's logic instead of just saying no data. That is rare and it lands.
- One shell, nine surfacesProspects, Campaigns, Content, Sales Pipeline and Insights all live in one sidebar with consistent headers. Navigating between Contacts, Content Studio and Deals never felt like changing products.
- Trial reaches the real workspaceSkip to Trial drops you straight into the full dashboard with 200 AI credits, not a stripped demo. An evaluator can judge the actual product in the first minute.
- Content Studio calendar errors on a fresh accountOn our very first visit to Content Studio the calendar rendered a red 'Unable to load some calendar data. Please try again.' banner before we had connected anything. A brand-new account has no calendar to load, so this reads as broken rather than empty. Worth returning the empty case as a normal empty state instead of an error.
- Paywall sits between signup and the productAfter email verification the flow lands on Select Your Reachvo Plan, and 'Skip to Trial' is a small link above the pricing tiers. Making the trial the primary button would get more evaluators into the workspace they just verified an email for.
10 visual changes
Share this run
Proof your app is not AI slop
This test was built for app.reachvo.ai — claim it free
One click copies the test and baseline screenshots into your own Lastest workspace. Re-run on every deploy and catch regressions before your users do — free, no card required.





























