What you can do with Difora

Visual regression testing for teams that capture in their own CI and want screenshot comparison, storage and backups on EU-owned infrastructure.

Start with one screenshot suite. Add the workflow features you need as your team grows.

Set up your first visual review → · Open the in-app guide →

Bring screenshots from your tests

Use the Playwright fixture or screenshot helper, the Storybook test-runner hook, a Cypress recipe, or any tool that writes PNGs. Difora's public CLI uploads your suite and avoids transferring images already stored for the project.

Your CI runs the browsers. Capture each browser, viewport and theme you need, and give each variant a stable filename. Difora does not run a hosted browser farm.

Capture recipes · Open-source CLI on GitHub

See and review what changed

Inspect baseline and current screenshots side by side, highlight the diff, blend with onion view, swipe between versions, or focus on the current image. Zoom, pan, search, filter and use keyboard navigation to work through a build.

Approve or reject individual snapshots or selected groups. Review progress shows what remains. New and removed screenshots need a decision too. Choose system, light or dark appearance in the app.

Keep branches in context

Approvals update the build's branch baseline. Approved feature-branch images are recognized when they arrive on the baseline branch. When a retained successful build exists at the exact merge-base commit, Difora uses it as the comparison anchor; otherwise the review shows the fallback.

Owners can clean stale branch baselines in Settings → Branches. Active builds and open reviews are protected.

Merge-base setup and cleanup rules

Gate your CI and connect your repository

The CLI uploads, waits for comparison, prints a review link and returns an exit code your CI can use. Branch and commit detection supports nine CI providers. Parallel shards combine into one build and review, with retries and upload progress.

GitHub, GitLab and Bitbucket Cloud can receive repository statuses and an updated PR/MR summary. Provider setup and permissions are required. The CLI's optional --post-status posts a status using CI credentials; PR comments require the server integration.

GitHub Actions · GitLab CI · Bitbucket Pipelines · Other providers · Sharding

Control noise with explicit rules

Set project thresholds, draw ignore rectangles in the viewer, and save per-snapshot rules. Or keep a versioned difora.config.json beside your screenshots so the rules travel with your code. Repository rules take priority over saved UI rules.

Comparison is deterministic. Ignore rectangles use original screenshot pixels, and image dimension changes still count. Stabilize animations, data and fonts in your capture tests.

Thresholds, patterns, ignore regions and JSON schema

Send results where your team works

Owners configure email, Slack and signed webhooks in project Settings → Notifications. Choose events, send a test and inspect delivery history. Failed deliveries retry automatically; members can view the history.

Repository summaries link to the authenticated review. Screenshot thumbnails are off by default. If enabled by an owner, their preview URLs are public to anyone who has the link, and repository image proxies may cache them outside the EU. Full screenshots remain authenticated.

PR/MR permissions and preview privacy

Review together and manage your data

Invite teammates with owner or member roles. Switch between organizations, manage project CI tokens, see monthly usage and plan limits, and delete projects or your account when needed. Image retention depends on your plan.

Screenshot processing, storage and backups run on EU-owned infrastructure. Optional repository and notification integrations receive the metadata you choose to send. See the privacy policy for the data boundary.

Current availability and limits

Get started → · Plans and pilot access →