Modern TypeScript-first automation framework demonstrating the patterns valued in product-engineering organisations — typed fixtures, rich Allure reporting, true cross-browser execution — built against the QA Lab as the reference benchmark for the Cross-Stack Series.
Playwright 1.44 · TypeScript 5.x · allure-playwright 3.x · ESLint + @typescript-eslint · Node.js 20 LTS
Rich Allure HTML report published to GitHub Pages after every CI run. Features @allure.feature / @allure.story / @allure.severity hierarchy populated via @step-decorated Page Object methods, failure screenshots attached automatically, and test history across runs.
allure-playwright 3.x · GitHub Pages View Report →GitHub Actions workflow: TypeScript check and lint gate before tests, full cross-browser run (Chromium + Firefox + WebKit) with fullyParallel: true and 4 workers, Allure report generated and deployed to GitHub Pages, scheduled Monday 08:00 UTC.
GitHub Actions · ubuntu-latest View Runs →Full TypeScript project: typed Page Objects with @step decorators, base.fixture.ts with dependency injection, types.ts interface definitions, helpers/allure.ts decorator wrapper, playwright.config.ts with 3-browser projects, GitHub Actions workflow.
Public · MIT License View Repository →Playwright is the reference framework for new automation projects — the author’s preferred stack for any greenfield engagement. It runs outside the browser via the Chrome DevTools Protocol, giving it full cross-browser reach (including WebKit / Safari), native iframe support via frameLocator(), and a best-in-class async API designed for modern JavaScript runtimes.
This is Stack 1 of the Cross-Stack Series — the benchmark against which all other stacks are compared. It demonstrates the patterns that command the most value in TypeScript-native product organisations: typed fixtures for dependency injection, @step decorators for self-documenting Allure reports, and soft assertions for multi-field validation scenarios.
Key differentiator vs other stacks: Full cross-browser execution (Chromium + Firefox + WebKit), native iframe support via frameLocator(), and fullyParallel: true at zero extra cost — none of which require paid services.
Every decision reflects real TypeScript ecosystem requirements:
14 QA Lab UI sections covered across 12 test files — the widest coverage in the Cross-Stack Series, including full iframe support not available in all stacks.
Latest GitHub Actions run · May 6, 2026 · ubuntu-latest · View all runs →
TypeScript-first stack — every tool justified by real-world engineering requirements. Zero proprietary or paid dependencies.
JavaScript-native performance testing embedded in the same repo. k6 runs in its own V8 runtime — zero friction with the TypeScript ecosystem. Grafana Cloud integration optional. Part of the Cross-Stack Performance Series.
k6 outputs detailed metrics to stdout and artifacts on CI. Optional Grafana Cloud live dashboard via --out cloud. Cold vs warm CDN comparison surfaced via request tagging: { tags: { cache: 'warm' } }. Reports retained 14 days as GitHub Actions artifacts.
Smoke on every push. Baseline on main only. Weekly Monday 08:00 UTC. Uses grafana/setup-k6-action@v1 — one-line setup in GitHub Actions. Threshold breach causes non-zero exit: p(95)<500, http_req_failed rate<0.01.
Three scripts: slo-smoke.js (5 VU, 30s), slo-baseline.js (10 staged VU, 60s), cdn-cold-warm.js (1 VU, 10 iterations). check() for per-request assertions. Synchronous VU model — no Node.js required.
Same target, different stacks. Five frameworks built against the same QA Lab UI to produce evidence-based comparisons — not vendor benchmarks.