Skip to content

Projects

A Project is one domain or subdomain you're tracking — for example, your marketing site or your app's checkout flow. Everything else (Environments, Languages, Viewports, Pages, Monitors, Scans, Captures) belongs to a Project.

Creating a project

From your workspace dashboard, use the Add project form:

Field What it means
Workspace Which workspace owns this project (only shown if you belong to more than one).
Domain The site's domain, e.g. example.com. This cannot be changed later — a project is permanently based on its domain.
Project name A display name, e.g. "Marketing site."
Slug A short identifier used in URLs, lowercase letters/numbers/hyphens only.
Description Optional, up to 2000 characters.

Add project form

Your plan limits how many active projects and how many distinct domains a workspace can have — if you're at the limit, creating a project (or reactivating an archived one) will fail until you upgrade or free up a slot. Project name and description can be edited later from the same dashboard list; the domain cannot.

Once created, a project opens into its own settings area: General, Environments, Languages, Viewports, and Pages.

  • General is a read-only summary of the project's name, slug, domain, and description.

Environments

An Environment is a named target for this project — where should VisualRunner actually go to take a screenshot? Typical examples: Production, Staging, Test.

Add one from the project's Environments page:

Field What it means
Name e.g. "Staging."
Base URL e.g. https://staging.example.com, or localhost:4200 for local development.
Auth mode No auth (open normally), Cookies (use saved cookies, e.g. an existing signed-in session), Headers (send a custom HTTP header, e.g. an API token or preview-access header), or Basic auth (the browser's built-in username/password prompt).
Production Check this if it's the live, public site.

Add environment form

Choosing Cookies, Headers, or Basic auth reveals the matching fields to fill in:

Environment with cookies auth mode expanded

A few things worth knowing:

  • You can only have one Production environment per domain. Marking a new environment as Production automatically un-marks whichever one held that title before.
  • The domain is locked once you have an environment. Every later environment you add for this project must be on the same domain (an exception is made for localhost, for local development).
  • Credentials are encrypted — cookies, headers, and basic-auth passwords you enter are never shown back to you or anyone else after saving.
  • Environment URLs are checked and blocked if they point at localhost, a private/internal IP range, or an unsupported protocol — this prevents a Monitor or Scan from being pointed at internal infrastructure by mistake. (Local development is still allowed via the localhost/127.0.0.1 exception above.)
  • Use Test connection to verify an environment actually works — VisualRunner will try to open a real page through it (using your saved auth) and report success/failure without exposing internal network details.
  • Adding your first Page (see below) with a URL VisualRunner doesn't recognize will automatically create an Environment for you, guessing Production/Staging/Test from the URL's hostname — so don't be surprised if an Environment appears that you didn't explicitly add.

Capture variables (Country Profiles)

Also on the Environments page, under each domain: Capture variables — reusable sets of URL parameters and/or cookies applied right before a screenshot is taken. Use these for things like country, currency, or A/B test variant.

Field What it means
Label A name for this variable, e.g. "Country: Germany."
Write value to URL parameters A query parameter set on the page URL, e.g. country=DE.
Write value to cookies A cookie set before navigation, e.g. region=DE.

Add capture variable form

You can set both a URL parameter and a cookie for the same capture variable if the site needs both. Each capture variable becomes an additional option when running a capture, scan, or monitor — e.g. "capture this page for Germany and for France."

Languages

If your site is translated, add each language your project should track from the Languages page.

Language URL format

First, tell VisualRunner how your site's URLs indicate language, using the segment builder:

  • Drag in {language} (where the language code goes), {path} (the rest of the page's URL), and / to match your site's pattern.
  • Common patterns: /{language}{path} (path-prefixed, e.g. /el/contact), or {path}?lang={language} (query-string, e.g. /contact?lang=el), or https://{language}.example.com{path} (subdomain — requires https:// or http:// at the start).
  • If your default language has no marker in the URL (e.g. English at /contact, but Greek at /el/contact), check Main language has no variable and mark that language as Main below — its URL is built from the same format with the language marker removed.
  • A live preview shows exactly what URL this format produces before you save.

Language URL format segment builder

Adding languages

Field What it means
Code A short language code, 2–10 characters, e.g. el, en, pt-br.
Name Display name, e.g. "Greek."
Main language Check this for your site's default language (only one language can be Main).

Languages can be reordered by drag-and-drop — this controls display order elsewhere in the app, not which one is "first."

Viewports

A Viewport is a screen size to capture a page at — desktop, tablet, mobile, etc.

Field What it means
Name e.g. "Desktop," "iPhone 14."
Width / Height In pixels, 240–7680.
Mobile Emulates a mobile browser (affects how the site renders, e.g. responsive layouts).
Touch Emulates a touch-capable device.

Add viewport form

Pages

A Page is one URL within your project, tracked across every language it's available in. Manage pages from the Pages tab.

Adding a page

Field What it means
Page name A display name, e.g. "Homepage."
Page URL The full URL, e.g. https://example.com/tickets.
Languages Which of your project's languages this page exists in — pick from the ones you've already added, or type in a brand-new language inline.

Add a page form

If the page's URL doesn't match an Environment you already have, VisualRunner creates one for you automatically (see Environments above).

Managing pages

Each page shows its status:

Status Meaning
New Just discovered by a Scan, not yet reviewed.
Existing Confirmed, in normal rotation. Pages you add manually start here.
Missing Marked as no longer found (you can restore it).
Redirected Set to redirect to another page.
Non-indexable Excluded from search engines (noindex), tracked but flagged.
Failed The last attempt to reach this page's URL failed.

From a page's row you can: search/filter by status, add or remove a language, set a redirect target (pick another page it now redirects to), mark it missing or restore it, and move it to trash. Trashing a page never deletes its existing screenshots — only permanent delete does that, and it's a separate, explicitly confirmed action (typing DELETE for bulk operations).

Interaction rules

Some pages need a click before the "real" content is visible — a tab, an accordion, a modal. Interaction Rules handle this, and live inside each page's Manage interaction rules panel on the Pages tab.

Field What it means
Rule name A label for this rule.
Type Tab, Accordion, Details, Modal, or Custom click — see the in-app guidance under each page for a CSS-selector example and expected result per type.
Mode Each (capture once per matching element, one at a time) or All (click every match, then capture once — best for things like accordions that can stay open together).
CSS selector Which element to click. Prefer a stable ID, data attribute, or accessible attribute over a generated class name.

Multiple rules on the same page run in the order you add them — for example, open a modal first, then select a tab inside it.

Interaction rules panel expanded on a page

The in-app form covers the common cases above. A few advanced options (which specific matches to select, capturing only a section of the page, custom "restore" behavior between captures, and non-click ways of revealing content) exist in the underlying system but aren't exposed in this screen yet.