SELF-HOSTED  ·  OPEN SOURCE  ·  FREE

playwright‑cart

collect every test run. own your test data. never lose a trace again. ship with confidence.

playwright-cart main dashboard showing test runs grouped by project and branch with pass/fail status indicators

[ workflow ]

Three steps
to start reporting.

Deploy the server

Clone the repo, run docker compose up --build. PostgreSQL, the Node/Hono API, and the React dashboard start together. Expose it on your own infrastructure — Hetzner, Fly.io, bare metal, wherever.

docker  ·  postgres  ·  hono

Add the reporter

Install @radekbednarik/playwright-cart-reporter, add it alongside the html reporter in your playwright.config.ts. Set your server URL and API key. That's two config lines.

npm  ·  playwright  ·  api-key

Run your tests

Every CI run ships screenshots, traces, and the full Playwright HTML report to your dashboard automatically. Browse history, filter by branch or commit SHA, inspect failures. Your data, your server, your rules.

ci/cd  ·  artifacts  ·  history

[ capabilities ]

Built for
engineering teams.

Centralized runs

Every project, every branch, every pipeline. One persistent place for all test history. Filter by project, branch, or commit SHA. Never lose a result to ephemeral CI logs again.

runs  ·  history  ·  projects

Rich artifacts

Screenshots, Playwright traces (.zip), and full HTML reports uploaded automatically and stored permanently on your infrastructure. View them directly in the dashboard.

screenshots  ·  traces  ·  html

Auth & roles

JWT sessions for humans, API keys for CI/CD pipelines. Role-based access control — admin users manage the system, regular users manage their username, password, and UI theme.

jwt  ·  api-keys

Truly self-hosted

No SaaS, no data leaving your network. Deploy with Docker Compose. PostgreSQL persistence with configurable data retention. You own the infrastructure, the backups, and the access.

docker  ·  postgres  ·  self-hosted

[ integrate ]

Enable reporting in your
project in 3 steps.

Published on GitHub Packages — registry auth required before install.

// 01 — configure registry

.npmrc
@radekbednarik:registry=https://npm.pkg.github.com
//npm.pkg.github.com:_authToken=${GITHUB_TOKEN}

// 02 — install

pnpm add @radekbednarik/playwright-cart-reporter

// 03 — configure reporter

playwright.config.ts
import { defineConfig } from '@playwright/test'

export default defineConfig({
  reporter: [
    ['html'],
    ['@radekbednarik/playwright-cart-reporter', {
      serverUrl: 'https://your-server.example.com',  // required
      project:   'my-app',                           // required
      branch:    process.env.BRANCH,                 // optional
      commitSha: process.env.COMMIT_SHA,             // optional
      apiKey:    process.env.PLAYWRIGHT_CART_API_KEY,  // required
    }],
  ],
})

Ready to own your
test reports?

Deploy in minutes with Docker Compose. No cloud account required.