- Switch from awesome_bot (Ruby 2.7, unmaintained) to lychee (Rust, actively maintained)
- Run on pull requests as well as pushes to master, so broken links are caught before merge
- Expand whitelist with domains known to block crawlers: leanpub.com, jetbrains.com, wiki.php.net, zend.com, nusphere.com
- Accept HTTP 429 (rate limited) as non-failure to avoid false positives
- Upload lychee results as an artifact on failure