In this video· click a step to jump to it
Test recording
Peridot — customer-research workspace walkthrough
45,671 ms · 0 pixels changed · matches baseline
We built this regression test for app.askperidot.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against app.askperidot.com. 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, slug) => screenshotPath.replace('.png', `-${n}-${slug}.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, 1100); await new Promise(r => setTimeout(r, 250)); await anim(max, 0, 600); })()";
const routeBlock = async (p) => {
for (const pattern of ['**/cdn-cgi/scripts/**/email-decode.min.js','**/sentry-cdn.com/**','**/browser.sentry-cdn.com/**','**/cdn.segment.com/**','**/connect.facebook.net/**','**/www.googletagmanager.com/**']) {
await p.route(pattern, function (r) { r.abort(); }).catch(function () {});
}
};
await routeBlock(page);
await page.context().setExtraHTTPHeaders({ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36' }).catch(function () {});
const settle = async () => { await page.waitForLoadState('networkidle').catch(function () {}); await page.locator('main, [role="main"], h1, h2').first().waitFor({ state: 'visible', timeout: 6000 }).catch(function () {}); };Checks run
Notes from the demo run
AI-generatedPeridot is a customer-research workspace: it turns user-interview recordings and transcripts into a searchable, theme-able insight library so teams don't re-watch calls. This Lastest baseline signs in (email one-time-code) and walks the authenticated workspace end to end: the Home/project library with recording-hour and text-record quotas, creating a project, the Dovetail import path, global theme search, the insights Library, Connections/integrations, settings and notifications.
- Searchable memory is the pitch, and it showsA persistent 'Find themes' search plus a global 'Search across projects and studies' bar make the core promise — never re-watch an interview — the first thing you reach for, not a buried feature.
- Migration on-ramp from DovetailAn 'Import from Dovetail' button sits right on the home toolbar — smart wedge for pulling teams off the incumbent rather than asking them to start from an empty workspace.
- Honest usage quotas up frontThe sidebar shows Recording Hours (0.0/2) and Text Records (0/50) with a clear Upgrade-to-Growth path, so a free user always knows the limits.
- Long onboarding before the productSign-in is followed by a 3-step setup (workspace -> personal account -> 'what video tool do you use?'). The video-tool step's skip button stays disabled until a choice is made, so there's no true fast-path into the app.
- Empty workspace zero-stateAfter setup you land on a single auto-created 'My First Project' with 0 folders and empty quotas. A sample project with a pre-loaded interview would let an evaluator feel the search/themes magic immediately.
- Value gated behind real recordingsThe aha (themes across interviews) needs uploaded recordings/transcripts, so a brand-new user can't experience it without doing work first. A demo dataset toggle would shorten time-to-value.
Share this run
Proof your app is not AI slop
This test was built for app.askperidot.com — 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.