Visual bugs got past test suites that passed. TestivAI is the tool I wanted for catching them.
Three problems kept coming up.
1. Green CI, broken layout: unit and integration tests pass while a layout breaks, because they do not look at the page.
2. Noisy screenshot diffs: a timestamp or a font-rendering difference fails a comparison, and each one needs a person to look at it.
3. CI time: visual tests add browser time to every build, so they have to fit the pipeline you already run.
The approach: save the DOM and computed styles with every screenshot. A diff is read as a kind of change, not a count of pixels. A timestamp is one ignoreSelectors entry, not 100 reviews.
I'm Budi Sugianto. I build and maintain TestivAI.
The visual testing tools I used raised too many false positives and said too little about what changed. A timestamp could fail dozens of comparisons.
TestivAI saves the DOM and, on most adapters, computed styles with each screenshot, and attributes each changed region to an element. It labels likely render noise instead of hiding it, and lets you ignore dynamic content by selector.
It is free and open source. If you try it, tell me what works for your team and what does not.
npx testivai witness <url> finds and captures your pagesIssues and feedback on GitHub.