It may seem obvious, but maintaining links working across every kind of web page of your project is crucial for ensuring your visitors and potential users have a good experience when learning.

Broken links can lead to frustration and may discourage users, making them leave sooner than expected.

Implement scripts to regularly check the status of links helps to promptly identify any that are breaking. Put those scripts in CIs.

Prepare backups or archived copies of linked content ensures continuity.

Notifications about broken links allow for swift corrective actions, such as requesting alternative links from authors or replacing the dead links with archived (e.g. wayback machine) versions.

This includes “meta” links in other places, such as the “website” links in git repositories.

Here’s the GitHub action we use on the awesome-gbdev list to keep links checked.

The opposite is also true, take great care in not breaking links when changing locations of your resources. Even when things are changing fast, prefer tools that allow you to host redirects and provide good internal search pages so people can always find what they were looking for.

Maintain an archive

If you’re linking to, or dealing with, open source user generated content, prepare a digital archive (e.g. a github org) forking/keeping the forks synced of such repositories. WayBack machine copies are often incomplete and binaries/past commits may be lost forever if the original author deletes them.

When hosting mirrors or historical copies, make sure that you highlight that it’s a copy, and not the upstream reference. You can also mention who is keeping this copy up in case they have additional resources (e.g. lost binaries) related to it.

This is the one we have for gbdev, the “gb-archive”.