/Docs

Getting Started

Walk through your first visual edit end-to-end — install the extension, sign in, open the dashboard, click Edit with Visual Editor on a variation, change some text, and save.

Before you begin

  • The A vs B snippet is installed on the site you want to test. See Quick install if you need to set this up first.
  • You have an experiment in Draft status with at least one variation other than the control. Create one from Creating an Experiment.
  • You are using Chrome, Firefox, or Edge. Other browsers can side-load the extension — see cross-browser support.

First-edit walkthrough

1

Install the extension

Open your browser's extension store and search for "A vs B Dev Tools". Click Add to browser and grant the requested permissions when prompted.
What you'll see
The browser store listing for "A vs B Dev Tools" with the publisher name A vs B Inc., a green Add to browser button, and the requested permissions: read and change data on sites where the editor is active, and storage for your auth token.
2

Sign in to the extension

Click the A vs B icon in your browser toolbar. The popup prompts you to sign in with your A vs B account. Use the same email and password as the dashboard.
What you'll see
The extension popup shows the A vs B wordmark, a Sign In button, and a small footer link to create an account if you don't have one yet.
3

Open the experiment dashboard

In the A vs B dashboard, navigate to your project and open the experiment you want to edit. Scroll to the Variations step and click Edit with Visual Editor on the variation card you want to modify — the dashboard mints a preview link, opens a new tab to your site, and the extension automatically opens the editor on that variation.
4

Land on your site with the editor attached

A new browser tab opens to the target URL of your experiment with the Visual Editor automatically attached on the right side. The extension confirms the snippet is detected and shows the variation name and lock status at the top of the panel — no popup interaction required.
What you'll see
Your site loads as normal. A 360px-wide panel slides in from the right. The panel header shows the experiment name, variation name, and a green "Snippet detected" pill.
5

Pick an element and edit its text

Click any element on the page. The panel switches to the edit form for that element. Find the Text field, change it, and watch the preview update on the page.
6

Switch variations from the top toolbar

The top toolbar shows a variation dropdown with each variation's edit count beside its name. Picking a different variation while you have unsaved changes pops a confirmation: Keep editing to stay where you are, or Discard and switch to drop the unsaved draft and load the chosen variation.
7

Save the change

Click Save in the panel footer. The edit is persisted to the variation. You can keep editing or close the tab — your changes are safe.

The Changes panel

On the left-hand side of the editor you'll see a panel with two tabs: Changes and Accessibility. The Changes tab is where every edit you make appears as a diff card.

  • Each row shows an icon for the kind of edit (text, style, image, hide, etc.), a one-line summary, the selector it targets, and an inline before → after diff for text and style changes.
  • Hover any row to reveal a small × on the right — clicking it reverts that edit on that element without touching the rest of your changes.
  • Three consecutive text edits on the same headline collapse into one row showing the original copy on the left and your latest copy on the right. A text edit and a colour change on the same element show as two rows.
  • When at least one change exists, a Reset alllink appears at the top right of the panel head. It clears every edit you've made in this session.

Experiment context, always visible

Below the change list, the editor surfaces a small read-only block with the experiment's name, audience, primary metric, and traffic split. It's there so you don't have to flip back to the dashboard to remember what you're testing.

The input above the change list searches the visible page. Type a tag name like h1 or button to find every element of that kind. Type a fragment of text — Discovery or Sign up — to find any element whose visible text contains that string. Click any result to jump the selection there without scrolling.

Works in iframe mode too
When you flip to Tablet or Mobile preview, the search proxies into the iframe and returns matches from the device viewport. The result row carries a small iframe badge when the match lives inside the device preview rather than the top-frame document.

Accessibility findings

Click the Accessibility tab and the editor runs axe-core against the visible page. Findings are grouped by severity — Critical, Serious, Moderate, Minor — with a coloured pill on each row.

  • Each row carries a one-line description of the issue and (when available) the selector that triggered it.
  • Clicking Open in inspector jumps the selection to the affected element so you can fix it inline.
  • The scan re-runs automatically a half-second after you change selection while the tab is open. Switching to the Changes tab pauses the rescans.
  • On a hostile customer page that breaks the scanner, the tab renders a fallback message rather than crashing the editor. Findings reflect the top-frame document — iframe-mode coverage ships in a future session.

The Inspector — every section, one panel

The right-hand Inspector is where you do the actual editing. When you click an element on the page, the panel fills in with everything you can change about it, grouped into sections:

  • Element header card— an icon for the element kind (heading, paragraph, link, image, generic), the element's label, its tag in monospace, and a hide-toggle switch on the right. Flip the switch off to stage a hide; flip it back on to drop the change (no orphan row in the Changes panel).
  • Content— a textarea for the element's text plus a live character count. Below the textarea you'll see a Suggest variationsbutton — see "AI suggest copy" below.
  • Image— surfaces only when you've selected an<img>. Source URL + alt text + a Replace dropzone wired to the same R2 upload flow as the rest of the editor. Background images go through Edit Variation CSS instead.
  • Typography — font size in px, weight (400 / 500 / 600 / 700), and a left/center/right segmented align control.
  • Appearance— text colour and background colour rows. Each is a swatch + monospace hex input; clicking the input opens your OS's native colour picker.
  • Spacing — four padding inputs on a tight grid (T / R / B / L). Margin / border-radius / shadow flow through Edit Variation CSS this cycle.
  • Attributes — surfaces for elements where attribute editing matters (links, buttons, images, form inputs). Add or remove attribute rows; an invalid attribute name (leading underscore, spaces, etc.) shakes the input and shows a tooltip.
  • Advanced — two buttons. Edit variation CSSopens a textarea modal where you can write CSS scoped to this variation; the server-side allowlist blocks @import and url(javascript:…) patterns at save time. Insert HTML blockopens a side-by-side editor with a sandboxed sanitised preview and a position picker (Above / Inside top / Inside bottom / Below). The two Inside positions are disabled when you've selected a void element like an <img> or <input>.

AI suggest copy

Below the Content textarea, click Suggest variations and the editor sends the current text plus a small bit of context (the element's tag, the surrounding paragraph, the experiment name) to Claude and gets back three rewrites in distinct tones:

  • Urgent — emphasises immediacy, scarcity, action.
  • Clear — strips jargon, makes the value-prop unmistakable.
  • On-brand— sharpens the source copy's voice without flattening it.

Click any candidate to apply it — the textarea updates, the canvas updates, and a row lands in the Changes panel. Each suggestion is capped to ≈ 30 words and the whole pipeline returns in roughly two seconds.

Rate-limited per minute
Suggestions are capped at 10 per user per minute to keep API costs predictable. If you hit the limit, the editor surfaces an inline message telling you when to try again — no toast, no dialog.

What gets saved

Each edit is stored as a JSON change with a selector, an action type, and a payload. A simple text change looks roughly like this:

Example variation change
json
1{
2 "selector": "[data-avsb-target=\"hero-headline\"]",
3 "action": "text",
4 "value": "Save 30% on your first order",
5 "viewport": "ALL"
6}
Pin a stable selector before you edit
For elements you plan to test repeatedly, ask your developer to add a data-avsb-targetattribute. The editor will prefer it over class names, so a redesign of the page won't break the experiment. Full details in selectors.

Next steps