How to Monitor Website Changes with Automated Screenshots (No Signup)

2026-07-22 #tutorial, #monitoring, #screenshots, #automation, #ci-cd

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.