Start here

Desktop app

The Consuela desktop app is a local-first crawling and web diagnostics workbench built with Tauri 2.0 and a React frontend. It runs on macOS, Windows, and Linux, stores everything in SQLite on your machine, and sends nothing to a remote server.

Overview

The desktop app is the primary surface for Consuela. Point it at a URL, run a crawl, and inspect the results in a sortable, filterable table that handles tens of thousands of rows without slowing down. From the results table you can drill into any individual page for a full detail view, or switch to the analysis panel to see findings grouped by problem type across the whole site.

The main workflow is:

  1. Enter a URL in the address bar.
  2. Configure crawl settings: concurrency, rate limit, URL cap, robots handling.
  3. Start the crawl and watch pages stream in.
  4. Browse the results table — sort, filter, and search across every column.
  5. Open the page inspector for any row to see its full metadata, headers, links, and issues.
  6. Switch to the analysis panel for site-wide findings: duplicates, redirect chains, broken links, and more.
  7. Export what you need as CSV or a generated XML sitemap.

Beyond the crawler, the sidebar gives access to a set of workbench tools that cover the adjacent tasks a technical SEO or web engineer would otherwise open a separate application for: running a local dev server, scanning for security vulnerabilities, editing the hosts file, and querying DNS records.

Crawl modes

Consuela supports three crawl modes, each suited to a different task:

Mode What it does When to use it
Full site crawl Starts at one URL and follows internal links until it reaches the URL cap or runs out of pages. Routine site audits, initial baseline of a new client site, crawl-and-compare workflows.
Single page analysis Fetches one URL and runs the full analysis suite against it without following links. Checking a specific page after a deploy, verifying a fix, inspecting a competitor page.
URL list crawl Accepts a list of URLs (pasted or from a file) and fetches each one independently. Auditing a set of landing pages, checking URLs from a sitemap, re-crawling a filtered subset.

All three modes respect robots rules by default, honour the concurrency and per-host rate limits you set, and stream results into SQLite as pages arrive. An optional headless Chrome mode renders JavaScript before analysis, for sites that do not emit HTML on the initial response.

Analysis

The analysis panel sits alongside the results table and groups findings by category. Each tab runs its own analysis pass over the crawl data and presents the results independently. The tabs are:

Tab What it covers
Overview Top-level crawl statistics: total pages, response code distribution, issue counts by severity.
Punch list Every issue found across the crawl, grouped by rule, with severity and affected page count.
Duplicates Pages with identical or near-identical content, grouped into clusters.
Canonicals Canonical tag issues: self-referencing, conflicting, missing, and canonicals pointing to non-indexable pages.
Hreflang Hreflang validation including missing return links, invalid language codes, and incomplete coverage.
Headers HTTP response headers across all crawled pages, with filtering and grouping.
Performance Core Web Vitals (LCP, CLS, INP) from headless rendering, response time distribution, and page size breakdown.
Accessibility Accessibility issues found during headless analysis, grouped by impact level and WCAG criterion.
Redirects Redirect chains, loops, and pages that resolve through more hops than necessary.
Broken links Internal and external links returning 4xx or 5xx responses, grouped by target URL with inbound link counts.
Structured data JSON-LD and Schema.org validation, type distribution, and rich result eligibility assessment.
Site structure The internal link hierarchy as a navigable tree, with depth and orphan page detection.
Certificate TLS certificate details: issuer, validity dates, chain completeness, and protocol version.
Link graph Internal link graph with PageRank-style scoring, visualised as a force-directed network.
Journeys User journey analysis: entry points, navigation paths, and gap detection between key pages.
Custom extraction User-defined CSS or XPath selectors applied to every crawled page, with results in a dedicated column.

The performance and accessibility tabs require headless rendering to be enabled. All other tabs work from the data collected during a standard crawl.

Workbench tools

The sidebar navigation extends beyond the crawler into a set of tools that cover the adjacent tasks a web engineer deals with during a working session:

Tool What it does
Projects Point at a local code folder. Consuela detects runnable commands from package.json, Cargo.toml, or Makefile and runs them with live streaming terminal output.
Security Static analysis over a selected project: OWASP Top 10 rulesets and secrets detection, with findings filterable by severity.
Hosts An editor for the system hosts file with version history, restore, and reload-from-disk.
Network DNS lookups and record queries, external-IP detection, host resolution, and full resolver output.
Testing Detects test frameworks in a project (such as Playwright) and runs them, displaying output inline.
Plugins Additional analysis passes: static analysis, dynamic analysis, software composition, API security, and discovery.

Workspaces let you group sites, projects, and crawl history into named collections. Each workspace maintains its own set of tracked sites with per-site crawl history, so switching between clients or projects does not require clearing state. See Workspaces for details.

Data and privacy

Crawl data stays on your machine. Results are written to a local SQLite database during the crawl and read back from it for analysis, export, and comparison. No crawl data, page content, or site information is transmitted to Consuela or any third-party service.

This is a deliberate design choice, not a limitation. Many users audit sites under contracts that prohibit sending data to external services. Local-first storage means those audits can run without a policy exception.

The desktop app checks for updates on launch by contacting releases.consuela.io. This is the only outbound request the app makes on its own. It can be disabled in settings.