Generated or captured: when a picture of a page is evidence
Ask a capable model to show you what a competitor's checkout page looks like and you will get something convincing: right fonts, plausible layout, a button where a button should be. It is a good picture of a checkout page.
It is not their checkout page. Nothing in it came from their server. Every pixel is a prediction of what such a page tends to look like, and the parts most likely to be invented — the price, the fine print, the one banner you cared about — are exactly the parts you were looking at.
Most of the time this does not matter. Sometimes it is the only thing that matters, and the two cases are easy to tell apart once you have the distinction.
Illustration and record
An image of a web page is one of two artifacts, and they are not interchangeable:
- An illustration depicts. It communicates an idea — what a design could look like, roughly what a user sees. Accuracy is a nice-to-have.
- A record attests. It is a claim that at a particular moment, a particular URL rendered this. Accuracy is the entire value; without it there is nothing left.
Generated imagery is an excellent illustration and cannot be a record, because it has no causal connection to the page. No amount of model quality changes that. A perfect forgery is still a forgery, and a very good guess about what a price was is worth less than a mediocre photograph of it.
Where generated images are the right answer
Worth being clear, because the answer is "more often than you would think":
- Mockups and concepts. The page does not exist yet. There is nothing to capture.
- Marketing imagery. A stylised laptop with a dashboard on it. Nobody is reading the numbers.
- Placeholder UI in a deck or a doc, where the point is the shape of the thing.
- Illustrating a concept — "a cookie banner" in the abstract, not a specific site's cookie banner.
For all of these, capturing a real page would be slower and worse. Generate it.
Where it is disqualifying
The test is simple: would anyone ever need to rely on this image being true?
- Compliance and audit archives. "This disclosure was live on the 3rd" is a claim about the world. An approximation of it is not a weaker claim, it is a different one.
- Disputes. Evidence of what an offer said when a customer accepted it. The whole point is that you did not draw it.
- Visual regression baselines. A baseline is a record you diff against. Diffing against a prediction tells you how the prediction differs from reality, which is not a test.
- Bug reports. "Here is what I saw" loses its meaning if it is actually "here is roughly what one might see".
- Monitoring a page over time. The signal is change. A generator introduces change by itself, so there is no signal left.
- Invoices, receipts, confirmations. A generated receipt is a fabricated financial document, whatever the intent.
The awkward middle: post-processing
The clean cases are easy. The one worth thinking about is a real capture that something has then modified — an upscaler, a "clean up this screenshot" feature, an automatic crop that decides what was important.
Any step that invents pixels breaks the evidence property even though the image started out real. An upscaled screenshot contains detail that was never rendered, and the invented detail looks exactly as trustworthy as the rest. That is worse than an obviously generated image, because nothing signals which parts to doubt.
This applies to our own features, and it is worth saying plainly. getSnap.dev removes cookie banners and popups by default, and that changes the image: the capture shows the page without an overlay that a visitor would have seen. For a design review or a marketing asset that is exactly what you want. For a record, it is a modification you have to be able to account for.
The difference from generation is that it is a deletion of something
that was really there, performed by a documented, deterministic rule
you asked for — not an addition of something that never was. You can
describe precisely what was done and reproduce it. Still: if the image has
to be evidence, turn it off and capture what was actually served.
remove_popups: false and block_ads: false, and
the page as it came.
How to tell what you have
Three questions, in order:
- Did an HTTP request to that URL produce this? If no, it is an illustration. Stop here.
- Was anything added after rendering? Upscaling, inpainting, "enhancement" — any of them and it is no longer a faithful record, even though it began as one.
- Can you say exactly what was removed or changed, and reproduce it? Ad blocking and popup removal are defensible when documented and deterministic. "The tool tidied it up" is not.
A record should also carry the context that makes it checkable: the URL, the timestamp, the viewport, and ideally the HTTP status the page returned. An image on its own is a picture; an image plus those is a record.
Side by side
| You need | Generated | Captured |
|---|---|---|
| A mockup of a page that does not exist | Yes | Impossible |
| Marketing imagery | Yes | Slower, no benefit |
| What a real page looks like today | No | Yes |
| Proof of what it said on a date | No | Yes |
| A visual regression baseline | No — it varies by itself | Yes |
| A bug report attachment | No | Yes |
| Input to a vision model | Depends what you are asking it | Usually yes |
Capture the page, not an impression of it
A real browser, a real request, the page as it was served. No account needed to try it.
Open the free toolThe short version
Generated images answer "what could this look like". Captures answer "what did this look like". Both are useful and they are not substitutes, and the cost of confusing them is asymmetric: an illustration where you wanted a record is a problem you discover at the worst possible moment, usually when somebody disagrees with you about what a page said.
Related reading
- AI agents can drive a browser — the other half of this: determinism when a model is in the loop
- Screenshots for GPT-4V, Claude and Gemini — captures as model input
- Monitoring a page over time — where the record has to be repeatable
- API reference — including the flags to turn the tidying off