In this video· click a step to jump to it
Test recording
OpenChapter — app walkthrough
78,236 ms · 0 pixels changed · matches baseline
We built this regression test for openchapter.io — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against openchapter.io. 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 ORIGIN = new URL("https://openchapter.io/dashboard/saved").origin;
page.setDefaultTimeout(8000);
page.setDefaultNavigationTimeout(22000);
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(){});
// block heavy third-party noise: speeds networkidle + removes console-error reds
for (const pat of ['**/client.crisp.chat/**','**/widget.intercom.io/**','**/*.intercomcdn.com/**','**/js.stripe.com/**','**/*.sentry-cdn.com/**','**/*.sentry.io/**','**/cdn.segment.com/**','**/*.hotjar.com/**','**/*.fullstory.com/**','**/connect.facebook.net/**','**/googletagmanager.com/**','**/google-analytics.com/**','**/cdn-cgi/scripts/**/email-decode.min.js']) {
await page.route(pat, function(r){ r.abort().catch(function(){}); }).catch(function(){});
}
// Scenario 1: public hero
await page.goto("https://openchapter.io/", { waitUntil: 'domcontentloaded' });Checks run
Notes from the demo run
AI-generatedOpenChapter (formerly SquarePages) is a free public-domain eBook library. A free account unlocks a personal dashboard - Liked Books, Book History, custom Bookshelves, and send-to-Kindle - on top of a catalog browsable by category, Top Books, and New Books. Registration auto-signs you in with no email-verification gate, so a new reader is one form away from saving and organizing books.
- Instant auto-session on signupCreating an account logs you straight into the dashboard with no email-verify wall - the fastest possible path from 'sign up' to 'use the product', which is increasingly rare in 2026.
- The free-account value is spelled out up frontThe register page lists exactly what an account unlocks (send-to-Kindle, custom bookshelves, reading list) instead of a generic 'create account' - good expectation-setting.
- Catalog is fully browsable pre-authDiscover, Top Books, New Books and every category are open without an account, so readers can evaluate the library before committing - then the account adds the personal layer on top.
- /dashboard lands on Account settingsThe dashboard root is an 'Account Information' settings page (with password fields) rather than a reading-focused home; a new user expects their library, not a settings form, as the first authenticated screen.
- Rebrand banner + cookie dialog crowd first paintThe 'SquarePages is now OpenChapter' banner persists on every page (including authenticated ones) and a cookie dialog overlaps the hero on first load - both eat vertical space above the catalog.
Share this run
Proof your app is not AI slop
This test was built for openchapter.io — 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.