The homepage and pricing page load correctly. Signup breaks for emails containing "+" — a common address pattern. The checkout flow fails silently on card validation: no error message appears when an invalid card is used. Dashboard job list has a noticeable blank flash on first load. Found 4 bugs total: 1 high, 2 medium, 1 low.
1. Go to /pricing 2. Click "Get started" on Pro plan 3. Enter card number 4000 0000 0000 9995 (decline test) 4. Fill valid expiry/CVC 5. Click "Subscribe"
Error message: "Your card was declined. Please try a different card."
Button spinner runs for 3s, then stops. No error displayed. Form appears ready to resubmit. User has no way to know the charge failed.
POST /api/checkout/create-session → 200 but Stripe returns decline_code: insufficient_funds1. Go to /signup 2. Enter email: jane+work@example.com 3. Enter valid password 4. Click "Create account"
Account created, redirect to dashboard
Inline error: "Please enter a valid email address." — The "+" character is valid per RFC 5321 and used by ~8% of Gmail users for email aliases.
POST /api/auth/signup → 422 {"error":"Invalid email format"}1. Complete signup 2. Observe /dashboard immediately after redirect
Skeleton loader or spinner while data fetches
Completely blank white area for ~1.4s before job list renders. Looks like the page is broken.
GET /api/jobs → 200 after 1412ms (slow Supabase cold start)1. Navigate to /pricing 2. Check browser tab title
"Pricing — AcmeSaaS"
"App" — metadata title not set for pricing route
| Method | Path | Status | Time | Size |
|---|---|---|---|---|
| GET | / | 200 | 198ms | 42 KB |
| GET | /pricing | 200 | 167ms | 38 KB |
| POST | /api/auth/signup | 422 | 341ms | 1.2 KB |
| POST | /api/auth/signup | 200 | 287ms | 0.8 KB |
| GET | /dashboard | 200 | 154ms | 55 KB |
| GET | /api/jobs | 200 | 1412ms | 3.1 KB |
| GET | /pricing | 200 | 163ms | 38 KB |
| POST | /api/checkout/create-session | 200 | 834ms | 1.8 KB |
| GET | /_next/static/chunks/main.js | 200 | 89ms | 124 KB |
Every report ships as a structured prompt you can paste directly into Cursor, Claude, or GPT-4. No copy-pasting bugs manually — your agent gets the full context instantly.
# BetaWindow QA Report — AcmeSaaS (demo) ## Tester Summary The homepage and pricing page load correctly. Signup breaks for emails containing "+" — a common address pattern. The checkout flow fails silently on card validation: no error message appears when an invalid card is used. Dashboard job list has a noticeable blank flash on first load. Found 4 bugs total: 1 high, 2 medium, 1 low. ## Bugs Found ### Bug 1: Checkout silently fails on invalid card — no error shown [HIGH] Steps to reproduce: 1. Go to /pricing 2. Click "Get started" on Pro plan 3. Enter card number 4000 0000 0000 9995 (decline test) 4. Fill valid expiry/CVC 5. Click "Subscribe" Expected: Error message: "Your card was declined. Please try a different card." Actual: Button spinner runs for 3s, then stops. No error displayed. Form appears ready to resubmit. User has no way to know the charge failed. ### Bug 2: Signup rejects emails with "+" alias (e.g. user+test@gmail.com) [MEDIUM] Steps to reproduce: 1. Go to /signup 2. Enter email: jane+work@example.com 3. Enter valid password 4. Click "Create account" Expected: Account created, redirect to dashboard Actual: Inline error: "Please enter a valid email address." — The "+" character is valid per RFC 5321 and used by ~8% of Gmail users for email aliases. ### Bug 3: Dashboard blank for 1.4s on first load — no loading state [MEDIUM] Steps to reproduce: 1. Complete signup 2. Observe /dashboard immediately after redirect Expected: Skeleton loader or spinner while data fetches Actual: Completely blank white area for ~1.4s before job list renders. Looks like the page is broken. ### Bug 4: Page title unchanged on /pricing — shows generic "App" in tab [LOW] Steps to reproduce: 1. Navigate to /pricing 2. Check browser tab title Expected: "Pricing — AcmeSaaS" Actual: "App" — metadata title not set for pricing route Please fix the bugs above in order of severity. Start with the highest-severity issues.
Submit your URL. A real human tester runs a live session with network log + console capture. Report delivered in minutes.