SitePaladin
A self-hosted website auditor for bounded link checking and common SEO metadata findings.
Self-hosted portfolio project / single-operator scope
Problem & audience
Broken links and missing metadata are easier to investigate when findings are saved against the pages that produced them. SitePaladin provides bounded audits and page-level reports.
A website maintainer auditing an authorized site or controlled fixture, rather than attempting unrestricted crawling.
My role
Independent project developer, implementing the Rust application, crawl boundaries, persistence and server-rendered reporting interface.
Implemented features
- Checks links and common metadata in server-returned HTML within a bounded crawl.
- Saves findings by page in SQLite, with scan progress, cancellation and JSON/CSV export.
- Provides authenticated operator access and browser print/save-as-PDF for reports.
Engineering decisions
- Uses Axum/Tokio for the service and Askama templates for HTML, without requiring a JavaScript-rendering crawler.
- Validates outbound destinations and redirects hop by hop; deployment-level egress restrictions remain part of the documented hosting boundary.
- Persists operator sessions and records unfinished scans as interrupted after restart rather than claiming automatic resumption.
Testing & validation
- Repository unit tests cover URL boundaries, audit rules, link classification, CSRF and session persistence.
- CI defines formatting, Clippy and Rust tests.
- Built the fixture-enabled application locally and ran a controlled audit during this update. The scan completed with its configured 12-page limit; the screenshot preserves the truncation notice. The full Rust test suite was not rerun.
Current scope & limitations
- Does not execute page JavaScript, predict search rankings or provide AI-generated SEO analysis.
- Automatic PDF generation, email delivery and scheduling are roadmap items.
- The local-fixture mode is a development-only exception, not a general allowance to crawl private networks.
