Add redirects for legacy ReadMe /reference/* API links#414
Merged
Conversation
The old ReadMe.io API reference (developers.checklyhq.com/reference/<slug>) 404s for every deep link. Add 182 explicit redirects generated from the frozen ReadMe-era slug map (lowercased operationId -> endpoint page), a manual /reference/authentication entry, and a /reference/:slug* catch-all to the API overview for slugs whose endpoints no longer exist. mint broken-links never validates inbound-only redirect destinations, so a new check (.github/scripts/check_redirect_destinations.py) runs in static-docs-checks on any docs change and fails if a page rename/delete dead-ends one of these redirects. Note: developers.* traffic only reaches these redirects once the docs.checklyhq.com Vercel shim forwards /reference/* paths (tracked separately); direct www.checklyhq.com/docs/reference/* hits are fixed immediately. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
developer-fixtures.mdx linked to docs.checklyhq.com/cli/* URLs with mangled slugs (overviewproject-structure, overviewconstructs-reference) that 404; replace with relative links to /constructs/overview, /constructs/project, /constructs/retry-strategy, and /guides/getting-started-with-monitoring-as-code so mint broken-links guards them. create-multiple-monitors.mdx showed a deploy-preview line inconsistent with its own code sample (index 3 host is www.checklyhq.com, so the logical ID is multi-url-monitor-3checklyhq.com). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Every deep link into the old ReadMe.io API reference is a dead end today:
developers.checklyhq.com/reference/<slug>308s todocs.checklyhq.com/reference/<slug>, which 404s, andwww.checklyhq.com/docs/reference/<slug>404s in Mintlify becausedocs.jsonhad no/reference/*redirects. These URLs are still emitted by search results, sent newsletters, OSS issue templates, and LLM answers.What
/reference/<oldSlug>→/api-reference/<group>/<page>, generated from.github/reference-slug-map.json— a frozen snapshot of the ReadMe-era slug set (slug = lowercased OpenAPIoperationId, joined to pages via theiropenapi:frontmatter). Do not regenerate from a newer spec; endpoints added after the ReadMe era never had/reference/URLs. Generation: one-liner mapping each entry to{"source": "/reference/<oldSlug>", "destination": "/<newPath>"}./reference/authentication→/api-reference/overview#authentication./reference/:slug*→/api-reference/overview(last), covering slugs whose endpoints were removed since the ReadMe era. Mintlify resolves exact sources before wildcards, so it never shadows the explicit entries..github/scripts/check_redirect_destinations.pywired intostatic-docs-checks.yml:mint broken-linksnever validates inbound-only redirect destinations, so a page rename/delete would silently dead-end them. The check runs on any docs change (.mdxordocs.json) — a rename PR is exactly the event it must catch.guides/developer-fixtures.mdxhad four deaddocs.checklyhq.comlinks with mangled slugs, now relative links guarded by the linter;guides/create-multiple-monitors.mdxsample output now matches its own code sample.API-DOCUMENTATION.md(including the warning for anyone adding a real/reference/*page).Verification
python3 -m json.tool docs.json— valid; 24 existing + 184 new = 208 redirects, zero duplicate sources (Mintlify's redirect map is last-write-wins, so dupes would be silently dropped).github/scripts/check_redirect_destinations.py— all 184 destinations resolve to on-disk pagesnpx mint broken-links— no broken links founddevelopers.checklyhq.com/reference/*traffic dies at thedocs.checklyhq.comVercel shim (repocheckly/docs.checklyhq.com, archived 2026-01-05) before ever reaching Mintlify. These redirects immediately fix directwww.checklyhq.com/docs/reference/*hits, but the shim needs a/reference/:path*→https://www.checklyhq.com/docs/reference/:path*rule (unarchive the repo or change it in the Vercel dashboard) for the old links to fully resolve. Merged ≠ live for old bookmarks.Post-deploy gate (blocking, manual)
curl -L www.checklyhq.com/docs/reference/getv1checks→ lands on the checks endpoint page (not overview)/docs/reference/getv1checks//docs/reference/authentication→ overview#authentication/docs/reference/nonexistentslug123→ overview via catch-all (HTTP 200)Follow-ups (separate tickets, out of this repo)
/reference/:path*forwarding rule + stop serving stale Hugo HTML for/docs/<old-slug>(hard dependency above)ReadmeControllerstill mintsdevelopers.checklyhq.com?auth_token=<ReadMe SSO JWT>for the webapp navbar; API-keys page, mobile footer, and the multi-step "Authentication CRUD" template also link to dead URLs;scheduler-daemonhas a deadreadme.urlconfigwww.checklyhq.com/reference/*(no/docsprefix) 404s before Mintlify; homepage still linksdevelopers.checklyhq.comold-redirects.csv(checkly-marketing-website) against the 182 mapped slugs for removed-endpoint slugs worth explicit entries (incl. the old rate-limit page slug)🤖 Generated with Claude Code