Test your site on every device.
One API call.

Full-page screenshots, console errors, load timings, visual-regression diffs and scripted user flows across desktop, tablet and phone — rendered on real Chromium, WebKit (Safari) and Firefox engines, returned in seconds. Hosted in the EU.

Get your API key — free beta Read the docs

See it — one call, every device

demo screenshot
Live render of wikipedia.org/wiki/Alps — generated by the same API you get.

Everything your CI wants back

📱 Device grid

desktop · laptop · iPhone 14 · iPhone SE · Pixel 7 · iPad · Galaxy S9 — device-accurate emulation, full-page screenshots, parallel rendering.

🧩 Real browser engines

Chromium by default — plus true Safari rendering via WebKit (safari, iphone-14-safari, ipad-safari) and Firefox, for the bugs only an engine can show you.

🔍 Visual regression

First run of a URL becomes its baseline. Every later run is pixel-diffed per device: pass / changed with a diff heat image and a tunable threshold.

🧭 Flows

Script whole journeys as JSON steps — goto, click, fill, press, select, waitFor, scrollTo, assertVisible, assertText, screenshot. Named screenshots become regression checkpoints across the grid.

🎬 Video replay

Add "video": true to a flow and get a webm recording per device — watch exactly what the browser did, especially when a step fails.

⚠️ Console + timings

Every run captures JS console errors, page errors and load times per device. Failures include the step log and a screenshot taken at the moment of death.

🔐 Auth walls

Custom headers, HTTP basic auth and cookies per request — test staging sites behind access tokens without exposing them anywhere permanent.

🤖 CI-ready

Exit-code-friendly HTTP statuses (422 on any device failure), JSON everything, curl-first design. Wire it into GitLab/GitHub CI in five lines.

⏰ Scheduled monitoring

Save a flow, run it every 15+ minutes, get a webhook (Slack, anything) the moment a journey breaks or a page visually changes. Your site, watched.

🇪🇺 EU-hosted

Dedicated infrastructure in Germany. Predictable flat pricing with no metered egress surprises. Free while in beta.

How it works

1 · Sign up

Username + password, no email. Your API key is on the dashboard.

2 · Call the API

POST a URL (and optionally steps) — get screenshots, diffs, errors and timings back in seconds.

3 · Gate your deploys

Baseline once, then fail CI when a device renders differently or a journey breaks.

curl -X POST https://grid.jipidy.com/api/shot \
  -H "X-API-Key: jg_..." -H "Content-Type: application/json" \
  -d '{"url": "https://your-site.com"}'

{
  "run": "9f2c1b...",
  "results": [
    {"device":"desktop",  "ok":true, "loadMs":912,  "consoleErrors":[],
     "diff":{"status":"pass","pct":0},
     "screenshot":"https://grid.jipidy.com/shots/.../desktop.png"},
    {"device":"iphone-14","ok":true, "loadMs":1204, "consoleErrors":["TypeError: ..."],
     "diff":{"status":"changed","pct":1.42,"image":".../iphone-14.diff.png"},
     "screenshot":"https://grid.jipidy.com/shots/.../iphone-14.png"}
  ]
}

Start free