The code is here: https://github.com/TestPlanIt/testplanit
Live instance to try without signup: https://demo.testplanit.com
What it is? TestPlanit is a self-hostable test case management system with a focus on:
Managing test repositories, runs, milestones, and sessions
Tight integration with automation
A Postgres + Prisma backend that’s easy to extend or fork
It aims to cover the workflow usually handled by tools like TestRail or Zephyr, but with an open, self-hosted approach and a modern UI and is lightning fast.
Why I built it I lead QA at my company and we needed something that:
Integrated cleanly with existing automation repos
Worked well for exploratory testing, not just scripted test cases
Didn’t require per-seat licensing or cloud lock-in
Allowed contributions and customization by engineers
After trying several tools, I realized I was spending more time bending them than testing, so I started this project internally. It eventually became stable enough that I felt it was worth releasing publicly.
What’s different
A few things that might be interesting to HN readers:
Repository-first model: test cases live in a structured repo, not just inside test runs which makes automation mapping cleaner.
Automation-friendly APIs: straightforward REST endpoints so test runners can create runs, update results, attach artifacts, etc.
AI integration for writing test cases (since it's open source, you get to use your own keys)
Modern stack: Next.js 16 app router, Zenstack (Postgres via Prisma), Valkey/Redis, BullMQ, MinIO, all packaged with Docker.
Fully open source under AGPL-3.0 for self-hosted, commercial licensing available otherwise.
How to try it
I put up a demo server that allows instant access when signing in via Google or Apple SSO: https://demo.testplanit.com
Or build the docker image from source and run locally.
Notes There are no previous HN threads about this project. If anyone tries it and has feedback—technical, architectural, or UX—I'd love to hear it. I'm especially interested in whether the data model feels intuitive and whether the APIs cover the right use cases.