beta
Documentation

Pages

A page represents a URL path within a project that deploydiff monitors. Pages are defined at the project level and shared across all environments.

Why pages live at the project level

Pages are deliberately project-scoped rather than environment-scoped. This design is what makes diffing meaningful.

When you define /pricing once at the project level, deploydiff can visit https://myapp.com/pricing in your production environment and https://staging.myapp.com/pricing in your staging environment — and compare the two screenshots pixel-by-pixel. If pages were defined per environment you'd have no reliable way to pair the same logical page across environments for a diff.

The same principle applies to comparisons over time: a diff batch always compares the same set of pages between two capture batches, which is only possible because the page list is stable and shared.

In short: a page defines what to monitor, environments define where to monitor it, and capture batches record when.

Adding a page

Click New page from the project's Pages section. Each page requires:

Pages and environments

Adding a page to a project does not automatically enable it in every environment. Each environment has its own toggle for each page — you control which pages are included per environment from the environment's Pages tab. Only enabled pages are captured during a capture batch run.

A project can hold as many pages as you need. What your plan limits is how many of them are enabled in one environment — see Pages in an environment.

Per-page diff config

A page can override any setting of the project's diff config from its own Settings tab: the pixel color tolerance, the pixel diff threshold (%), and the max diff pixel count. Leave a field empty to inherit the project value — the placeholder shows what is inherited.

An override can be looser or stricter than the project value. The typical case is a single noisy page — one embedding a map, a carousel, or ads — that needs a tolerance or a wider pixel budget without weakening the gate for every other page of the project.

Both thresholds still apply to an overridden page: it fails if either is exceeded, including one left inherited from the project.

Per-page capture config

A page can contribute its own selectors to the project's capture config from its Settings tab. These are added to the project's lists, not substituted for them — the project's selectors still apply, and are shown under each field so you can see the full set. To stop a project-wide selector from applying to one page, remove it from the project and add it to the pages that need it.

Unfocus before capture works the other way: it is a single value, so the page overrides it. Leave it on Inherit to follow the project, or set it to Off on a page whose purpose is precisely to capture a focused state — an active form field, for instance — which the project-wide setting would otherwise make impossible.

Editing a page

From a page's Settings tab you can change its title, path or viewport. The page keeps its history: captures already taken stay as they were, and the next ones use the new settings.

The life of a page

A page goes through the same few steps, and each one answers a different need. Only the last cannot be undone.

StepWhereWhat it does
Addthe project's Pages listCreates the page. It is not captured anywhere yet.
Enable in an environmentthe environment's Pages tabThe page is captured at each capture batch of that environment.
Disable in an environmentthe environment's Pages tabStops capturing it in that environment only. Elsewhere nothing changes.
Archivethe page's overviewStops capturing it everywhere. The page and its whole history are kept.
Un-archivethe page's overviewBrings the page back, disabled in every environment.
Deletethe page's Settings, danger zoneRemoves the page for good. Reserved to Owners and Admins.

Disabling: the page is still in use, just not here

Disable a page in an environment when that environment should not capture it — a page that only exists in production, for instance. The choice is made environment by environment and can be reversed at any time from the same switch.

Archiving: the page is no longer used

Archive a page that has left your site, or that you no longer want to monitor, when its history is still worth keeping. Archiving:

While a page is archived it cannot be enabled in an environment.

Un-archiving does not enable it again. The page comes back disabled everywhere, and you enable it in each environment where you want it, as you would a new page.

Deleting: the page should be gone

Delete a page when it has no place in the project any more. Deletion is permanent, and the captures and diff results already recorded stop linking back to the page — see Deletion. If all you want is to stop capturing it, archive it instead.

What a diff shows afterwards

A diff batch compares two capture batches page by page. When a page was captured in the reference batch and not in the candidate — because it was disabled, archived or deleted in between — the diff batch reports it as a Removed page rather than comparing it.