Catch visual regressions before they merge

See every visual change your pull request makes, side by side with the approved version, before you merge. One flat monthly price, with no charge per screenshot.

Self-serve signup, no credit card required.

Show the integration for
mix.exs
{:ex_snappy, "~> 0.5.1", only: :test}
test/shop_web/components/order_summary_test.exs
import ExSnappy

test "renders totals" do
  order = order_fixture()
  html = render_component(&order_summary/1, order: order)
  snap(html)
end
Terminal
pnpm add -D @get-snappy/snappy-ember-client
tests/integration/components/order-summary-test.js
import { snap } from '@get-snappy/snappy-ember-client';

test('renders totals', async function (assert) {
  await render(hbs`<OrderSummary @order={{this.order}} />`);
  await snap(assert);
});
Chrome OrderSummaryTest · renders totals New

Order summary

Linen shirt × 1
$48.00
Canvas tote × 2
$36.00
Shipping
$6.00
Total
$90.00

Checkout

1280 × 800 Example component
Chrome Integration | Component | order-summary · renders totals New

Order summary

Linen shirt × 1
$48.00
Canvas tote × 2
$36.00
Shipping
$6.00
Total
$90.00

Checkout

1280 × 800 Example component

Review starts on the pull request

Get Snappy reports to GitHub as a check. When screenshots change, the check fails until someone reviews them.

  1. Changed screenshots fail the check

    When a screenshot changes, the Get Snappy check on your pull request fails and says how many images need approval.

    GitHub pull request checks: Get Snappy failing with 1 image requires approval
  2. Compare old and new

    The check links to Get Snappy, where you see the diff, the old screenshot and the new one, with a slider to compare them.

    Get Snappy comparison view showing a changed table with diff, old and new screenshots
  3. Approve to update the baseline

    Approved screenshots become the new baseline and the check passes. Merge as normal.

    GitHub pull request checks: all checks passed, Get Snappy changes approved

Using a different stack? Ask us about it or read the docs.

Built for teams switching off Percy or BrowserStack

You pay a fixed monthly price, not a fee for each screenshot.

Per-snapshot billing compared with Get Snappy
Per-snapshot billing Get Snappy
Cost rises with each screenshot Fixed monthly price
Hard to forecast Same bill each month, within your plan's allowance
“We cut our visual regression spend by A$15,000 a year after switching off per‑snapshot billing, and added coverage to three apps that had none before.”
Engineering lead, Phoenix team switching off Percy

8M+ snapshots processed on Get Snappy so far.

Flat monthly pricing

Plans are sized by screenshots per month and number of projects.

Every plan includes multiple viewport sizes, mobile browser size emulation and the GitHub integration.

If your usage affects our bandwidth or storage needs, we may throttle builds or renegotiate pricing. We'll talk to you first.

Try it on your next pull request