Screenery

Screenery / Compare / LaunchBrightly

LaunchBrightly alternative for developer docs

LaunchBrightly and Screenery both keep product screenshots current, so nobody re-exports them by hand. LaunchBrightly replays recorded recipes against your app and syncs approved images into your help center. Screenery publishes the screenshots your own Playwright tests take in CI.

The short answer

Side by side

LaunchBrightly details checked October 2026 on its own site. See Sources.

LaunchBrightlyScreenery
Who sets it up Anyone. You record a recipe by clicking through your product. A free 10-day proof of concept has its specialists build recipes for you. A developer. A Playwright test writes the image, and one CI step publishes it.
How a shot is taken A recipe replays your recorded navigation against your app, from the outside. Your test calls page.screenshot(), or keeps a toHaveScreenshot() golden, in your CI.
Signing in You create a login profile in LaunchBrightly so it can capture behind your login. Your tests sign in the way they already do. Test credentials stay in your CI. Screenery only receives image files.
When it re-captures After a release, or on a schedule. An audit compares fresh captures with the images in your help center. On every CI run that pushes. A push on the default branch moves @latest.
Review Approve a changed screenshot once, and it syncs to every article that uses it. Split-view and heatmap comparison. An optional gate compares each image with a committed baseline. A change fails the job, and Screenery publishes nothing. Each pull request gets its own @pr-N channel, and can get a comment showing what changed.
Annotations and crops Yes. It reapplies annotations on every run, applies custom styling, and can remove elements such as chat bubbles. No. Screenery serves the file your test wrote. Crop or hide elements in the test, with Playwright's clip and mask options.
Help center sync Native sync with Intercom, Zendesk, HubSpot, Help Scout, Freshdesk, Salesforce and others. None. You paste the URL once, as Markdown or an <img> tag.
Embeddable URL Yes. Every automated screenshot has a permanent URL. Yes. A stable @latest URL, plus a channel per branch and an immutable URL per version.
History Screenshot History keeps every generated image. Screenery stores every push as an immutable version with its own URL.
Languages and themes One recipe can capture every supported language. Light, dark and other themes share one URL. Each locale is its own test and name.
Price Free, with 100 screenshots. Pro is $229 a month for 500. Business is $499 a month for 2,000. Not published yet.

What LaunchBrightly does well

Where Screenery is different

Your tests are the recorder

There is no second tool to keep in step with the product. The test that takes a screenshot lives in your repository, next to the code it shows. When a pull request changes the billing page, the same pull request updates the test, and a reviewer sees both.

test('billing settings', async ({ page }) => {
  await page.goto('/settings/billing');
  await expect(page.getByRole('heading', { name: 'Billing' })).toBeVisible();
  await page.screenshot({ path: 'test-results/settings/billing.png' });
});
permissions:
  id-token: write
  pull-requests: write
steps:
  - uses: screenery/push@v1
    with:
      project: acme/dashboard
      path: test-results

Screenery then serves that screenshot at one URL, which follows your default branch:

https://cdn.screenery.dev/acme/dashboard/settings/billing@latest.png

No vendor login to your app

Screenery never opens your product. Your CI runs the tests, often against a build it started itself with seeded data, and sends Screenery the image files. On GitHub Actions the push signs in with GitHub's OIDC token, so there is no Screenery secret in CI either. See Credentials.

A gate before publish

Point the push at a committed baseline, and it compares every screenshot with that baseline, pixel by pixel, before it publishes. A visual regression fails the job, and nothing reaches @latest. See Visual testing.

Pull-request previews

A pull request pushes to its own @pr-N channel, never to @latest. The job can comment on the pull request with what changed. See Pull-request comments and How @latest moves.

The URL is close to a tie

Both products give you a URL that keeps working while the image changes. Screenery's URL also comes per branch and per pull request, and as a fixed version. It works in a README, a docs site, a help center or a marketing page alike. See Screenshot URLs.

Which to pick

LaunchBrightly is the better pick when:

Screenery is the better pick when:

Screenery does not annotate, crop or resize images today, and it does not write into help center articles. If those matter more than where the screenshot comes from, LaunchBrightly is built for them.

Sources

We checked the LaunchBrightly facts on this page in October 2026, on these pages:

The docs describe how Screenery behaves. Start with Getting started or Playwright goldens.

Get started Read the setup guide