website icon indicating copy to clipboard operation
website copied to clipboard

[BUG] Broken Links in Documentation – Open Governance Model and Link - Redirects to 404

Open Sourya07 opened this issue 1 month ago • 10 comments

Describe the bug.

Hi , I noticed that the "LInk" and “Open Governance Model” link on the website redirects to two GitHub pages that no longer exist: • https://github.com/asyncapi/community/blob/master/TSC_MEMBERSHIP.md • https://github.com/asyncapi/community/blob/master/CHARTER.md

Both links return: 404 - page not found The master branch of community does not contain the path TSC_MEMBERSHIP.md and chapter.md

It seems the files were moved, renamed, or the branch structure changed, but the website still points to the old master branch paths.

Expected behavior

The links should correctly open the governance documents in the community repo.

Screenshots

The link points to outdated locations under the master branch.

Image Image

url -> https://www.asyncapi.com/community/tsc

How to Reproduce

1.	Go to the - [https://www.asyncapi.com/community/tsc](url)
2.	Click Link → Open Governance Model and links
3.	You are redirected to URLs that result in a 404.

🖥️ Device Information [optional]

  • Operating System (OS):
  • Browser:
  • Browser Version:

👀 Have you checked for similar open issues?

  • [x] I checked and didn't find similar issue

🏢 Have you read the Contributing Guidelines?

Are you willing to work on this issue ?

Yes I am willing to submit a PR!

Sourya07 avatar Nov 21 '25 11:11 Sourya07

Hii @princerajpoot20 please review this issue .

Sourya07 avatar Nov 21 '25 11:11 Sourya07

Can you please do one thing:

Use Ctrl + Shift + F (Find in all files) and check all the links that end with .md which are pointing to files at the root directory.

For example, in this case: https://github.com/asyncapi/community/blob/master/TSC_MEMBERSHIP.md this .md file is located at the root (immediately after /master/).

Please cross-verify all such links and check whether the referenced .md files actually exist or not.

I’d suggest, If you could go one step further, checking all the links that end with .md, not just the ones at the root.

The problem is that there are multiple broken links, and we’ve been fixing them one or two at a time for quite a long period. Instead of repeatedly opening new issues for each broken link, it would be better to fix them all in one go so we don’t have to come back with yet another issue for a different broken link.

You can share your findings here in the issue (a list of all the broken links) before creating the PR.

princerajpoot20 avatar Nov 22 '25 12:11 princerajpoot20

@princerajpoot20
okayy

Sourya07 avatar Nov 22 '25 12:11 Sourya07

Prepare a list with three columns:

  • Where the link is present (location of the file). This will help us identify whether the fix needs to be made in the website repo or in other repository.
  • Current docs link (the broken one)
  • Corrected docs link

princerajpoot20 avatar Nov 22 '25 12:11 princerajpoot20

@princerajpoot20 many of the url is duplicate -> (- here we can also use scripts in package.json for future reference here -) Broken links found: 120 -> [ { "file": "/Users/sourya/website/.github/workflows/stale-issues-prs.yml", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/.github/workflows/stale-issues-prs.yml", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/.github/workflows/welcome-first-time-contrib.yml", "url": "https://github.com/asyncapi/community/blob/master/git-workflow.md" }, { "file": "/Users/sourya/website/CONTRIBUTING.md", "url": "https://github.com/asyncapi/community/blob/master/slack-etiquette.md" }, { "file": "/Users/sourya/website/CONTRIBUTING.md", "url": "https://github.com/asyncapi/community/blob/master/git-workflow.md" }, { "file": "/Users/sourya/website/CONTRIBUTING.md", "url": "https://github.com/asyncapi/community/blob/master/recognize-contributors.md" }, { "file": "/Users/sourya/website/README.md", "url": "https://github.com/asyncapi/community/blob/master/git-workflow.md" }, { "file": "/Users/sourya/website/components/NewsletterSubscribe.tsx", "url": "https://github.com/asyncapi/website/issues/new?template=bug.md" }, { "file": "/Users/sourya/website/components/layout/CommunityLayout.tsx", "url": "https://github.com/asyncapi/community/blob/master/TSC_MEMBERSHIP.md" }, { "file": "/Users/sourya/website/components/newsroom/Newsroom.tsx", "url": "https://github.com/asyncapi/website/issues/new?template=blog.md" }, { "file": "/Users/sourya/website/markdown/about/index.md", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/markdown/blog/2020-summary.md", "url": "https://github.com/asyncapi/website/issues/new?template=blog.md" }, { "file": "/Users/sourya/website/markdown/blog/2020-summary.md", "url": "https://github.com/asyncapi/website/issues/new?template=blog.md" }, { "file": "/Users/sourya/website/markdown/blog/2021-summary.md", "url": "https://github.com/asyncapi/website/issues/new?template=blog.md" }, { "file": "/Users/sourya/website/markdown/blog/2022Q1-summary.md", "url": "https://github.com/asyncapi/community/blob/master/MEETINGS_ORGANIZATION.md" }, { "file": "/Users/sourya/website/markdown/blog/2023-mentorship-summary.md", "url": "https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md" }, { "file": "/Users/sourya/website/markdown/blog/2023-mentorship-summary.md", "url": "https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md" }, { "file": "/Users/sourya/website/markdown/blog/2023-mentorship-summary.md", "url": "https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md" }, { "file": "/Users/sourya/website/markdown/blog/2023-mentorship-summary.md", "url": "https://github.com/asyncapi/.github/blob/master/slack-etiquette.md" }, { "file": "/Users/sourya/website/markdown/blog/2024-Q1-docs-report.md", "url": "https://github.com/asyncapi/community/blob/master/docs/onboarding-guide/docs-onboarding-checklist.md" }, { "file": "/Users/sourya/website/markdown/blog/2024-annual-summary.md", "url": "https://github.com/asyncapi/community/blob/master/annual-goals/2025_Community_Goals.md" }, { "file": "/Users/sourya/website/markdown/blog/2024-april-summary.md", "url": "https://github.com/asyncapi/community/blob/master/voting.md" }, { "file": "/Users/sourya/website/markdown/blog/2024-february-summary.md", "url": "https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md" }, { "file": "/Users/sourya/website/markdown/blog/2024-february-summary.md", "url": "https://github.com/asyncapi/community/blob/master/WORKING_GROUPS.md" }, { "file": "/Users/sourya/website/markdown/blog/2024-july-summary.md", "url": "https://github.com/asyncapi/community/blob/master/TSC_VOTING_OVERVIEW.md" }, { "file": "/Users/sourya/website/markdown/blog/2025-Q1-marketing-report.md", "url": "https://github.com/asyncapi/community/blob/master/annual-goals/2025_marketing_strategy.md" }, { "file": "/Users/sourya/website/markdown/blog/2025-february-summary.md", "url": "https://github.com/asyncapi/community/blob/master/annual-goals/2025_Community_Goals.md" }, { "file": "/Users/sourya/website/markdown/blog/2025-gsoc-phase-1.md", "url": "https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2025/asyncapi-gsoc-ideas-page.md" }, { "file": "/Users/sourya/website/markdown/blog/april-2021-at-asyncapi.md", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/markdown/blog/async-api-spec-3.0-release.md", "url": "https://github.com/asyncapi/community/blob/master/git-workflow.md" }, { "file": "/Users/sourya/website/markdown/blog/asyncapi-bounty-program-2024.md", "url": "https://github.com/asyncapi/community/blob/master/voting.md" }, { "file": "/Users/sourya/website/markdown/blog/asyncapi-bounty-program-2024.md", "url": "https://github.com/asyncapi/community/blob/master/TSC_VOTING_OVERVIEW.md" }, { "file": "/Users/sourya/website/markdown/blog/beyond-boundaries.md", "url": "https://github.com/asyncapi/community/blob/master/mentorship/asyncapi-mentorship/2022/project-ideas.md" }, { "file": "/Users/sourya/website/markdown/blog/beyond-boundaries.md", "url": "https://github.com/asyncapi/community/blob/master/mentorship/asyncapi-mentorship/2022/README.md" }, { "file": "/Users/sourya/website/markdown/blog/beyond-boundaries.md", "url": "https://github.com/asyncapi/.github/blob/master/slack-etiquette.md" }, { "file": "/Users/sourya/website/markdown/blog/february-2021-at-asyncapi.md", "url": "https://github.com/asyncapi/event-gateway/issues/new?assignees=&labels=use+case&template=use_case.md" }, { "file": "/Users/sourya/website/markdown/blog/february-2021-at-asyncapi.md", "url": "https://github.com/asyncapi/generator/blob/master/docs/react-render-engine.md" }, { "file": "/Users/sourya/website/markdown/blog/february-2021-at-asyncapi.md", "url": "https://github.com/asyncapi/generator/blob/master/docs/typescript-support.md" }, { "file": "/Users/sourya/website/markdown/blog/first-governance-elections.md", "url": "https://github.com/asyncapi/community/blob/master/GOVERNANCE.md" }, { "file": "/Users/sourya/website/markdown/blog/google-season-of-docs-2022.md", "url": "https://github.com/asyncapi/community/blob/master/slack-etiquette.md" }, { "file": "/Users/sourya/website/markdown/blog/hacktoberfest-2020.md", "url": "https://github.com/asyncapi/community/blob/master/git-workflow.md" }, { "file": "/Users/sourya/website/markdown/blog/january-2021-at-asyncapi.md", "url": "https://github.com/asyncapi/generator/blob/master/docs/react-render-engine.md" }, { "file": "/Users/sourya/website/markdown/blog/july-december-2021-at-asyncapi.md", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/markdown/blog/march-2021-at-asyncapi.md", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/markdown/blog/may-2021-at-asyncapi.md", "url": "https://github.com/asyncapi/community/blob/master/slack-etiquette.md" }, { "file": "/Users/sourya/website/markdown/blog/new-governance-board.md", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/markdown/blog/new-governance-board.md", "url": "https://github.com/asyncapi/community/blob/master/GOVERNANCE.md" }, { "file": "/Users/sourya/website/markdown/blog/openforce-2022.md", "url": "https://github.com/asyncapi/community/blob/master/slack-etiquette.md" }, { "file": "/Users/sourya/website/markdown/blog/react-as-generator-engine.md", "url": "https://github.com/asyncapi/generator/blob/master/docs/configuration-file.md" }, { "file": "/Users/sourya/website/markdown/blog/react-as-generator-engine.md", "url": "https://github.com/asyncapi/generator/blob/master/docs/nunjucks-render-engine.md" }, { "file": "/Users/sourya/website/markdown/blog/using-nunjucks-with-asyncapi.md", "url": "https://github.com/asyncapi/generator/blob/master/docs/react-render-engine.md" }, { "file": "/Users/sourya/website/markdown/docs/community/010-contribution-guidelines/contribute-blog-post.md", "url": "https://github.com/asyncapi/website/issues/new?template=blog.md" }, { "file": "/Users/sourya/website/markdown/docs/community/010-contribution-guidelines/contribution-flow.md", "url": "https://github.com/asyncapi/community/issues/new?assignees=&labels=bug&template=bug_report.md" }, { "file": "/Users/sourya/website/markdown/docs/community/050-mentorship-program/summerofcode-2021-README.md", "url": "https://github.com/asyncapi/asyncapi/blob/master/versions/2.0.0/asyncapi.md" }, { "file": "/Users/sourya/website/markdown/docs/community/050-mentorship-program/summerofcode-2023-asyncapi-gsoc-ideas-page.md", "url": "https://github.com/asyncapi/.github/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/markdown/docs/community/maintainership-guide/amp-code-of-conduct.md", "url": "https://github.com/asyncapi/community/blob/master/code_of_conduct/coc-incident-resolution-procedures.md" }, { "file": "/Users/sourya/website/markdown/docs/community/maintainership-guide/amp-mentor-support-and-escalation-path.md", "url": "https://github.com/asyncapi/community/blob/master/code_of_conduct/coc-incident-resolution-procedures.md" }, { "file": "/Users/sourya/website/markdown/docs/reference/specification/v3.0.0.md", "url": "https://github.com/asyncapi/bindings/blob/master/sns/README.md" }, { "file": "/Users/sourya/website/markdown/docs/reference/specification/v3.0.0.md", "url": "https://github.com/asyncapi/bindings/blob/master/sns/README.md" }, { "file": "/Users/sourya/website/markdown/docs/reference/specification/v3.0.0.md", "url": "https://github.com/asyncapi/bindings/blob/master/sns/README.md" }, { "file": "/Users/sourya/website/pages/about/index.mdx", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/pages/blog/2020-summary.mdx", "url": "https://github.com/asyncapi/website/issues/new?template=blog.md" }, { "file": "/Users/sourya/website/pages/blog/2020-summary.mdx", "url": "https://github.com/asyncapi/website/issues/new?template=blog.md" }, { "file": "/Users/sourya/website/pages/blog/2021-summary.mdx", "url": "https://github.com/asyncapi/website/issues/new?template=blog.md" }, { "file": "/Users/sourya/website/pages/blog/2022Q1-summary.mdx", "url": "https://github.com/asyncapi/community/blob/master/MEETINGS_ORGANIZATION.md" }, { "file": "/Users/sourya/website/pages/blog/2023-mentorship-summary.mdx", "url": "https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md" }, { "file": "/Users/sourya/website/pages/blog/2023-mentorship-summary.mdx", "url": "https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md" }, { "file": "/Users/sourya/website/pages/blog/2023-mentorship-summary.mdx", "url": "https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md" }, { "file": "/Users/sourya/website/pages/blog/2023-mentorship-summary.mdx", "url": "https://github.com/asyncapi/.github/blob/master/slack-etiquette.md" }, { "file": "/Users/sourya/website/pages/blog/2024-Q1-docs-report.mdx", "url": "https://github.com/asyncapi/community/blob/master/docs/onboarding-guide/docs-onboarding-checklist.md" }, { "file": "/Users/sourya/website/pages/blog/2024-annual-summary.mdx", "url": "https://github.com/asyncapi/community/blob/master/annual-goals/2025_Community_Goals.md" }, { "file": "/Users/sourya/website/pages/blog/2024-april-summary.mdx", "url": "https://github.com/asyncapi/community/blob/master/voting.md" }, { "file": "/Users/sourya/website/pages/blog/2024-february-summary.mdx", "url": "https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md" }, { "file": "/Users/sourya/website/pages/blog/2024-february-summary.mdx", "url": "https://github.com/asyncapi/community/blob/master/WORKING_GROUPS.md" }, { "file": "/Users/sourya/website/pages/blog/2024-july-summary.mdx", "url": "https://github.com/asyncapi/community/blob/master/TSC_VOTING_OVERVIEW.md" }, { "file": "/Users/sourya/website/pages/blog/2025-Q1-marketing-report.mdx", "url": "https://github.com/asyncapi/community/blob/master/annual-goals/2025_marketing_strategy.md" }, { "file": "/Users/sourya/website/pages/blog/2025-february-summary.mdx", "url": "https://github.com/asyncapi/community/blob/master/annual-goals/2025_Community_Goals.md" }, { "file": "/Users/sourya/website/pages/blog/2025-gsoc-phase-1.mdx", "url": "https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2025/asyncapi-gsoc-ideas-page.md" }, { "file": "/Users/sourya/website/pages/blog/april-2021-at-asyncapi.mdx", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/pages/blog/async-api-spec-3.0-release.mdx", "url": "https://github.com/asyncapi/community/blob/master/git-workflow.md" }, { "file": "/Users/sourya/website/pages/blog/asyncapi-bounty-program-2024.mdx", "url": "https://github.com/asyncapi/community/blob/master/voting.md" }, { "file": "/Users/sourya/website/pages/blog/asyncapi-bounty-program-2024.mdx", "url": "https://github.com/asyncapi/community/blob/master/TSC_VOTING_OVERVIEW.md" }, { "file": "/Users/sourya/website/pages/blog/beyond-boundaries.mdx", "url": "https://github.com/asyncapi/community/blob/master/mentorship/asyncapi-mentorship/2022/project-ideas.md" }, { "file": "/Users/sourya/website/pages/blog/beyond-boundaries.mdx", "url": "https://github.com/asyncapi/community/blob/master/mentorship/asyncapi-mentorship/2022/README.md" }, { "file": "/Users/sourya/website/pages/blog/beyond-boundaries.mdx", "url": "https://github.com/asyncapi/.github/blob/master/slack-etiquette.md" }, { "file": "/Users/sourya/website/pages/blog/february-2021-at-asyncapi.mdx", "url": "https://github.com/asyncapi/event-gateway/issues/new?assignees=&labels=use+case&template=use_case.md" }, { "file": "/Users/sourya/website/pages/blog/february-2021-at-asyncapi.mdx", "url": "https://github.com/asyncapi/generator/blob/master/docs/react-render-engine.md" }, { "file": "/Users/sourya/website/pages/blog/february-2021-at-asyncapi.mdx", "url": "https://github.com/asyncapi/generator/blob/master/docs/typescript-support.md" }, { "file": "/Users/sourya/website/pages/blog/first-governance-elections.mdx", "url": "https://github.com/asyncapi/community/blob/master/GOVERNANCE.md" }, { "file": "/Users/sourya/website/pages/blog/google-season-of-docs-2022.mdx", "url": "https://github.com/asyncapi/community/blob/master/slack-etiquette.md" }, { "file": "/Users/sourya/website/pages/blog/hacktoberfest-2020.mdx", "url": "https://github.com/asyncapi/community/blob/master/git-workflow.md" }, { "file": "/Users/sourya/website/pages/blog/index.tsx", "url": "https://github.com/asyncapi/website/issues/new?template=blog.md" }, { "file": "/Users/sourya/website/pages/blog/january-2021-at-asyncapi.mdx", "url": "https://github.com/asyncapi/generator/blob/master/docs/react-render-engine.md" }, { "file": "/Users/sourya/website/pages/blog/july-december-2021-at-asyncapi.mdx", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/pages/blog/march-2021-at-asyncapi.mdx", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/pages/blog/may-2021-at-asyncapi.mdx", "url": "https://github.com/asyncapi/community/blob/master/slack-etiquette.md" }, { "file": "/Users/sourya/website/pages/blog/new-governance-board.mdx", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/pages/blog/new-governance-board.mdx", "url": "https://github.com/asyncapi/community/blob/master/GOVERNANCE.md" }, { "file": "/Users/sourya/website/pages/blog/openforce-2022.mdx", "url": "https://github.com/asyncapi/community/blob/master/slack-etiquette.md" }, { "file": "/Users/sourya/website/pages/blog/react-as-generator-engine.mdx", "url": "https://github.com/asyncapi/generator/blob/master/docs/configuration-file.md" }, { "file": "/Users/sourya/website/pages/blog/react-as-generator-engine.mdx", "url": "https://github.com/asyncapi/generator/blob/master/docs/nunjucks-render-engine.md" }, { "file": "/Users/sourya/website/pages/blog/using-nunjucks-with-asyncapi.mdx", "url": "https://github.com/asyncapi/generator/blob/master/docs/react-render-engine.md" }, { "file": "/Users/sourya/website/pages/community/ambassadors/index.tsx", "url": "https://github.com/asyncapi/community/blob/master/AMBASSADOR_ORGANIZATION.md" }, { "file": "/Users/sourya/website/pages/community/board.tsx", "url": "https://github.com/asyncapi/community/blob/master/GOVERNANCE.md" }, { "file": "/Users/sourya/website/pages/community/board.tsx", "url": "https://github.com/asyncapi/community/blob/master/GOVERNANCE.md" }, { "file": "/Users/sourya/website/pages/community/tsc.tsx", "url": "https://github.com/asyncapi/community/blob/master/TSC_MEMBERSHIP.md" }, { "file": "/Users/sourya/website/pages/community/tsc.tsx", "url": "https://github.com/asyncapi/community/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/pages/docs/community/010-contribution-guidelines/contribute-blog-post.mdx", "url": "https://github.com/asyncapi/website/issues/new?template=blog.md" }, { "file": "/Users/sourya/website/pages/docs/community/010-contribution-guidelines/contribution-flow.mdx", "url": "https://github.com/asyncapi/community/issues/new?assignees=&labels=bug&template=bug_report.md" }, { "file": "/Users/sourya/website/pages/docs/community/050-mentorship-program/summerofcode-2021-README.mdx", "url": "https://github.com/asyncapi/asyncapi/blob/master/versions/2.0.0/asyncapi.md" }, { "file": "/Users/sourya/website/pages/docs/community/050-mentorship-program/summerofcode-2023-README.mdx", "url": "https://github.com/asyncapi/.github/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/pages/docs/community/050-mentorship-program/summerofcode-2023-asyncapi-gsoc-ideas-page.mdx", "url": "https://github.com/asyncapi/.github/blob/master/CHARTER.md" }, { "file": "/Users/sourya/website/pages/docs/community/maintainership-guide/amp-code-of-conduct.mdx", "url": "https://github.com/asyncapi/community/blob/master/code_of_conduct/coc-incident-resolution-procedures.md" }, { "file": "/Users/sourya/website/pages/docs/community/maintainership-guide/amp-mentor-support-and-escalation-path.mdx", "url": "https://github.com/asyncapi/community/blob/master/code_of_conduct/coc-incident-resolution-procedures.md" }, { "file": "/Users/sourya/website/pages/docs/reference/specification/v3.0.0.mdx", "url": "https://github.com/asyncapi/bindings/blob/master/sns/README.md" }, { "file": "/Users/sourya/website/pages/docs/reference/specification/v3.0.0.mdx", "url": "https://github.com/asyncapi/bindings/blob/master/sns/README.md" }, { "file": "/Users/sourya/website/pages/docs/reference/specification/v3.0.0.mdx", "url": "https://github.com/asyncapi/bindings/blob/master/sns/README.md" }, { "file": "/Users/sourya/website/tests/fixtures/markdown/check-edit-links-data.ts", "url": "https://github.com/asyncapi/website/blob/master/markdown/docs/docs/concepts/application.md" }, { "file": "/Users/sourya/website/tests/fixtures/markdown/check-edit-links-data.ts", "url": "https://github.com/asyncapi/cli/tree/master/docs/index.md" }, { "file": "/Users/sourya/website/tests/markdown/check-edit-links.test.ts", "url": "https://github.com/org/repo/edit/main/v2.x.md" } ]

Sourya07 avatar Nov 22 '25 15:11 Sourya07

Hi @Sourya07, great start with that list! However, it looks like it is still missing some broken links. After I checked for relative (internal) links, I found 106 broken links total. After I checked for all links (including external links), I found 901 bad links, 2 time outs and 1 unsupported link.

@princerajpoot20 I dug deeper to figure out why we have so many broken links despite having a test script. I found the root cause. The current local script reports "All links are valid" even when they are not, meaning it is giving us false negatives and letting these errors slip into production.

Proposal: I suggest we upgrade our tooling to use Lychee:

On Pull Requests (Strict): We run Lychee with the --offline flag.

  • This checks only internal/relative links (file paths).
  • If a contributor links to a missing local file, the PR fails. This stops the "106 broken links" issue from growing.
  • This is safe because it ignores external URLs .

Weekly Schedule (Informational): We keep the Sunday midnight workflow but switch it to Lychee.

  • This checks external URLs (online).
  • It catches the ~900+ external links that might have rotted or timed out and notifies us on Slack, without blocking daily development.

Do you want me to create a new issue for this "Tooling Upgrade" to track it separately, or should we handle it here?

rlpratyoosh avatar Nov 23 '25 08:11 rlpratyoosh

@rlpratyoosh, The maintainer had specifically instructed me to check only .md file references, so the initial list I shared was intentionally limited to Markdown links. That’s why my scan didn’t include all external URLs — it was focused on what was requested. I noticed that the repository already includes a GitHub workflow that checks for broken “Edit this page” links. Since we already have this mechanism in place, I think we can extend or upgrade the existing script to cover all link types (internal + external) instead of introducing an entirely new tool.

Upgrading the current workflow could give us: ->Consistent logic within the repo ->No additional dependency ->A single source of truth for link checking ->The ability to fix the root cause without splitting the logic across tools

I’m completely open to Lychee as well if the team prefers it — but since we already have a working foundation, enhancing the current script might be the simpler first step.

Most of the links you have mentioned will work due to this -> GitHub does NOT allow automated requests (HEAD/GET) to certain URLs i have worked on that previously . don't just use gpt 😅

Sourya07 avatar Nov 23 '25 08:11 Sourya07

@Sourya07 Thanks for the detailed response! I totally get the hesitation to add new dependencies if we can avoid them.

To clarify my point about Lychee vs. Upgrading the Script:

Re: GitHub Rate Limiting: You are absolutely right that GitHub blocks automated external requests (429 errors). That’s exactly why I proposed using Lychee in --offline mode for PRs.

  • The offline mode only checks the local file system (resolving ../ and ./ paths against the directory structure).
  • It makes zero network requests, so it triggers no rate limits and is blazing fast for CI.

Re: Complexity: My concern with upgrading the current script is that accurately resolving relative paths (handling ../../, anchors, and mixed HTML/Markdown) usually requires a full AST parser, not just regex. The current script passes "Success" because it’s likely not resolving those paths at all.

  • Lychee handles that resolution out of the box.
  • "Upgrading" our script to match that logic effectively means rebuilding a link checker from scratch, which might actually be more maintenance than just using a specialized tool.

However, I’m happy to follow the maintainer's lead! If @princerajpoot20 prefers we patch the existing Node script to handle relative paths better, I can look into that too. Just wanted to offer the "ready-made" solution first.

rlpratyoosh avatar Nov 23 '25 10:11 rlpratyoosh

Personally, I’m open to either approach — whichever direction @princerajpoot20 feels is better for the repo, I’m happy to implement.

This discussion will definitely help us choose the cleanest long-term solution!

Sourya07 avatar Nov 23 '25 10:11 Sourya07

@princerajpoot20 can you suggest the best next steps we should take here? If you have any recommended approach or direction, please share — it will help us plan the next move.

Sourya07 avatar Dec 07 '25 14:12 Sourya07

Prepare a list with three columns:

  • Where the link is present (location of the file). This will help us identify whether the fix needs to be made in the website repo or in other repository.
  • Current docs link (the broken one)
  • Corrected docs link

@Sourya07 you ignored the first point I mentioned here

princerajpoot20 avatar Dec 26 '25 08:12 princerajpoot20

@princerajpoot20 bhaiya 😊 i have mentioned in the slack that most of the links are not presented in the community folder thats why i did not mentioned that . i have checked for most of the link that are not mentioned or did not have link point no 1. should i mentioned for the links which are present ? tell me so i can proceed further

Sourya07 avatar Dec 26 '25 08:12 Sourya07

I am talking about the location of the file in the website repo. Which file in the website repository contains this link

princerajpoot20 avatar Dec 26 '25 08:12 princerajpoot20

Broken Links Report - AsyncAPI Website

This report lists all broken .md file links found in the AsyncAPI website repository with their corrected URLs.

Summary

  • Total broken links found: 120 (with duplicates)
  • Unique broken links: ~35

Governance & Policy Files

File Location Current (Broken) Link Corrected Link
.github/workflows/stale-issues-prs.yml https://github.com/asyncapi/community/blob/master/CHARTER.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/CHARTER.md
components/layout/CommunityLayout.tsx https://github.com/asyncapi/community/blob/master/TSC_MEMBERSHIP.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/TSC_MEMBERSHIP.md
markdown/about/index.md https://github.com/asyncapi/community/blob/master/CHARTER.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/CHARTER.md
pages/about/index.mdx https://github.com/asyncapi/community/blob/master/CHARTER.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/CHARTER.md
pages/community/tsc.tsx https://github.com/asyncapi/community/blob/master/TSC_MEMBERSHIP.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/TSC_MEMBERSHIP.md
pages/community/tsc.tsx https://github.com/asyncapi/community/blob/master/CHARTER.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/CHARTER.md
markdown/blog/april-2021-at-asyncapi.md https://github.com/asyncapi/community/blob/master/CHARTER.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/CHARTER.md
markdown/blog/july-december-2021-at-asyncapi.md https://github.com/asyncapi/community/blob/master/CHARTER.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/CHARTER.md
markdown/blog/march-2021-at-asyncapi.md https://github.com/asyncapi/community/blob/master/CHARTER.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/CHARTER.md
markdown/blog/new-governance-board.md https://github.com/asyncapi/community/blob/master/CHARTER.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/CHARTER.md
markdown/blog/new-governance-board.md https://github.com/asyncapi/community/blob/master/GOVERNANCE.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/GOVERNANCE.md
markdown/blog/first-governance-elections.md https://github.com/asyncapi/community/blob/master/GOVERNANCE.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/GOVERNANCE.md
pages/community/board.tsx https://github.com/asyncapi/community/blob/master/GOVERNANCE.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/GOVERNANCE.md

Contribution Guidelines

File Location Current (Broken) Link Corrected Link
.github/workflows/welcome-first-time-contrib.yml https://github.com/asyncapi/community/blob/master/git-workflow.md https://github.com/asyncapi/community/blob/master/docs/010-contribution-guidelines/git-workflow.md
CONTRIBUTING.md https://github.com/asyncapi/community/blob/master/git-workflow.md https://github.com/asyncapi/community/blob/master/docs/010-contribution-guidelines/git-workflow.md
CONTRIBUTING.md https://github.com/asyncapi/community/blob/master/recognize-contributors.md https://github.com/asyncapi/community/blob/master/docs/010-contribution-guidelines/recognize-contributors.md
README.md https://github.com/asyncapi/community/blob/master/git-workflow.md https://github.com/asyncapi/community/blob/master/docs/010-contribution-guidelines/git-workflow.md
markdown/blog/hacktoberfest-2020.md https://github.com/asyncapi/community/blob/master/git-workflow.md https://github.com/asyncapi/community/blob/master/docs/010-contribution-guidelines/git-workflow.md
markdown/blog/async-api-spec-3.0-release.md https://github.com/asyncapi/community/blob/master/git-workflow.md https://github.com/asyncapi/community/blob/master/docs/010-contribution-guidelines/git-workflow.md

Communication & Meetings

File Location Current (Broken) Link Corrected Link
CONTRIBUTING.md https://github.com/asyncapi/community/blob/master/slack-etiquette.md https://github.com/asyncapi/community/blob/master/docs/060-meetings-and-communication/slack-etiquette.md
markdown/blog/may-2021-at-asyncapi.md https://github.com/asyncapi/community/blob/master/slack-etiquette.md https://github.com/asyncapi/community/blob/master/docs/060-meetings-and-communication/slack-etiquette.md
markdown/blog/google-season-of-docs-2022.md https://github.com/asyncapi/community/blob/master/slack-etiquette.md https://github.com/asyncapi/community/blob/master/docs/060-meetings-and-communication/slack-etiquette.md
markdown/blog/openforce-2022.md https://github.com/asyncapi/community/blob/master/slack-etiquette.md https://github.com/asyncapi/community/blob/master/docs/060-meetings-and-communication/slack-etiquette.md
markdown/blog/2022Q1-summary.md https://github.com/asyncapi/community/blob/master/MEETINGS_ORGANIZATION.md https://github.com/asyncapi/community/blob/master/docs/060-meetings-and-communication/MEETINGS_ORGANIZATION.md

Voting & TSC

File Location Current (Broken) Link Corrected Link
markdown/blog/2024-april-summary.md https://github.com/asyncapi/community/blob/master/voting.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/voting.md
markdown/blog/asyncapi-bounty-program-2024.md https://github.com/asyncapi/community/blob/master/voting.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/voting.md
markdown/blog/asyncapi-bounty-program-2024.md https://github.com/asyncapi/community/blob/master/TSC_VOTING_OVERVIEW.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/TSC_VOTING_OVERVIEW.md
markdown/blog/2024-july-summary.md https://github.com/asyncapi/community/blob/master/TSC_VOTING_OVERVIEW.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/TSC_VOTING_OVERVIEW.md

Working Groups & Ambassadors

File Location Current (Broken) Link Corrected Link
markdown/blog/2024-february-summary.md https://github.com/asyncapi/community/blob/master/WORKING_GROUPS.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/WORKING_GROUPS.md
pages/community/ambassadors/index.tsx https://github.com/asyncapi/community/blob/master/AMBASSADOR_ORGANIZATION.md https://github.com/asyncapi/community/blob/master/docs/020-governance-and-policies/AMBASSADOR_PROGRAM.md

Mentorship Programs

File Location Current (Broken) Link Corrected Link
markdown/blog/2023-mentorship-summary.md https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md https://github.com/asyncapi/community/blob/master/docs/050-mentorship-program/summerofcode-2024-asyncapi-gsoc-ideas-page.md
markdown/blog/2024-february-summary.md https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2024/asyncapi-gsoc-ideas-page.md https://github.com/asyncapi/community/blob/master/docs/050-mentorship-program/summerofcode-2024-asyncapi-gsoc-ideas-page.md
markdown/blog/2025-gsoc-phase-1.md https://github.com/asyncapi/community/blob/master/mentorship/summerofcode/2025/asyncapi-gsoc-ideas-page.md https://github.com/asyncapi/community/blob/master/docs/050-mentorship-program/summerofcode-2025-asyncapi-gsoc-ideas-page.md
markdown/blog/beyond-boundaries.md https://github.com/asyncapi/community/blob/master/mentorship/asyncapi-mentorship/2022/project-ideas.md https://github.com/asyncapi/community/blob/master/docs/050-mentorship-program/asyncapi-mentorship-2022-project-ideas.md
markdown/blog/beyond-boundaries.md https://github.com/asyncapi/community/blob/master/mentorship/asyncapi-mentorship/2022/README.md https://github.com/asyncapi/community/blob/master/docs/050-mentorship-program/asyncapi-mentorship-README.md
markdown/docs/community/050-mentorship-program/summerofcode-2023-asyncapi-gsoc-ideas-page.md https://github.com/asyncapi/.github/blob/master/CHARTER.md ⚠️ NEEDS VERIFICATION - File doesn't exist in .github repo

Annual Goals & Strategy

File Location Current (Broken) Link Corrected Link
markdown/blog/2024-annual-summary.md https://github.com/asyncapi/community/blob/master/annual-goals/2025_Community_Goals.md https://github.com/asyncapi/community/blob/master/docs/030-project-vision-strategy-goals/2025_Community_Goals.md
markdown/blog/2025-february-summary.md https://github.com/asyncapi/community/blob/master/annual-goals/2025_Community_Goals.md https://github.com/asyncapi/community/blob/master/docs/030-project-vision-strategy-goals/2025_Community_Goals.md
markdown/blog/2025-Q1-marketing-report.md https://github.com/asyncapi/community/blob/master/annual-goals/2025_marketing_strategy.md https://github.com/asyncapi/community/blob/master/docs/030-project-vision-strategy-goals/2025_marketing_strategy.md

Documentation Links

File Location Current (Broken) Link Corrected Link
markdown/blog/2024-Q1-docs-report.md https://github.com/asyncapi/community/blob/master/docs/onboarding-guide/docs-onboarding-checklist.md https://github.com/asyncapi/community/blob/master/docs/000-onboarding/docs-onboarding-checklist.md
markdown/docs/community/maintainership-guide/amp-code-of-conduct.md https://github.com/asyncapi/community/blob/master/code_of_conduct/coc-incident-resolution-procedures.md NEEDS VERIFICATION - File might be in different location or deleted
markdown/docs/community/maintainership-guide/amp-mentor-support-and-escalation-path.md https://github.com/asyncapi/community/blob/master/code_of_conduct/coc-incident-resolution-procedures.md NEEDS VERIFICATION - File might be in different location or deleted

Links to .github Repo

File Location Current (Broken) Link Status
markdown/blog/2023-mentorship-summary.md https://github.com/asyncapi/.github/blob/master/slack-etiquette.md Check if exists or redirect to community repo
markdown/blog/beyond-boundaries.md https://github.com/asyncapi/.github/blob/master/slack-etiquette.md Check if exists or redirect to community repo
pages/docs/community/050-mentorship-program/summerofcode-2023-README.mdx https://github.com/asyncapi/.github/blob/master/CHARTER.md Check if exists or redirect to community repo
pages/docs/community/050-mentorship-program/summerofcode-2023-asyncapi-gsoc-ideas-page.mdx https://github.com/asyncapi/.github/blob/master/CHARTER.md Check if exists or redirect to community repo

Other Repository Links

AsyncAPI Generator

File Location Current (Broken) Link Notes
markdown/blog/february-2021-at-asyncapi.md https://github.com/asyncapi/generator/blob/master/docs/react-render-engine.md Check if file still exists
markdown/blog/february-2021-at-asyncapi.md https://github.com/asyncapi/generator/blob/master/docs/typescript-support.md Check if file still exists
markdown/blog/january-2021-at-asyncapi.md https://github.com/asyncapi/generator/blob/master/docs/react-render-engine.md Check if file still exists
markdown/blog/react-as-generator-engine.md https://github.com/asyncapi/generator/blob/master/docs/configuration-file.md Check if file still exists
markdown/blog/react-as-generator-engine.md https://github.com/asyncapi/generator/blob/master/docs/nunjucks-render-engine.md Check if file still exists
markdown/blog/using-nunjucks-with-asyncapi.md https://github.com/asyncapi/generator/blob/master/docs/react-render-engine.md Check if file still exists

AsyncAPI Bindings

File Location Current (Broken) Link Notes
markdown/docs/reference/specification/v3.0.0.md https://github.com/asyncapi/bindings/blob/master/sns/README.md Check if file still exists (appears 3 times)

AsyncAPI Spec

File Location Current (Broken) Link Notes
markdown/docs/community/050-mentorship-program/summerofcode-2021-README.md https://github.com/asyncapi/asyncapi/blob/master/versions/2.0.0/asyncapi.md Check if file still exists

Issue Templates

File Location Current (Broken) Link Notes
components/NewsletterSubscribe.tsx https://github.com/asyncapi/website/issues/new?template=bug.md Check if template exists or use bug_report.md
components/newsroom/Newsroom.tsx https://github.com/asyncapi/website/issues/new?template=blog.md Check if template exists
markdown/blog/*.md (multiple files) https://github.com/asyncapi/website/issues/new?template=blog.md Check if template exists
markdown/docs/community/010-contribution-guidelines/contribute-blog-post.md https://github.com/asyncapi/website/issues/new?template=blog.md Check if template exists
markdown/docs/community/010-contribution-guidelines/contribution-flow.md https://github.com/asyncapi/community/issues/new?assignees=&labels=bug&template=bug_report.md Verify template name

AsyncAPI CLI (Windows Executables)

File Location Current (Broken) Link Notes
markdown/docs/tools/cli/installation.md https://github.com/asyncapi/cli/releases/latest/download/asyncapi.x64.exe .exe files no longer published in releases (since v4.x). Use npm or chocolatey instead
markdown/docs/tools/cli/installation.md https://github.com/asyncapi/cli/releases/latest/download/asyncapi.x86.exe .exe files no longer published in releases (since v4.x). Use npm or chocolatey instead
assets/docs/fragments/cli-installation.md https://github.com/asyncapi/cli/releases/latest/download/asyncapi.x64.exe .exe files no longer published in releases (since v4.x). Use npm or chocolatey instead
assets/docs/fragments/cli-installation.md https://github.com/asyncapi/cli/releases/latest/download/asyncapi.x86.exe .exe files no longer published in releases (since v4.x). Use npm or chocolatey instead
pages/tools/cli.tsx https://github.com/asyncapi/cli/releases/latest/download/asyncapi.x64.exe .exe files no longer published in releases (since v4.x). Use npm or chocolatey instead
pages/tools/cli.tsx https://github.com/asyncapi/cli/releases/latest/download/asyncapi.x86.exe .exe files no longer published in releases (since v4.x). Use npm or chocolatey instead
pages/[lang]/tools/cli.tsx https://github.com/asyncapi/cli/releases/latest/download/asyncapi.x64.exe .exe files no longer published in releases (since v4.x). Use npm or chocolatey instead
pages/[lang]/tools/cli.tsx https://github.com/asyncapi/cli/releases/latest/download/asyncapi.x86.exe .exe files no longer published in releases (since v4.x). Use npm or chocolatey instead

Event Gateway

File Location Current (Broken) Link Notes
markdown/blog/february-2021-at-asyncapi.md https://github.com/asyncapi/event-gateway/issues/new?assignees=&labels=use+case&template=use_case.md Project may be archived or moved

Sourya07 avatar Dec 26 '25 09:12 Sourya07

take a look @princerajpoot20 👍

Sourya07 avatar Dec 26 '25 09:12 Sourya07

@princerajpoot20 ?

Sourya07 avatar Jan 02 '26 17:01 Sourya07

@Sourya07 Oh my goodness, that’s a lot to look at.

To start with, for the files files that start with .github and raise a separate issue in the .github repository. For docs under the /blog folder, you can fix them directly in the website repository. For files under /docs/community, the fixes belong in the community repository, so please create an issue there.

Sorry for the late reply

princerajpoot20 avatar Jan 02 '26 17:01 princerajpoot20

no problem thanks for the clarrification☺️🙏🏻

Sourya07 avatar Jan 02 '26 18:01 Sourya07

@princerajpoot20 @Sourya07 hi, may I work on this ?

hihry avatar Jan 03 '26 14:01 hihry

Hi @Sourya07,

If you need any help with the fixes or testing things locally, feel free to let me know — I would be happy to help.

Looking forward to collaborating, and thanks for taking this forward!

Varadraj75 avatar Jan 08 '26 14:01 Varadraj75