Browser extension · responsive debugging

PixelParity

Precision display metrics for responsive work

Give a responsive bug report a reproducible viewport, zoom, and display context.

  • Public source
  • Published

Pending release

Markdown issue export (version 2.1.0)

Merged into the public source on September 13, 2026 and versioned 2.1.0 in the manifest. The Chrome Web Store listing had not been re-checked for that version when this page was published.

My role: Extension design, implementation, packaging, test automation, and store publication.

  • TypeScript
  • Preact
  • Manifest V3
  • Puppeteer E2E

At a glance

Problem
A screenshot can hide the viewport, zoom, and display conditions needed to reproduce a responsive bug.
My contribution
I designed, built, tested, and published a focused TypeScript and Preact extension that captures that context.
Outcome
Published on the Chrome Web Store with packaged-extension tests across three operating systems; publication establishes availability rather than adoption.

An optional working example

Can you reproduce the bug you can see?

Resize a real interface, catch a breakpoint defect, and take a reproduction with you.

A screenshot describes the symptom. Context makes it reproducible.

PixelParity live inspector panel showing viewport, zoom, and breakpoint metrics
Product interface. Features on a live deployment can differ from the latest source revision.
PixelParity's extension surfaces and exportA popup and a side panel reach the active tab across the extension boundary through the activeTab and scripting permissions, read viewport, zoom, device pixel ratio, and breakpoints, keep a baseline in storage, and export a Markdown issue that carries no page URL or title.Popuppopup.htmlSide panelsidepanel.htmlactiveTab + scriptingActive tabviewport · zoomDPR · breakpointsBaselinestorage permissionMarkdown issue exportsteps · metricsbaseline deltasno page URL or titleManifest V34 permissions declaredno background worker

The popup and side panel reach the active tab through two permissions, compare it with a stored baseline, and export a Markdown issue.

In words

  1. The popup (popup.html) and the side panel (sidepanel.html) are the extension's two entry points.
  2. Both reach the inspected page through the activeTab and scripting permissions.
  3. From the active tab they read viewport, zoom, device pixel ratio, and active breakpoints.
  4. A captured baseline is kept with the storage permission.
  5. The Markdown export carries reproduction steps, metrics, and baseline deltas, with no page URL or title.
  6. The extension is Manifest V3, declares four permissions, and has no background service worker.

Derived from manifest.json on the default branch (version 2.1.0) and the README.

Engineering decisions

  1. 01decision

    Capture the environment behind the screenshot

    Viewport dimensions, browser zoom, device pixel ratio, and active breakpoints explain why two screenshots can disagree. Live metrics and baseline deltas make changes inspectable as the browser is resized.

  2. 02decision

    Make the result portable

    A guided baseline-to-issue workflow exports Markdown with reproduction steps, expected and actual behavior, current metrics, and baseline deltas. Page URLs and titles are excluded from the report.

    TradeoffExcluding page URLs and titles keeps page identity out of the export; the reporter supplies the page reference separately.

  3. 03decision

    Keep the extension's scope narrow

    Manifest V3, Preact, and four permissions support a small local tool. Reproducible packaging and packaged-extension tests check the artifact that users install.

    TradeoffFewer permissions and no telemetry mean no usage data either, so adoption cannot be measured from the extension itself.

What you can verify

Source and release links checked .

Scope and limits

Publication establishes availability. It does not establish active adoption or improved team productivity. Browser metrics also cannot reproduce every aspect of a physical device's rendering.

A short walkthrough

  1. 01

    Open a responsive page and record its baseline.

  2. 02

    Resize or change zoom until the layout crosses a breakpoint.

  3. 03

    Export the display context with the observed mismatch for a reproducible issue.

Curious how this is built? Look under the desk.

pocket terminal · ~/desk

A small terminal for this site. It prints only what is on the site; type help for commands.

The prompt needs JavaScript. Every destination is also in the navigation above.

ls work

7 products · * featured

Your turn: try open skillcheck, coffee, or help.

Loading terminal commands…

Type a command and press Enter. Try help, ls, open followed by a project name, why followed by a project name, inspect, trail, cat about, notes, contact, resume, coffee, whoami, or clear. Tab completes; the up and down arrows recall earlier commands. Escape closes the terminal.