Recording of the visual regression run on app.usemultical.com · multical — app walkthrough.

In this video· click a step to jump to it

A
Passed

Test recording

multical — app walkthrough

53,753 ms · 0 pixels changed · matches baseline

We built this regression test for app.usemultical.com — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against app.usemultical.com. Claim it into your own workspace and re-run it on every deploy — free.

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const CFG = {"appEntry":"/","publicMaxNav":1,"steps":[{"goto":"/","dismiss":true,"label":"calendars-home"},{"clickText":"Sync Rules","label":"sync-rules"},{"clickText":"Booking Pages","label":"booking-pages"},{"clickText":"Portfolio View","label":"portfolio-view"},{"clickText":"Account","label":"account"},{"at":"/","clickText":"Add Google Calendar","label":"add-calendar"},{"at":"/","clickText":"Tour","label":"product-tour"},{"at":"/","clickText":"Sync Rules","label":"sync-rules-2"}]};
  const shot = function(i, s){ return screenshotPath.replace('.png', '-' + i + '-' + s + '.png'); };
  page.setDefaultTimeout(6000);
  // single combined noise-abort route (1 action instead of ~10)
  await page.route(function(u){ return /sentry|segment\.com|googletagmanager|google-analytics|hotjar|posthog|connect\.facebook|cdn-cgi\/scripts/.test(u.toString()); }, function(r){ r.abort().catch(function(){}); }).catch(function(){});
  let n = 1;
  const FP = CFG.fullPage !== false;
  const GOTO = 11000;
  const wait = function(ms){ return page.waitForTimeout(ms||500); };
  const dismiss = async function(){ const d = page.getByRole('button', { name: /skip|dismiss|maybe later|not now|got it|close|no thanks|continue|get started/i }).first(); if (await d.isVisible().catch(function(){return false;})) { await d.click({ timeout:2000 }).catch(function(){}); await wait(400); } };
  const clickByText = function(src){ return page.evaluate(function(s){
+55 more lines claim the test to get the full code.

Checks run

Run
Visual
Text
DOM
Network
Console
A11y
B
Perf
URL
Variables
Full report
Log in →
0
Diff px
54s
Duration
B
Accessible
WCAG 2.2 · 88
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

Multical is a calendar-syncing and booking tool 'for people who don't fit into one calendar'. Signup ends on a plan screen that explicitly says 'no credit card required' with a 'Skip for now, go to Dashboard' escape — a refreshingly low-friction trial. The app is a clean tab-based SPA: Calendars, Sync Rules, Booking Pages, Portfolio View and Account, with one-click 'Add Google Calendar' connection.

Highlights
  • No-card free trial with a real skip
    The onboarding plan step says 'No credit card required' and offers 'Skip for now, go to Dashboard' — you reach the product without a payment wall.
  • Clear feature tabs
    Calendars / Sync Rules / Booking Pages / Portfolio View map cleanly to the jobs (connect, dedupe, share availability, showcase).
  • Portfolio view differentiator
    A 'Portfolio View' on top of standard sync/booking is a nice differentiator versus generic calendar tools.
Friction points
  • Button-only navigation
    Sections are switched by in-app buttons with no deep-link URLs, so a shared link can't point a colleague straight at, say, Booking Pages.
  • Empty calendar state
    Before connecting a calendar the workspace is largely empty; a sample/connected-state preview would help first impressions.

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
tests
all passing
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
56,491 test runs recorded · 978 products tested with Lastest

This test was built for app.usemultical.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.