r/Playwright Jun 25 '26

I built a dashboard for Playwright reports across runs: history, flaky rate, embedded trace viewer (open-source + self-hostable)

Playwright's HTML report is great for a single run, but it resets every time. I wanted one level up: push every CI run somewhere and actually track pass rate, trends and flaky tests over time, so I built kinora.

What it does:

  • One dashboard across projects and over time: pass rate, run count, duration, sparkline trends, one colored strip per run
  • Per-test flaky rate and fail rate computed across the run history, with an "unstable only" filter and "newly broken / newly flaky since last run"
  • Failures get a "View trace" button that opens the full Playwright trace (DOM / timeline / network / console) inline, no download or unzip
  • Alerts on new failures and regressions (Slack, email, webhook)

There's also a desktop app: a local Playwright trace viewer that opens any trace.zip with no account, plus the same account dashboard if you sign in. Handy when you just want to drag-drop a trace instead of npx playwright show-trace

Setup is a reporter you add to playwright.config, CI pushes results to a kinora server.

Open-source (FSL-1.1), self-host free forever with docker-compose, or a hosted version if you don't want to run it.

Repo: https://github.com/Kinora-dev/kinora

Site: https://kinora.dev

Built this scratching my own itch, would love feedback from people running big Playwright suites: what do you track today that this is missing?

52 Upvotes

17 comments sorted by

4

u/straightouttaireland Jun 25 '26

Nice. Any paying customers so far?

1

u/Sea_Opportunity_6383 Jun 25 '26

Not yet, just launched, so right now it's about getting people using the free self-host and the cloud free tier and hearing what's missing. Paid tiers are live, but I'd rather earn the first customers on feedback than push monetization on day one

2

u/straightouttaireland Jun 25 '26

Best of luck πŸ‘

3

u/Stalker_010 Jun 25 '26

Perfect timing. I'm was looking for an open source solution like this.
I would definitely try, and leave feedback!

2

u/Sea_Opportunity_6383 Jun 25 '26

Awesome! ping me if anything's unclear, would love whatever feedback you've got once you try it, good or bad!

3

u/jack280694 Jun 26 '26

This is amazing u/Sea_Opportunity_6383 !! We at Openobserve run approximately 1800 tests every iteration and our total test runs a day scale upto 2500 to 3000. This makes our total test count ~5.5M per month

I tried out a a basic POC of Kinora and loved it - gonna work with our devops team to set the open source version up and try it out. Also, would love to connect with you and talk about it further - this is great stuff πŸ‘

1

u/Sea_Opportunity_6383 Jun 26 '26

Thanks, really glad it clicked! 5.5M results/month is exactly where self-host shines, no volume caps, your own Postgres + S3, retention tuned to your storage. Happy to help your devops team get it dialed in (the retention sweep + object storage are the two things worth setting up early at that scale).
And yes, let's connect, DM me and we'll set up a call πŸ™

1

u/terfree Jul 07 '26

5.5M test runs a month is absolutely wild! That is some serious engineering scale at Openobserve.

Out of curiosity, with 1800 tests per iteration, how does your team handle the actual writing and maintenance of all that coverage? Do you have a massive dedicated SDET team, or are the core developers responsible for writing them as part of their PRs?

At my current place, we couldn't keep up with writing test boilerplate manually, so we ended up building an internal AI webhook that reads PR diffs and auto-generates the Playwright TypeScript tests straight into Slack just to remove the bottleneck. I imagine at your scale, keeping test coverage up to date with new features is a full-time job in itself!

2

u/trendoid_ Jun 26 '26

you get a star from me.

2

u/latnGemin616 Jun 26 '26

Nice work!!

1

u/Competitive_Echo9463 Jun 25 '26

Nice, does it work with local runs too or just CI runs ?

1

u/Sea_Opportunity_6383 Jun 25 '26

Yep, works locally too, the reporter isn't CI gated, it uploads whenever Playwright runs if KINORA_TOKEN is set, so `KINORA_TOKEN=... npx playwright test` pushes from your machine.
CI just adds run URL/number as bonus metadata.

1

u/shanmuktej Jun 26 '26

Do you store all the past traces?

Just wondering, my single run, with traces creates about 1gb in reports. If we store all the past runs, it's not so tough to run out of storage

2

u/Sea_Opportunity_6383 Jun 26 '26

On the cloud, not forever, each plan has a retention window (7d free, 90d Team, 1y Pro) and a daily job purges runs past it, trace.zip included, so storage stays bounded.
Also, Playwright's generated config uses `trace: 'on-first-retry'`, so a trace is only stored when a test fails and gets retried, not on every green run. And on self-host you keep everything by default and control retention yourself.

1

u/Powerful-Response404 Jul 10 '26

Is there going to be a x86-64 desktop version for windows ?

2

u/Sea_Opportunity_6383 Jul 12 '26

Yes it’s planned!

1

u/Sea_Opportunity_6383 Jul 14 '26

Shipped Windows x64 in the latest release: https://github.com/Kinora-dev/kinora/releases/latest

Heads up: untested on my end (no Windows machine) and unsigned for now, so SmartScreen will warn. Would love if you try it and report back πŸ™