In this video· click a step to jump to it
Test recording
Baton — app walkthrough
103,240 ms · 152,465 pixels changed
We built this regression test for baton.hustleworld.app — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against baton.hustleworld.app. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const UA = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36';
await page.context().setExtraHTTPHeaders({ 'User-Agent': UA }).catch(() => {});
for (const pat of [
'**/cdn-cgi/scripts/**/email-decode.min.js',
'**/browser.sentry-cdn.com/**',
'**/cdn.segment.com/**',
'**/connect.facebook.net/**',
'**/www.googletagmanager.com/**',
'**/static.hotjar.com/**',
]) { await page.route(pat, r => r.abort()).catch(() => {}); }
Checks run
Notes from the demo run
AI-generatedWe signed up for Baton, skipped the Drive connect, created a real project (Riverside Solar Farm — Phase 2, 450 kW, Bristol) and walked the whole workspace: dashboard, Project Hub, the project record, Team, Settings and Billing. The thing that stands out is how hard your product works to keep the field crew out of the account system — the six-digit project code on the project page, and the Team page explicitly listing 'who does not need an account', is a genuinely unusual and confident piece of product design for this category.
- The six-digit crew code is the whole pitch, on one screenYour project page ends with 'Share the code with the crew' and six big digits. No install, no seat, no login for the people actually holding the phone. That single panel explains the product better than the landing page does.
- Team page sells the seat model instead of hiding it'Who does not need an account' — field crew and handover recipient — pre-empts the exact objection an EPC office manager would raise about per-seat pricing. Most tools bury this in a pricing FAQ.
- Empty states name the next action'Create your first project above, then share its code with the crew on site' and 'Nameplate photos taken on site appear here' tell a first-time visitor what the populated state will look like. Our walk never hit a dead-end blank panel.
- Handover format asks the right question earlyThe 'where you say Manufacturer, they might say Panel Brand' framing on the project page turns a boring column-mapping feature into something an EPC immediately understands.
- Capacity unit silently rescales after saveWe typed 450 into 'Project capacity' with the field suffixed 'kW', but the saved project header reads '0.5 MWp'. The input says kW and the record says MWp, so 450 became 0.5 — correct maths, but a user checking their own data will read it as wrong. Worth echoing the unit on save, or letting people pick kW/MWp on the form.
- Onboarding restarts from step 1 on reloadReloading mid-wizard put us back at 'What's your company name?' rather than resuming at the Drive step. One-line fix: persist the wizard step with the workspace record.
- /connect-drive·Skipped the Google Drive OAuth — we don't connect third-party accounts on a founder's behalf. Handover generation is the part that needs it.
12 visual changes
Share this run
Proof your app is not AI slop
This test was built for baton.hustleworld.app — 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.



































