In this video· click a step to jump to it
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){Checks run
Notes from the demo run
AI-generatedBillingServ 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.
- Privacy-friendly ALTCHA instead of reCAPTCHASignup 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 wizardThe 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 cockpitAccount 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.
- Dashboard/Manage deep-links bounce to the wizardUntil 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-livedThe 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
Share this run
Proof your app is not AI slop
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.








