Skip to content

feat: read changelog from public/changelog.json, drop Webflow/Algolia dep#302

Open
markshenouda wants to merge 3 commits into
feat/dev-3.0-no-landingfrom
feat/changelog-from-json
Open

feat: read changelog from public/changelog.json, drop Webflow/Algolia dep#302
markshenouda wants to merge 3 commits into
feat/dev-3.0-no-landingfrom
feat/changelog-from-json

Conversation

@markshenouda
Copy link
Copy Markdown
Member

@markshenouda markshenouda commented May 26, 2026

Screenshot 2026-05-26 at 12 15 40 PM

Summary

  • Switches the changelog UI to read directly from public/changelog.json at build time, removing the runtime Algolia Changelog index lookup from changelog.astro, changelog/[...id].astro, and ChangelogSnippet.astro.
  • Adds src/utils/changelog.ts, which ports slug / description / related-tokens / related-networks HTML generation from chainlink-webflow-cms-api/chainlog-handler.js, plus a category→label map (integration, release, deprecation, feature, update, cre, dta, ace, with title-cased fallback for anything else). Uses marked (already a dep) instead of pulling in showdown.
  • Bonus fix in a separate commit: the changelog page's search input previously took priority and silently ignored active filter chips. Now a row must match both the search term and the filters when both are active.

Closes #290.

Why

The changelog data is already authored in public/changelog.json (mirrored from smartcontractkit/documentation). Round-tripping it through Webflow → Algolia → the docs site was the reason new categories like deprecation, cre, dta, ace were silently dropped: chainlog-handler.js skipped any entry whose category didn't match a slug in the Webflow Chainlog types collection. Reading the JSON directly removes that bottleneck and makes the data the single source of truth.

Follow-up

Once this is verified in prod, a separate cleanup PR in chainlink-webflow-cms-api can delete chainlog-handler.js, the npm run chainlog workflow step, the Changelogs-v2s Algolia generator entry, and the chainlog schema validator. The @algolia/client-search package is also no longer used in src/ and can be dropped from package.json (left for the follow-up since this PR is already across multiple files).

Test plan

  • `/changelog` renders with the existing styling; Deprecated, Feature, Update, CRE entries all show the correct type chip
  • Type filter lists "Deprecated" (and the other new categories) and filters correctly
  • Product/network/type filter combinations work as before
  • Search + active filter now combine (was the bonus fix)
  • Individual entry page (`/changelog/`) renders with the entry's actual type in the H1 (was hardcoded to "Integration")
  • CCIP page `ChangelogSnippet` shows the latest CCIP entry
  • Mobile breakpoint

Replaces the runtime Algolia 'Changelog' index lookup in changelog.astro,
changelog/[...id].astro, and ChangelogSnippet.astro with a build-time
read of public/changelog.json. Adds src/utils/changelog.ts which ports
the slug, description, related-tokens, and related-networks HTML
generation from chainlink-webflow-cms-api's chainlog-handler.js, plus a
category-to-label map (integration/release/deprecation/feature/update/
cre/dta/ace, with title-case fallback). Uses marked (already a dep)
instead of showdown.

Closes #290.
Previously the search input took priority and silently ignored active
type/product/network filter chips. Now a row must match both the search
term and the filters when both are present.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant