beta
Documentation

Projects

A project maps to a single web application you want to monitor. It lives inside an organization and holds all the environments, pages, and batch runs for that application.

Creating a project

Click New project inside your organization. Project names may contain letters, numbers, spaces, and hyphens (2–50 characters). deploydiff generates a URL-safe slug from the name automatically.

Members and roles

Org Owners and Admins have full access to every project automatically — no explicit membership needed. Org Members must be added to a project individually and receive one of two project-scoped roles:

RoleWhat they can do
MemberView results; add, edit, and remove pages; enable pages per environment; trigger capture and diff batches
ParticipantView-only access to all project content

Manage project members from the project's Members page.

Pinning

Pin a project to make it appear at the top of your organization dashboard. Use the Pin action from the project settings.

Diff config

Controls how screenshots are compared and how the result is judged, for every environment of the project. Each setting can be overridden per page, because how noisy a page is and how much it may legitimately change are properties of its content, not of the environment it runs in.

A comparison Fails if either threshold is exceeded, and Passes only when it stays at or below every threshold that is set; at least one of the two must be set. The percentage cap scales with page size; the absolute pixel cap catches large changes that would otherwise stay a small percentage of a very tall page.

Every diff task records the tolerance and the thresholds it was actually judged against, visible on the task detail page and in its raw result.

Capture config

Neutralises unstable parts of a page just before it is captured, for every environment of the project. Pages can add their own. Unlike the pixel color tolerance, nothing here changes what a capture costs — it is DOM work done inside the capture.

Choosing between the two lists matters. Painting fixes unstable content in a stable box; hiding fixes an unstable box. A cookie banner present on staging and absent on production, if painted, leaves a colored block on one capture and nothing on the other — everything below shifts and the comparison reports a large difference that is pure artefact. Hiding it on both sides realigns the rest.

One selector per line. A selector listed in both fields is hidden, not painted. A selector matching nothing is normal and harmless — that is what makes a project-wide #staging-badge safe, since it simply matches nothing in production. Every capture records what each selector matched, including selectors the browser rejected as invalid CSS, which are reported rather than failing the capture.

What a project contains

Deleting a project permanently removes all of the above.