In this video· click a step to jump to it
Test recording
Nichestarter — app walkthrough
129,952 ms · 243 pixels changed
We built this regression test for www.nichestarter.ai — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against www.nichestarter.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/**', '**/googleads.g.doubleclick.net/**'];
for (const pattern of noise) {
await page.route(pattern, function (r) { return r.abort(); }).catch(function () {});
}
// ── 1. Post-login landing: the founder dashboard ──
await page.goto(baseUrl + '/dashboard', { waitUntil: 'domcontentloaded' });Checks run
Notes from the demo run
AI-generatedWe signed into Nichestarter with Google and drove the authenticated product across all three surfaces: the dashboard's Projects, Subscribed Topics, Created Topics, Discover Channel, Opportunities and Weekly Reports sections, an actual weekly discovery report, then NicheReach, NicheMatch and Projects. For a three-product bundle the single-account, single-dashboard framing holds together well, and the archive of past weekly reports means a new signup has something real to read on day one instead of an empty shell.
- Day-one content instead of an empty stateThe Weekly Reports archive already carries dated discovery reports (September 7, August 31 and earlier) with top-10 pain points each. A brand-new account can read a real report in its first minute, which is the hardest thing for a discovery product to get right.
- Projects is honestly framed as the hub'Your project is the home' explains that Topics come first and a project binds Nichestarter monitoring, NicheReach inbox and NicheMatch together. It tells a new user the order to do things in rather than presenting three equal doors.
- Free tier is not a demo shellThe Free Tier badge sits next to a dashboard where every section is reachable, and the GTM Coach install is explicitly marked as needing no Premium.
- Onboarding asks for skills before showing any valueStraight after Google sign-in the app asks you to tag your tech stack before it will hand over the dashboard. Since the weekly report archive is already populated and impressive, letting people see one report first and collect skills afterwards would likely convert better.
- Dashboard sections are buttons, not linkable routesProjects, Subscribed Topics, Opportunities and the rest all live under /dashboard with no per-section URL, so a user cannot bookmark or share 'my opportunities'. Adding routes or hash state would make the dashboard linkable.
Visual change
Share this run
Proof your app is not AI slop
This test was built for www.nichestarter.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.


