Recording of the visual regression run on id.baseserv.com · billingserv — app walkthrough.

In this video· click a step to jump to it

I
Passed ✓

Test recording

billingserv — app walkthrough

33,523 ms · 7,197 pixels changed

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

Take this test with you

This is a real Playwright test, recorded against id.baseserv.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":"/admin","publicMaxNav":0,"fullPage":true,"steps":[{"goto":"/admin","dismiss":true,"waitMs":1800,"label":"launch-instance-wizard"},{"fill":[{"sel":"#form\\.address1","value":"1 Demo Street"},{"sel":"#form\\.city","value":"London"},{"sel":"#form\\.zip","value":"EC1V 8BT"}],"waitMs":1300,"label":"instance-address-filled"},{"goto":"/admin/invoices","waitMs":1800,"label":"invoices"},{"fill":[{"sel":"#input-1, input[type=search]","value":"INV-2026","seq":true}],"waitMs":1100,"label":"invoices-search"},{"goto":"/admin/account-security","waitMs":1700,"label":"account-security-2fa"},{"goto":"/admin/my-account","waitMs":1700,"label":"my-account"},{"fill":[{"sel":"#form\\.vatNumber","value":"GB123456789"}],"waitMs":1100,"label":"my-account-profile-filled"},{"fill":[{"sel":"input[placeholder*=\"Start typing to search\" i]","value":"United Kingdom","seq":true}],"waitMs":1300,"label":"my-account-country-search"}]};
  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
14.62%
Text
—
DOM
✓
Network
—
Console
✓
A11y
B
Perf
✓
URL
✓
Variables
—
Full report
Log in →
7,197
Diff px
34s
Duration
B
Accessible
WCAG 2.2 · 85
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

BillingServ is cloud billing & invoicing software for SaaS, hosting, VPN and service businesses (recurring billing, online invoicing, subscriptions, payment collection). Sign-in runs through a shared BaseServ Identity SSO with an ALTCHA (privacy-friendly, no-Google) captcha and an email-verify. The authenticated control panel covers a "Launch your BillingServ instance" provisioning wizard (address + plan + instance URL), an Invoices history, Account Security (with 2FA) and a My Account profile — the account/billing cockpit a new customer manages before and after provisioning.

Highlights
  • Privacy-friendly ALTCHA instead of reCAPTCHA
    Signup is protected by ALTCHA, a self-hosted proof-of-work captcha with no Google dependency — a thoughtful, GDPR-friendly choice that still gates bots.
  • Clear instance-provisioning wizard
    The control panel opens on a guided "Launch your BillingServ instance" form (where it runs, the secure admin login, the instance URL) — a clean mental model for a self-hosted/provisioned product.
  • 2FA and a real account cockpit
    Account Security offers Two-Factor Authentication and the My Account profile collects full billing identity (address, country, VAT number) — the security and tax hygiene a billing vendor should model.
Friction points
  • Dashboard/Manage deep-links bounce to the wizard
    Until an instance is provisioned, /admin/dashboard and /admin/manage silently redirect to the provisioning form; a visitor following a deep link sees the wizard rather than a clear "provision first" explainer.
  • Email-verify link is short-lived
    The activation link expires in 60 minutes; a user who registers and steps away can return to a dead link and have to re-request it.
  • Two-brand split (BillingServ vs BaseServ)
    Sign-in lives on id.baseserv.com while the product is billingserv.com; the brand switch mid-flow can read as confusing without a one-line "BaseServ is our identity provider" note.

3 visual changes

Step 266 px changed
Before
Before
After
After
Diff
Diff
Step 35,351 px changed
Before
Before
After
After
Diff
Diff
Step 81,780 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,275 test runs recorded · 1,164 products tested with Lastest

This test was built for id.baseserv.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.