In this video· click a step to jump to it
Test recording
Medha — authenticated app walkthrough
35,259 ms · 0 pixels changed · matches baseline
We built this regression test for trymedha.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against trymedha.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 findings = [];
async function settle(ms) {
await page.waitForLoadState('networkidle').catch(function () {});
await page.waitForTimeout(ms || 1500);
}
// ---- Scenario 1: Dashboard (authed) ----
stepLogger.log('Scenario 1: Dashboard');
await page.goto(baseUrl + '/dashboard', { waitUntil: 'domcontentloaded' });Checks run
Notes from the demo run
AI-generatedMedha quietly captures what you learn from AI assistants (ChatGPT, Claude, Cursor, etc.) and builds a spaced-repetition review schedule so it sticks. The authenticated app is clean and calm: the dashboard leads with a monthly capture quota meter and an honest empty state, the Library lists captured concepts, the Setup hub is genuinely well-built (a Browser-Extension path AND an MCP path with per-tool config tabs for Claude Desktop, Claude Code, Cursor and VS Code, plus a troubleshooting FAQ), and Profile lets you set a learning goal and a weekly review-reminder schedule. Google OAuth + magic-link sign-in, no password.
- Setup hub is the strongest screenThe /setup page is unusually thorough for an indie product: it offers both a Chrome extension and an MCP server, with copy-paste config tabs for Claude Desktop, Claude Code, Cursor and VS Code, a step-by-step walkthrough, and a real troubleshooting section. This is the page that earns trust.
- Learning-goal personalisationThe profile lets you state a learning goal ('preparing for ML interviews', etc.) that Medha uses to prioritise which concepts to extract. Tying capture to an explicit goal is a smart retention hook.
- Honest, low-pressure empty stateThe dashboard's 'Your knowledge base is empty' with a capture quota meter (0/50, resets monthly) sets expectations calmly and points to the two ways to start capturing.
- Core value is gated behind an installBecause capture happens via the Chrome extension or an MCP server, a brand-new web-only user sees three empty screens (Dashboard, Library, and a Map that currently errors with 'Missing authorization') before any value. A built-in 'paste a conversation to try capture' path on the web would let evaluators feel the product before installing anything.
- Map view errors for new accountsNavigating to /map on a fresh account returns a raw '{"detail":"Missing authorization"}' JSON body instead of an empty-state or a redirect. Worth guarding with the same friendly empty-state the Library uses.
- Marketing vs app splitThe journey from the marketing site into /dashboard is a little abrupt; a clearer first-run checklist (install extension -> have one conversation -> see your first concept) would smooth activation.
Share this run
Proof your app is not AI slop
This test was built for trymedha.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.