In this video· click a step to jump to it
Test recording
PostSwift — app walkthrough
23,800 ms · 113,331 pixels changed
We built this regression test for www.postswift.co — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against www.postswift.co. 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/132.0.0.0 Safari/537.36' });
await page.route('**/cdn-cgi/scripts/**', function (r) { return r.abort(); }).catch(function () {});
await page.route('**/*sentry-cdn.com/**', function (r) { return r.abort(); }).catch(function () {});
let postLoginActions = 0;
// --- 1. Authenticated publishing dashboard ------------------------------
stepLogger.log('Publishing dashboard (authenticated landing)');Checks run
Notes from the demo run
AI-generatedWe signed in with Google and drove the scheduler end to end: list and calendar views, the account panel, then the composer. Writing a post, previewing it, opening per-platform customisation and saving a draft all worked first time, and reopening that draft brought the text back intact. The composer is the strongest part of the product and it holds up under an agent driving it blind.
- Draft round-trip is solidSave Draft returns you straight to the Drafts queue, and Edit reopens the post with the body text intact. No lost work, no confirmation dance.
- Composer opens in one click from anywhereNew Post is in both the sidebar and the header, so there is no hunting for the primary action from any view.
- Brain Storage is a dead end in the main navIt sits in the sidebar between Short video maker and Connected Platforms, and clicking it renders only 'Something new is coming...'. A new user clicks it, gets nothing, and learns the nav is not trustworthy. Worth hiding behind a flag or badging it 'Soon'.
- The composer's right half is empty until a platform is connectedPost Previews stays on 'Select platforms to see post previews' for every brand-new account, so roughly 40% of the composer is dead space at exactly the moment someone is deciding whether to stay. A generic preview card would fill it.
11 visual changes
Share this run
Proof your app is not AI slop
This test was built for www.postswift.co — 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.
































