Dungbeetle vs Percy
Percy is BrowserStack's visual testing platform: your CI uploads page snapshots, Percy renders them across Chrome, Firefox, Edge, and Safari at the responsive widths you choose, and you review pixel diffs in its web UI. Dungbeetle is a snapshot and visual regression testing tool — a free CLI plus self-hostable cloud — built for AI agents and the humans they work for. The short verdict: if you need true cross-browser rendering coverage backed by an established vendor, Percy is the safer pick; if you want flat pricing, semantic diffs, and snapshots beyond the browser, Dungbeetle is the simpler bet.
When Percy is the better choice
Honestly: if "does this render correctly in Safari?" is a question your team has to answer, Percy answers it and Dungbeetle doesn't.
- A real cross-browser rendering grid. Every Percy plan — including Free — renders your snapshots in Chrome, Firefox, Edge, and Safari, at customizable responsive widths, on BrowserStack's infrastructure (pricing). The Desktop & Mobile plan adds real mobile browsers.
- An established enterprise vendor. Percy has been the default answer to "visual testing SaaS" for years, and BrowserStack behind it means procurement, support, and compliance boxes get ticked.
- A polished review UI with diff grouping — Percy groups similar screenshots together so one CSS change doesn't mean fifty separate approvals.
- Deep BrowserStack ecosystem integration if you already use their device cloud for functional or app testing.
If cross-browser visual coverage is the job, use Percy — sincerely.
When Dungbeetle is the better choice
- Predictable pricing as your suite grows. Percy meters every rendering: one page at two browsers and three widths is six billed screenshots, per build (their definition). Past your plan's allowance, each additional screenshot costs $0.036 on Percy Professional (as of July 2026). Run the arithmetic: 50 pages × 2 browsers × 3 widths = 300 screenshots per build, so 34 builds a month exhausts the 10,000-screenshot $199/mo plan and every build after that adds ~$10.80. Dungbeetle's proposed tiers are flat — soft caps on paid plans, and the only metered overage is storage at $0.10/GB-month. Never a per-snapshot charge.
- Semantic diffs, not just pixels. Dungbeetle normalizes output to reviewable JSON — DOM, terminal, API, desktop accessibility tree, game state — so a renamed button is one changed attribute, not a pixel blob. Screenshots are additionally pixel-compared with configurable tolerance.
- No server required. Baselines can live in
dungbeetle.snapshots/in your repo and get reviewed in ordinary PRs. Percy's baselines live in Percy; there is no offline mode. - More than web. Terminal output, API responses, desktop a11y trees, and game state are first-class capture types alongside web pages.
- Agent-native workflow. RFC 8628 device-flow login for coding agents, scoped revocable tokens, an MCP server (Claude Code, Cursor, Codex, Gemini CLI), reviews attributed to the agent — and promoting a baseline requires a human-granted
baselines:writescope, so an agent can't approve its own changes. - Unlimited seats on every plan — though to be fair, Percy's plans also include unlimited users.
Pricing compared
Percy, as of July 2026 (browserstack.com/pricing?product=percy):
| Percy plan | Price (annual billing) | Screenshots/mo | Overage | Build history |
|---|---|---|---|---|
| Free | $0 | 5,000 | — | 30 days |
| Professional | $199/mo ($249 month-to-month) | 10,000 | $0.036/screenshot | 12 months |
| Professional | $449/mo ($549 month-to-month) | 25,000 | $0.036/screenshot | 12 months |
| Desktop & Mobile | $599/mo ($729 month-to-month) | 25,000 | $0.048/screenshot | 12 months |
All Percy plans include unlimited users and projects, and the free tier's 5,000 screenshots/month is genuinely useful for small suites. The number to watch is the multiplier: a "screenshot" is one page in one browser at one width, so a modest matrix multiplies fast.
Dungbeetle's managed cloud is in closed beta (free during beta; access by allowlist). The GA tiers below are proposed, not final:
| Dungbeetle plan (proposed) | Price | Repos | Snapshots/mo | Retention |
|---|---|---|---|---|
| Free | $0 | 1 | 5,000 hard cap | 14 days |
| Starter | $29/mo | 5 | 25,000 soft cap | 60 days |
| Team | $99/mo | 25 | 100,000 soft cap | 180 days |
| Business | $249/mo | Unlimited | — | 1 year, SSO |
Every plan has unlimited seats; the only overage is storage ($0.10/GB-month), with 2GB included on Free. Details on /pricing. The CLI with repo-committed baselines is free forever, source-available (FSL-1.1, converting to Apache-2.0 after two years). Self-hosting the cloud server is an enterprise option (BUSL-1.1, on request).
The workflow difference
Percy: your CI captures DOM snapshots and uploads them → Percy's cloud renders each one across your browser/width matrix and pixel-diffs against the baseline → you approve in their web UI. The renderer and the diff both live on their side.
Dungbeetle: capture locally or in CI — a zero-dependency fetch driver (DOM only), a Playwright driver (DOM + screenshots), or ingest PNGs your suite already writes (screenshotFile mode) → semantic JSON diff plus pixel comparison → review as a plain diff in the PR, or in the cloud UI with approve/promote. The cloud is an upgrade, not a prerequisite.
Try it against your current setup
npx dungbeetle init
npx dungbeetle update # mint baselines → dungbeetle.snapshots/
npx dungbeetle test # exits non-zero on any changeOr skip setup entirely: try the hosted demo, or diff two URLs with no account at all:
npx dungbeetle anon https://staging.your-site.example --compare https://your-site.exampleComing from another pixel-diff tool? There are importers and guides for Lost Pixel, Wraith, BackstopJS, and Loki — see all migration guides and pricing.