in Uncategorized

Website Analyzer

Claude Code allows me to build applications very quickly – including ones I had always wanted to create but had kept on my to-do list for years given the time they would require. In this case, things went a step further: I first asked Google Gemini to create a SWOT analysis of Screaming Frog, and then to write a prompt that would allow me to build a better app using Claude Code. Not all features are implemented yet. But the result is a native macOS app for crawling, analyzing, and monitoring websites: the Website Analyzer. Download available on request 🙂

Here is what the app does:

Crawling

  • Recursive crawling of a website starting from a start URL
  • Configurable parallelism (1–20 workers), depth (1–50), rate limit and timeout
  • Selectable user agent (Safari, Chrome, Googlebot, custom)
  • robots.txt compliance (optional)
  • Automatic HTTPS upgrading
  • HEAD requests for resources (images, CSS, JS, fonts, media) instead of full download
  • Detection of lazy-loading images (data-src, data-lazy-src, picture, srcset)

Link Checking

  • All internal and external links are checked (HTTP status code)
  • Status classification: OK, Redirect, Dead, Timeout, Error
  • Real redirects vs. trivial ones (http to https, www, trailing slash) are distinguished
  • Embedded resources (images, CSS, JS, fonts, iFrames) from CDNs are treated as internal
  • Grouped display: same target URL from multiple source pages

Results

  • Tabular overview of all crawled pages
  • Columns: URL, Content-Type, HTTP status, size, response time, depth, indexable
  • Search, sorting, filter by Content-Type
  • Color-coded status codes and response times

Insights & Analytics

  • Site Health Score (0–100) as a visual gauge
  • HTTP status code distribution (bar chart)
  • Link status distribution (OK / Dead / Redirect / Timeout / Error)
  • Page structure by depth
  • Content-Type distribution
  • Page Speed: average, median, P90, fastest/slowest pages (top 8)
  • Dead link hotspots: pages with the most dead links
  • Link graph: interactive force-directed visualization of page connections (pan, zoom, hover tooltips)

Export

  • CSV export for pages and links (with file dialog)

Technology

  • SwiftUI + macOS native
  • GRDB.swift (SQLite) for persistent storage
  • Fuzi (libxml2) for HTML parsing
  • Swift Concurrency (async/await, Actors) for thread-safe crawling
  • SwiftUI Canvas (Metal-backed) for link graph rendering

Write a Comment

Comment