In this video· click a step to jump to it
Test recording
SyncPost — app walkthrough
64,730 ms · 29,653 pixels changed
We built this regression test for syncpost.social — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against syncpost.social. 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 UA = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36';
await page.context().setExtraHTTPHeaders({ 'User-Agent': UA });
for (const p of ['**/cdn-cgi/scripts/**/email-decode.min.js','**/sentry-cdn.com/**','**/browser.sentry-cdn.com/**','**/cdn.segment.com/**','**/connect.facebook.net/**']) {
await page.route(p, function (r) { r.abort(); }).catch(function () {});
}
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, 1400); await new Promise(r => setTimeout(r, 350)); await anim(max, 0, 800); })()";
let n = 1;
const pageShot = async function (slug) {
await page.waitForLoadState('networkidle').catch(function () {});
await page.locator('h1, h2, main, [role="main"]').first().waitFor({ state: 'visible', timeout: 6000 }).catch(function () {});Checks run
Notes from the demo run
AI-generatedWe signed into SyncPost (Google/Emergent OAuth) and drove the full cross-posting workspace: composed a post in the studio, saved it as a draft, and confirmed it landed in the Posts list, then walked Calendar, Accounts, Content Studio, and Settings. The app shell is polished — a persistent left nav, a 'Trial active' badge, and a per-network composer with X/TikTok/YouTube/Threads/Bluesky toggles.
- Compose-to-draft actually works end-to-endWe typed a post in the composer, hit Save draft, and it appeared in Posts under the Drafts filter with the correct network icons and timestamp — the core loop is solid, not a mockup.
- Clean multi-surface workspaceDashboard / New post / Calendar / Posts / Accounts / Content Studio / Settings are all real, navigable surfaces with consistent styling — the product feels complete for a build-in-public launch.
- Empty accounts state before first connectEvery network shows '(not connected)' until a social account is linked; a one-click 'connect your first account' nudge on the dashboard would shorten time-to-first-real-post.
4 visual changes
Share this run
Proof your app is not AI slop
This test was built for syncpost.social — 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.











