Migrate Lighthouse CI audits and broken links checking into this repository.

Context

SvelteKit's prerender crawler only validates internal links. External URLs (https://...) are silently discarded by is_root_relative() in the prerender loop — no handler, callback, or plugin hook ever sees them. There is no built-in or planned feature for external link validation.

Approach

Use lychee (same as timestripe) as a post-build link checker against the build/ output. Lychee is a fast Rust-based tool that checks both internal and external links in HTML files.

  • Install via brew install lychee (local) and GitHub Action (CI)
  • Run against ./build/ after pnpm build
  • Add a check:links script (not postbuild — avoid slowing local dev)
  • Configure .lychee.toml for excludes, timeouts, accepted status codes

Tasks

  • Migrate Lighthouse CI configuration and scripts
  • Add lychee as the broken links checker (replaces previous solution)
  • Add .lychee.toml config with sensible defaults
  • Add check:links script to package.json
  • Integrate both into the CI/CD pipeline (GitHub Actions)

Quality checks in-repo

Lighthouse and links check migration

A static site template built with SvelteKit.

Sveleton, 2025