Skip to content

Rework /integrations/ and retire /certified-nodes/ #4969

@n-lark

Description

@n-lark

Epic — Rework /integrations/ and retire /certified-nodes/

Summary

Two pages do overlapping jobs, both poorly:

  • /certified-nodes/ — sales list, hidden from nav (Google-only discovery), every card links out to flows.nodered.org.
  • /integrations/ — richer catalog with search, filters, generated detail pages. Loads in ~25s sometimes.

/integrations/ already has the pieces to absorb the certified content (ffCertified flag, certified filter, certified-first sort, certified badge). This epic folds the two together, kills /certified-nodes/, and rebuilds the detail page to serve both buyer personas.

Goals — two audiences, one page

The page must serve two distinct users:

  • Economical buyer (budget holder). Doesn't know what they're buying, but needs to say yes. Story they need: "FlowFuse connects with a lot of things, and the things that matter are certified and supported."index page's job.
  • Technical buyer (Node-RED developer / end user). Needs precise docs: install, usage, examples, version, support. → detail page's job.

What that translates to:

  • One canonical catalog surface for FlowFuse-supported and community Node-RED packages — /integrations/ becomes the only place.
  • Certified content as the index-page hero — obvious, filterable, persuasive without leaving the site.
  • Detail-page documentation parity for certified nodes (READMEs, examples, install guidance, GitHub stats) — no external link-outs.
  • Remove npm install from the install box. FlowFuse customers don't have npm access from inside the platform; replace with a palette manager GIF.
  • Self-host docs for proprietary and forked nodes. OPC UA has no public docs — our page IS the docs. Flag any divergence from upstream.
  • Migrate to Nuxt alongside the broader Eleventy → Nuxt migration, reusing ZJ's Terms-page components.

Why we self-host docs

FlowFuse forks public Node-RED nodes into a private npm registry under a FlowFuse-controlled scope (e.g. @flowfuse-certified/<name>). Why fork: to ship CVE/security fixes on our own timeline instead of waiting on upstream maintainers. We push fixes back upstream when we can.

Consequence: our packages diverge from upstream over time, so customers need docs that reflect our version. Some nodes are also proprietary (e.g. OPC UA) — no public upstream exists, so our page IS the documentation. Any divergence from upstream must be visibly flagged on the page.

Phased plan

The phases are sequenced so that each one ships value on its own and de-risks the next. Phases 1–4 are the critical path requested on the call; Phase 5 is the follow-up.

# Phase What it does
1 Merge certified nodes into /integrations/ Surface the certified filter, add an intro/hero, badge tile cards.
2 Retire /certified-nodes/ 301 redirect to a pre-filtered /integrations/. Delete the page and its redundant data fetch.
3 Rework the install box Remove npm install. Add a palette-manager GIF + reduced-motion fallback.
4 Migrate /integrations/ to Nuxt Port catalog + detail pages. Fix the ~25s load while porting.
5 Documentation parity & FF-authored docs Audit docs, build the overlay + divergence-callout pattern, prove it with OPC UA.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

Status

Todo

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions