Marketing Site — QA Plan
Smoke
| Step | Expected |
|---|---|
Visit / | Hebrew landing renders, <html lang="he" dir="rtl">. |
Visit /en | English landing renders, <html lang="en" dir="ltr">. |
Visit /ru | Russian landing renders, <html lang="ru" dir="ltr">. |
Visit /privacy-policy, /terms-of-use, /cookie-policy, /acceptable-use, /fitness-waiver, /accessibility-statement | Each loads with no console errors. |
Waitlist flow
| Step | Expected |
|---|---|
Submit /waitlist with valid email | Toast confirms; row lands in platform_leads with source = 'waitlist'. |
| Submit with invalid email | Form-level error, no API call. |
| Submit twice with same email | Second submit is idempotent (no duplicate lead). |
SEO / accessibility
| Check | Tool | Threshold |
|---|---|---|
| Lighthouse — performance | Chrome DevTools | >= 90 on the index page. |
| Lighthouse — accessibility | Chrome DevTools | >= 95. |
| Sitemap | /sitemap-index.xml | Lists all locale entry pages. |
| OpenGraph tags | Source view on / | Title, description, image present. |
Localization
| Step | Expected |
|---|---|
| Switch locale via the language selector | URL updates to /en or /ru; layout direction flips for Hebrew. |
Direct-link to /he/... (legacy) | Redirects to /.... |
Legal copy integrity
- Privacy / terms / AUP must match the canonical copy reviewed by counsel. Diff-flag any unreviewed change in PR review.
Deployment
- Vercel preview must build clean on every PR. Failed builds block merge.
- Railway deploy is verified once per release as the cold-standby surface.