Getting started

ViewPort crawls any website and renders every page across your chosen devices at once — locally, privately, instantly. There is no account and no server component; everything runs on your machine.

Install

Download the desktop app, or run the CLI directly with npx — no install required for one-off crawls.

npx viewport crawl https://your-site.dev

By default this follows internal links up to 3 levels deep and captures up to 200 pages. Both are configurable.

CLI reference

viewport crawl <url> [options]

  --depth <n>       Max link depth to follow        (default: 3)
  --max-pages <n>   Max pages to capture             (default: 200)
  --devices <list>  Comma-separated device presets   (default: all enabled)
  --watch           Re-capture affected frames on every save
  --ci              Exit non-zero if diff crosses --threshold
  --threshold <n>   Percent-changed threshold for --ci (default: 5)
  --out <dir>       Export directory for --format
  --format <type>   json | zip | pdf

Configuration

Crawl defaults, enabled devices, and export preferences can all be set per-project in a viewport.config.json file, or overridden per-run with CLI flags.

{
  "depth": 3,
  "maxPages": 200,
  "devices": ["iphone-15", "ipad-pro-13", "macbook-air"]
}

Device presets

ViewPort ships with 14 built-in device presets, covering phones through ultrawide desktops:

  • iPhone 15 (393px), iPhone 15 Pro Max (430px)
  • Pixel 8 (412px), Pixel 8 Pro (448px)
  • Galaxy S24 (360px)
  • iPad mini (744px), iPad Pro 13″ (1024px)
  • Surface Pro (912px), Surface Laptop (1280px)
  • MacBook Air (1280px), MacBook Pro 16″ (1728px)
  • Studio Display (1920px), Ultrawide Monitor (2560px)
  • Apple Watch Ultra 2 (205px)

Review modes

Four ways to look at a crawl, all switchable with number keys 1–4:

  • Gallery — every page × every device in one grid.
  • Page — one page across all breakpoints.
  • Device — one device, every page in sequence.
  • Compare — two crawl snapshots side by side.