How to Monitor Website Changes with Automated Screenshots (No Signup)
Why Visual Monitoring?
Most monitoring tools check if a server responds (ping) or if a keyword exists (text match). But what if your dashboard renders wrong data, your pricing page has a layout shift, or a competitor changed their product image? These are visual changes — and they need visual monitoring.
A screenshot API like SnapShot API makes this trivial: take a screenshot on a schedule, diff it against the last capture, and you have free visual regression detection.
What You'll Build
A zero-cost monitoring script that:
- Captures a website screenshot every hour via cron
- Saves each screenshot with a timestamp
- Compares with the previous capture
- Alerts you if the page changed visually
Step 1: Get an API Key
curl https://snapshot-api-production-1374.up.railway.app/key
Save the key value from the JSON response. No email, no signup — it's instant.
Step 2: Write the Monitor Script
Create a file called monitor.sh:
#!/bin/bash SNAPSHOT_KEY="YOUR_KEY" URL="https://example.com" DIR="./snapshots" mkdir -p "$DIR" TS=$(date +%Y%m%d%H%M) FILE="$DIR/snapshot-$TS.png" curl -s -o "$FILE" \ "https://snapshot-api-production-1374.up.railway.app/screenshot?url=$URL&key=$SNAPSHOT_KEY" echo "Saved: $FILE"
Step 3: Set Up a Cron Job
# Run every hour 0 * * * * /path/to/monitor.sh
Step 4: Detect Changes
Add a simple ImageMagick comparison to your script:
PREV=$(ls -t "$DIR"/*.png | head -2 | tail -1)
CURR=$(ls -t "$DIR"/*.png | head -1)
if [ -n "$PREV" ] && [ -n "$CURR" ]; then
DIFF=$(compare -metric AE "$PREV" "$CURR" /dev/null 2>&1)
if [ "$DIFF" -gt 1000 ]; then
echo "Change detected! ($DIFF pixels differ)"
# Send alert (email, Slack, etc.)
fi
fi
Use Cases
Competitor Monitoring
Track when competitors change pricing, features, or landing pages. Get screenshots archived daily.
Dashboard Reliability
Verify your dashboards render correctly after every deploy. Catch blank pages or broken charts before users do.
CI/CD Visual Regression
Add a screenshot step to your deployment pipeline. Reject deploys that change critical pages visually.
# GitHub Actions step - name: Capture staging run: curl -s -o staging.png "https://snapshot-api-production-1374.up.railway.app/screenshot?url=https://staging.example.com&key=$KEY"
Limitations & Next Steps
This basic approach works for small-scale monitoring. For production use, consider:
- PixelDiff — a proper diff library with threshold tuning
- Database-backed history — store metadata and diffs per page
- Alert integrations — Slack webhook, PagerDuty, email
- Twice-daily cadence — or higher frequency on Pro ($15/mo for 1,000 captures)
Start monitoring right now — get your API key at snapshot-api-production-1374.up.railway.app or try it in the playground.