In this video· click a step to jump to it
Test recording
envoice — marketing + signup is broken (CORS bug blocks 100% of registrations)
63,911 ms · 66,459 pixels changed
We built this regression test for envoice.site — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against envoice.site. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const STAMP = Math.floor(Date.now() / 1000).toString(36);
const USERNAME = `viktor${STAMP}`;
const EMAIL = `viktor${STAMP}@lastest.cloud`;
const PASSWORD = `•••`;
const SITE = 'https://envoice.site';
// Collect findings across the run; throw with a summary at the end so all
// screenshots fire first and the share has full coverage even on failure.
const findings = [];
const note404 = async (label) => {
const bodyText = await page.locator('body').innerText().catch(() => '');Checks run
Notes from the demo run
AI-generatedEnvoice (@Caesarkuta on X, just-launched today, envoice.site) is a professional invoicing platform targeting freelancers, startups, and growing businesses. The marketing site is polished — clean blue accent, clear hero ("Invoice Smarter. Get Paid Faster."), six feature cards (Smart Invoicing / Client Management / Analytics Dashboard / Fast & Reliable / Secure by Default / Work Anywhere), and a 3-field signup (username + email + password) with no captcha, no email-verify gate, no plan-selection wall. Built with Next.js + NestJS, backend hosted on Railway. Tested by walking the public surface and attempting registration. **One critical issue surfaced — see frictionPoints.**
- Cleanest signup form of the day3 fields (username, email, password ≥8 chars), no captcha, no confirm-password, no OAuth-mandatory path. After 5 indie SaaS demos this session — most of which gate signup behind magic-link or Cloudflare Turnstile or Stripe — this is the only one with a frictionless on-page registration. (Once the underlying API works, see frictionPoints.)
- Marketing voice matches audience"Invoice Smarter. Get Paid Faster." + "professional invoicing for freelancers, startups, growing businesses" is targeted without being narrow. Not trying to be enterprise; not trying to be quirky. Clear positioning.
- Has a /security page in navIndie SaaS rarely ship security pages at launch — most don't ship them ever. Having one in the footer the day of launch signals the founder is thinking about trust upfront.
- 🚨 100% of signups are broken — CORS misconfiguration on the production APIThe signup form fills cleanly with 3 fields and the 'Create Account' button submits, but the request fails before reaching the backend. Browser console shows: "Access to fetch at 'https://envoice-production.up.railway.app/auth/register' from origin 'https://www.envoice.site' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource." The frontend retries 3 times across ~80s then shows 'Error: Something went wrong. Please try again.' to the user. **Every visitor who tries to sign up right now hits this.** Fix: add `Access-Control-Allow-Origin: https://www.envoice.site` (or `https://envoice.site`) to the Railway backend's CORS allowlist for the `/auth/*` routes, including OPTIONS preflight responses. Probably a one-line config change in the NestJS app.
- Backend is on a default Railway subdomainThe API endpoint is `envoice-production.up.railway.app` — Railway's default generated subdomain. Adding a vanity API subdomain (e.g. `api.envoice.site`) would be a small trust improvement for security-conscious users inspecting devtools and is necessary to make the CORS config more permanent. Configuring a custom domain in Railway takes ~5 min and lets the signup flow keep working even if the Railway subdomain gets rotated.
- Login form has same likely-broken backend dependencySame Next.js + NestJS pair — if the CORS misconfig is at the API level (not route-specific), the /login endpoint is probably also blocked. Worth verifying with a manual test once the CORS fix lands.
- /dashboard authed·Cannot create an account until the CORS fix lands
2 visual changes
Share this run
Proof your app is not AI slop
This test was built for envoice.site — 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.





