In this video· click a step to jump to it
Test recording
ChatView — app walkthrough
71,431 ms · 255,063 pixels changed
We built this regression test for chatview.app — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against chatview.app. 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 STAMP = Date.now().toString(36).slice(-4);
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, 1300); 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/132.0.0.0 Safari/537.36' });
const go = async (path, waitText) => {
await page.goto(baseUrl + path, { waitUntil: 'domcontentloaded' });
await page.waitForLoadState('networkidle', { timeout: 6000 }).catch(function () {});
await page.getByText(waitText).first().waitFor({ state: 'visible', timeout: 20000 }).catch(function () {});
await page.waitForTimeout(1600);Checks run
Notes from the demo run
AI-generatedWe registered a ChatView account and drove the signed-in surface: the account page, developer settings where we issued a real personal access token for the ChatView MCP server, and then twelve weeks of Ship It, your solo founder board game. Two things stood out. The developer page is unusually honest for an indie product, it tells you exactly which env var the token goes in and which clients it works with, so the path from signup to a working MCP integration is one screen. And Ship It is not a marketing toy: it has real resource economics (two actions a week, runway tokens, evidence/build/quality/debt/reach), a puzzle desk that rejects a wrong answer with a reason, and a founder journal that accumulates. That is a genuinely good piece of content marketing sitting behind your login.
- Token page names the env var and the clients'Install @doculearn/chatview-mcp in Claude Desktop, Cursor, or Windsurf, and paste your token into the CHATVIEW_TOKEN env var' sits directly under the generate button. Most products make you leave for docs at exactly this moment.
- Ship It has real mechanics, not a quizTwo actions per week against runway, and spending one on a wrong puzzle answer returns 'That answer does not satisfy the brief. One action spent; no resources taken.' Consequences make it worth replaying, which is rare for a game bolted onto a SaaS site.
- Signup drops you straight into the productFive fields, no email verification wall, and you land on the account page with a 7-day premium trial already active.
- Generated tokens default to never expiringThe expiry field defaults to blank and the resulting token lists as 'never expires'. For a long-lived credential that goes into an MCP config on a laptop, defaulting to 90 days with an explicit 'never' opt-in would be the safer default, especially given the page's own advice to treat them like passwords.
- The account page leads with a pricing tableAfter signing up, the first thing under 'Welcome, Last' is 'CHOOSE YOUR PLAN' with three Subscribe buttons. The free 7-day trial you just granted is not visible as state anywhere on that screen, so it reads as a paywall rather than a trial in progress.
- /account subscribe·We never start a checkout on a founder's product.
- /delete-account·Destructive.
4 visual changes
Share this run
Proof your app is not AI slop
This test was built for chatview.app — 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.











