Back to Blog

The Hidden Tax on Visual Testing: Per-Screenshot Pricing

The Hidden Tax on Visual Testing: Per-Screenshot Pricing

There's a pricing model in visual testing that creates a perverse incentive: the more thoroughly you test, the more you pay.

Percy charges per screenshot. Their mid-tier plan gives you 100K screenshots/month for roughly $5,000. Applitools starts at $699/month. Chromatic charges $179/month for 35K snapshots. Mabl starts at $500/month with complete vendor lock-in.

The Math Gets Ugly Fast

Consider a modest application: 50 pages, 3 viewport sizes, 2 browsers. That's 300 screenshots per build.

Now consider how often you build: 10 developers pushing 3 PRs/week each = 30 builds/week. Each PR triggers 2 CI runs = 60 runs/week. That's 18,000 screenshots/week - or 72,000/month. You're already past Percy's Starter plan. For a 50-page app with 10 developers.

Scale to a real product: 200 pages, 4 viewports, 3 browsers, 20 developers. You're looking at 720,000 screenshots/month. Four engineers' salaries worth of screenshot hosting.

The Perverse Incentive

Per-screenshot pricing punishes the exact behaviors you want to encourage:

  • Testing more pages - every new page multiplies cost across all viewports and browsers
  • Testing more viewports - responsive bugs are caught by testing responsive layouts, but each viewport costs money
  • Running CI more frequently - trunk-based development and continuous deployment require frequent builds, each costing money
  • Multi-step flows - a checkout flow with 5 screens costs 5× a single page

Teams make coverage decisions based on budget, not risk. That's backwards.

Top row of amber/red cards shows per-screenshot volume climbing from 72K/mo (small app) to 720K/mo (real product) to a hosted bill of thousands per month; bottom row of teal cards shows self-hosted Lastest keeping unlimited screenshots, zero-token replays, and a $0-forever total (or Cloud $299/mo).
As coverage grows, per-screenshot pricing scales the bill against you, while self-hosted Lastest decouples cost from coverage at $0.
Lastest dashboard showing unlimited test runs at zero cost

What You're Actually Paying For

Break down what these tools provide: Screenshot capture - Playwright does this for free. Image storage - S3 costs $0.023/GB. Pixel comparison - pixelmatch runs in milliseconds, open source. You're paying $5,000/month for a dashboard and some cloud VMs.

The Self-Hosted Alternative: $0 with Unlimited Screenshots

Self-hosting visual testing means your only cost is the compute you already have:

  • Screenshots: Unlimited. Stored locally. Cost = disk space you already have.
  • Diff computation: Your CPU. A pixelmatch comparison takes ~15ms.
  • Dashboard: Runs on the same server as your app.
  • AI features: One-time cost during test generation. Running tests consumes zero AI tokens.

Once the test exists, it's a deterministic Playwright script. Running it 10,000 times costs the same as running it once: nothing.

The SHA256 Optimization

Self-hosted tools can implement optimizations that per-screenshot services never will (because those optimizations reduce the billable unit). SHA256 hash comparison: if the hash matches the baseline, the test passes instantly. A cloud service has no incentive to implement this. A hash match is still a screenshot in their billing model.

Lastest branch comparison feature - included free

The Data Privacy Angle

Per-screenshot pricing has a second hidden cost: your screenshots leave your network. Every visual test uploads your application's rendered UI to a third party's cloud. For healthcare, finance, government - it's a compliance dealbreaker.

Self-hosted visual testing eliminates this entirely. Screenshots are captured, compared, and stored on your own infrastructure. Nothing leaves your network.

The only thing per-screenshot pricing guarantees is that your team will test less than they should. That's the hidden tax: not the dollars, but the coverage you silently sacrifice to keep the bill reasonable.