In this video· click a step to jump to it
Test recording
pay4saas - app walkthrough
39,629 ms · 42 pixels changed
We built this regression test for pay4saas.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against pay4saas.com. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const SITE = baseUrl.replace(/\/$/, '');
const EMAIL = '[email protected]';
const PASSWORD = '•••';
let n = 0;
const shot = async (slug) => {
n += 1;
const path = screenshotPath.replace(/\.png$/, `-${String(n).padStart(2,'0')}-${slug}.png`);
await page.screenshot({ path, fullPage: true });
stepLogger.log(`Screenshot ${n}: ${slug}`);
};
const dismissCookieBanner = async () => {Checks run
Notes from the demo run
AI-generatedPay4SaaS is a $199 SaaS billing-infrastructure codebase (subscriptions, credits, lifetime); the marketing site is dense and well-organised (hero CTA, 4-tier monetization model showcase, code samples), and the dashboard surface behind email+password+OAuth is intentionally minimal (Subscription state + Display Name) since the product itself ships as code customers install.
- Strong dev-focused heroHero pivots immediately from value prop to a concrete code snippet (`if (sub.status === 'past_due') ...`) and a 'When billing goes wrong' problem framing — speaks the language of the founder buying Stripe code, not the marketing-deck language a B2B SaaS would use.
- Clean 4-mode pricing storytellingThe 'One environment variable to switch' section makes a strong technical promise that's easy to validate — quota / unlimited / credits / lifetime as a unified abstraction is rare in indie payments libs.
- Dashboard intentionally minimal post-authSettings = Display Name + read-only Email; Billing = Free Plan + 'Get Lifetime Access' CTA. The product is the code, not the SaaS dashboard, so this is correct scope rather than a gap.
- Email verification blocks self-serve evaluationSignup → 'Confirmation email sent. Please check your inbox.' with no in-page magic-link helper or test-account option. For a $199 code-purchase product the eval barrier is higher than necessary — a one-click demo account (read-only docs unlock) would convert curious devs faster.
- Supabase signup endpoint rate-limits aggressively at 429 'email rate limit exceeded'Default Supabase project config — 3 signup attempts within ~2 min from the same IP triggers a 429 with the unfriendly 'email rate limit exceeded' message, even when the emails are unique. Raise the rate-limit ceiling or surface a friendlier error ('Too many attempts — wait a minute and retry').
- Founder email exposed in two places[email protected] appears as a copy-to-clipboard button in both <main> and <footer>. Lovely for indie-hacker accessibility, but doubles the surface area for scrapers — consider deduping to footer-only.
Visual change
Share this run
Proof your app is not AI slop
This test was built for pay4saas.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.


