Skip to content

feat(catalogs): faceted discovery for examples and environments - #313

Open
sanketsudake wants to merge 1 commit into
mainfrom
docs/catalog-faceted-discovery
Open

feat(catalogs): faceted discovery for examples and environments#313
sanketsudake wants to merge 1 commit into
mainfrom
docs/catalog-faceted-discovery

Conversation

@sanketsudake

Copy link
Copy Markdown
Member

What

Makes the /examples/ and /environments/ catalogs faster to search by exposing the discovery axes their data already contains — instead of a single language dropdown + free-text search. Goal: treat the catalogs as lookup tools (Tufte: enable comparison, show the choices).

Why

examples.json tags already encode three axes — language, trigger (message queue trigger, keda, kafka, websocket…), and level (hello world, application, spec) — but the UI only exposed language. Someone wanting "all message-queue examples" or "just the starters" had to guess a search term.

Examples page

  • Chip-based facet bar across three axes:
    • Language — from each group's authoritative language field (replaces the dropdown).
    • Trigger — HTTP · Message Queue · WebSocket.
    • Level — Starter · Application · Spec.
  • Trigger/Level are derived from existing tags via a curated TAG_FACETS map in the page scriptno examples.json schema change and no tools/examples.py change, so it survives catalog regeneration from upstream fission/examples.
  • Multi-select within a facet (OR), AND across facets. Adds Clear all. Keeps search, live aria-live count, empty state, and group-by-language layout.
  • Unmapped tags still render as searchable card pills.

Environments page (light touch)

Thin metadata (language + has-builder), so: same chip toolbar for consistency — language chips + a single "Has builder image" capability toggle. Keeps search and live count.

Styling & maintainability

  • Chips reuse the design-system pill palette via a new .catalog-facets SCSS namespace — no inline styles.
  • Facet map documented in the update-examples-catalog skill so new upstream tags get slotted into a facet.

Verification (in-browser, against the built site)

Check Result
Default 76 examples
Trigger = Message Queue 12 ✓ (matches data)
Message Queue AND Starter 0 (no starter is MQ) ✓
Go AND Starter 1 ✓
Impossible combo (Perl + WebSocket) empty-state message ✓
Clear all resets to 76, 0 active ✓
Environments "Has builder image" 14 images across 12 environments ✓

Pinned Hugo build (0.157.0 extended --minify --gc) passes: 567 pages, no path warnings. No console errors from the page (the one docsearch exception is the pre-existing Docsy/Algolia widget, unrelated).

Screenshots

Desktop verified for both pages (default view, active filters, empty state). Layout is responsive via flex-wrap facet rows + the existing Bootstrap mobile grid.

🤖 Generated with Claude Code

Make the /examples and /environments catalogs faster to search by
exposing the discovery axes their data already contains, instead of a
single language dropdown + free-text search.

Examples:
- Replace the language dropdown with a chip-based facet bar across three
  axes: Language (from each group's language field), Trigger (HTTP /
  Message Queue / WebSocket) and Level (Starter / Application / Spec).
- Trigger and Level are derived from the existing tags via a curated
  TAG_FACETS map in the page script — no examples.json schema change and
  no tools/examples.py change, so it survives catalog regeneration.
- Multi-select within a facet (OR), AND across facets. Adds a Clear all;
  keeps search, live aria-live count, empty state, group-by-language.

Environments (light touch, thin metadata):
- Same chip toolbar for consistency: language chips + a single
  "Has builder image" capability toggle. Keeps search and live count.

Chips reuse the design-system pill palette via a new .catalog-facets
SCSS namespace (no inline styles). Documented the facet map in the
update-examples-catalog skill.

Verified in-browser: filter counts match the data (e.g. Message Queue
= 12, Go + Starter = 1), AND/OR semantics, empty state, and Clear all
all correct; environments builder-only = 14 images across 12 envs.
Pinned Hugo build (0.157.0 --minify --gc) passes, 567 pages, no warnings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@netlify

netlify Bot commented Jul 19, 2026

Copy link
Copy Markdown

Deploy Preview for fission-website ready!

Name Link
🔨 Latest commit ddf285d
🔍 Latest deploy log https://app.netlify.com/projects/fission-website/deploys/6a5cbe1176ae950008e280c0
😎 Deploy Preview https://deploy-preview-313--fission-website.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@mergify

mergify Bot commented Jul 19, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

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