Free for Windows, macOS & Linux · v0.1.0

Snag Find the snags before your users do.

Snag opens your web app in its own browser, goes through every page and clicks what people click, then tells you what is broken, at desktop, tablet and phone sizes, with the steps to see it again.

  • No account needed
  • Nothing to add to your app
  • Works behind a login
  • Command line for CI
Snag in dark mode scanning Acme Shop: eight pages checked at once, each shown live
Checks
54
Screen sizes
3
Price
$0
Accounts needed
0

Testing a web app by hand

The bug was always on the page nobody opened.

Writing end-to-end tests takes weeks and covers the paths someone thought of. Clicking around covers less. Snag covers every page it can reach, every time.

Clicking around before every release

Someone opens the app, tries a few pages and calls it tested. The page nobody opened is the one that broke.

01

Fine on your screen, broken on theirs

A table that pushes the page sideways on a phone, a button hidden behind a banner on a tablet. Nobody checks every size.

02

Errors nobody sees

A request that fails, a script that throws, an image that never loads. The page still looks almost right, so the bug lives on.

03

Fixed once, broken again

A small style change moves a button on twenty pages, or checkout quietly breaks after a deploy. You hear about it from a customer.

04

How it works

An address in. A list of what to fix out.

No test scripts to write first. The first scan takes a minute or two for a small app.

  1. 1
    Paste the address

    Your laptop, staging or the live site. Behind a login? Snag signs in with a form, two-factor codes, cookies or a session you sign in to once.

  2. 2
    Scan

    Snag opens every page it can reach in its own browser, at desktop, tablet and phone sizes, and clicks the menus, tabs and dialogs people would.

  3. 3
    Fix with the steps

    Each problem comes with what it means, how to fix it, the pages it is on, a screenshot and the steps to see it again. Replay them in one click.

What Snag finds

Broken, ugly, slow or inaccessible. On every page.

These screenshots are Snag scanning Acme Shop, a small demo store with a few bugs planted on purpose.

Findings

Every problem, with the steps to see it again.

Snag reports what broke and how it got there: "Open /products/notebook, click Size guide" ends in a JavaScript error, and Replay does it again in front of you. A security header missing on twenty pages is one finding, not twenty.

  • Server errors, failed and slow requests, broken links and images, JavaScript errors and console errors
  • Forms that break on empty, very long or unusual input, or when sent twice
  • Performance: slow pages, layout shifts, heavy images and render-blocking files
  • Security basics: missing headers, exposed files, cookies anyone can read
  • Ignore what doesn't matter, mark what you know, and see what is new since the last scan
Snag showing the findings of a scan of Acme Shop: an uncaught JavaScript error after clicking Size guide, with the steps to reproduce and a Replay button

Every screen size

Desktop, tablet and phone, every page.

Layout and accessibility are checked at each size, with the problem marked on the screenshot: a cart table that makes the page scroll sideways on a tablet, text over text, buttons too small to tap, contrast too low to read.

  • Overlaps, cut-off text, things off screen and controls covered by others
  • Accessibility checks from axe-core, the engine many audits use
  • Design consistency across pages: colors, fonts, buttons and dates that drift
  • Placeholder text like "undefined" or "lorem ipsum" that slipped through
A finding called Page scrolls sideways: the Acme Shop cart page at tablet size, with the wide table marked

Live view

Watch it work, page by page.

Snag checks many pages at once, and the live view shows each tab as it goes, with every click and keystroke outlined in the page. Enlarge one tab, or open a real browser window and watch at human speed.

  • Explores like a person: menus, tabs, dialogs and buttons, never delete, pay or sign out
  • Staging and live sites are read-only by default, and sending forms is something you turn on
  • Scans on a schedule while Snag is open, with a notification when something new breaks
Snag scanning Acme Shop: eight tabs at once, each showing the page being checked

Visual changes

See what changed since the last scan.

Every page is captured at every size and compared with the version you approved. A change that shows up on many pages is one decision: accept it everywhere, or report it as a bug. Clocks, animations and other things that change by themselves are left out.

  • Side by side, swipe, difference or only the new version, with the changed areas outlined
  • The same change on seven pages at three sizes, grouped into one review
  • Mask anything that should never count, like a live chart or an ad
The Visual tab: a button style changed on 7 pages at 3 sizes, shown side by side with the changed areas outlined

Flows

The paths that matter, checked every time.

Record sign-up, checkout or a booking once by clicking through it in a window, or describe it in a sentence and let AI draft it. Snag replays it with every scan and tells you which step broke. Here the checkout works, but a failed request on the way is caught.

  • Steps find buttons and fields the way people do: by their text and label
  • Checks for text, addresses, requests and "nothing went wrong so far"
  • Readable YAML you can edit, review and keep next to your code
  • Watch a run live, stop it, or keep the window open where it failed
A flow called Buy a mug: seven steps passed, and the last check failed because the reviews request returned 500

In your pipeline

The same scan, on every pull request.

Use in CI writes a snag.toml and your flows for the command line. Run it in any pipeline, on any server, and catch what broke before it ships.

  • snag run: Scans an environment and runs its flows, from a snag.toml the app writes for you.
  • Reports: HTML, JSON, JUnit and SARIF, so results show up in your pipeline and in GitHub code scanning.
  • Fails the build: Only on what you choose: critical, major, minor, or never.
  • Secrets stay out: Passwords and keys come from environment variables, never from the file.
terminal
# Scan staging and run its flows
$ snag run --env staging

Acme Shop · staging · https://staging.acme.test
Scanned 40 pages in 52.1 s
  passed  Buy a mug (3.2 s)
  FAILED  Sign up: step 4 (Click “Create account”)
  wrote snag-report/report.html
FAILED: 0 critical, 2 major, 5 minor; flows 1/2 passed

# Fail only on serious problems
$ snag run --fail-on critical

Everything else you'd expect

Done properly.

  1. 01

    Works behind a login

    Sign-in forms with two-factor codes, cookies, HTTP Basic, API headers, or sign in by hand once for SSO and security keys.

  2. 02

    Reports to share

    Export a scan as a PDF or one HTML file: a summary, every finding with its screenshot and advice, and the pages checked.

  3. 03

    AI assist, optional

    Visual review of each page kind, plain-language explanations, sorting by impact and drafting flows. Claude, OpenAI, Gemini, a local model and more.

  4. 04

    Re-check in seconds

    Fixed something? Re-check only the pages that had problems.

  5. 05

    Several environments

    Your laptop, staging and production in one project, each with its own settings and sign-in.

  6. 06

    Everything from the keyboard

    A command palette (Ctrl+K) and shortcuts for scanning, tabs and reports.

  7. 07

    Light & dark

    Themes that follow your system.

  8. 08

    Its own browser

    Uses Chrome, Edge or Chromium on your computer, or downloads its own. Your profile, history and sign-ins are never touched.

Private by design

Your app and your scans stay yours.

  • On your computerProjects, scans and screenshots stay in Snag's data folder. No account, no cloud.
  • Passwords encryptedSign-in details are encrypted with a key kept in your system's keychain.
  • AI only when you set it upOff until you pick a service and agree to exactly what is sent. With a local model, nothing leaves your machine.
  • Crash reports are opt-inOff unless you turn them on. Addresses, paths and emails are removed, and you read each one before it is emailed.

Snag vs writing end-to-end tests

Coverage from the first minute.

Keep your tests for the logic only you know. Let Snag cover everything else.

CapabilityEnd-to-end testsSnag
Setup Write and maintain test scripts Paste an address
Pages covered The ones someone wrote a test for Every page it can reach
Screen sizes Usually one Desktop, tablet and phone
Hidden errors Missed unless a test looks Failed requests, console and script errors
Accessibility A separate tool Built in
Visual changes Another service, often paid Built in, grouped across pages
Key journeys Code Recorded or described, kept as YAML
Price Per seat or per run Free

Get Snag 0.1.0 · Free

Your first scan, in two minutes.

Pick the file for your system. We'll email you a one-time code, and the download starts as soon as you enter it.

First launch & command line

Windows

If Windows shows "Windows protected your PC", choose More info, then Run anyway. On Windows 10, the installer adds Microsoft's WebView2 if it's missing.

macOS

Drag Snag into Applications. The first time, open System Settings, then Privacy & Security, and click Open Anyway. (On macOS 14 and earlier, right-click the app and choose Open.)

Linux

Install the .deb with apt or the .rpm with dnf, like any other package. The AppImage needs no install: make it executable (chmod +x) and run it.

Command line

Unpack the archive and put snag on your PATH. It scans with Chrome, Edge or Chromium installed on the machine.

The first-launch warning appears because Snag is new and not yet widely downloaded; it only shows once. Updating: download the new version from this page and install it over the old one. Your projects and settings are kept. Verify your download (optional): each file's SHA-256 checksum is in SHA256SUMS.txt.

Download Snag

Where should we send your code?

We'll email you a one-time code to start . No account, no spam.

FAQ

Questions, answered.

Something else? Ideas or partnership enquiries? Email jamal@unravelers.tech.

Is Snag really free?

Yes. Every feature, for as many projects and scans as you like, with no account.

Do I need to change my app?

No. Snag looks at your app from the outside, in a browser, like a visitor. Nothing to install, no script to add.

Can it test an app behind a login?

Yes. Give it a sign-in form (with two-factor codes if needed), cookies, HTTP Basic or API headers, or sign in by hand once for SSO and security keys. Snag signs in again if the session ends.

Will it change my data?

Clicks never save anything: requests that would change data are blocked while Snag explores. It sends forms only when you turn that on, never forms that edit existing records, and never clicks delete, pay or sign out. Staging and live sites are read-only by default.

Can I scan a live site?

Yes. Production environments are read-only and scanned gently (a few pages a second), and Snag asks before each scan.

Do I need an AI subscription?

No. AI assist is optional. Use your own key for Claude, OpenAI, Gemini and others, or a model on your own computer with Ollama or LM Studio.

Can I run it in CI?

Yes. snag run scans and runs your flows from a snag.toml, writes HTML, JSON, JUnit and SARIF reports, and fails the build on the severities you choose.

How do I get new versions?

Download them from this page. Your projects and settings are kept.

Why does Windows or macOS show a warning the first time?

Both systems double-check apps that aren't yet widely downloaded. It only happens on the first launch; the steps are in the download section above.

Which systems are supported?

Windows 10 and 11 (64-bit), macOS 11 or later on Apple silicon and Intel, and 64-bit Linux (Ubuntu, Debian, Fedora, openSUSE and others). Snag scans with Chrome, Edge or Chromium.

Your next release

Ship it knowing every page still works.

Snag is free for Windows, macOS and Linux. Paste an address, scan, and fix what it finds before anyone else does.