Skip to content

partners: serve /partners/ from Nuxt - #5784

Merged
dimitrieh merged 5 commits into
mainfrom
nuxt/partners
Sep 17, 2026
Merged

dimitrieh merged 5 commits into
mainfrom
nuxt/partners

Conversation

@dimitrieh

Copy link
Copy Markdown
Contributor

Description

Moves /partners/ to Nuxt: the listing, certify-hardware, ctrlx and the referral sign-up.

Related Issue(s)

Part of #5777

Checklist

  • I have read the contribution guidelines
  • I have considered the performance impact of these changes
  • Suitable unit/system level tests have been added and they pass
  • Documentation has been updated
  • For blog PRs, an Art Request has been created (instructions)

@netlify

netlify Bot commented Sep 11, 2026

Copy link
Copy Markdown

Deploy Preview for flowfuse-website ready!

Name Link
🔨 Latest commit a9e64e8
🔍 Latest deploy log https://app.netlify.com/projects/flowfuse-website/deploys/6aabb7381528770007e85795
😎 Deploy Preview https://deploy-preview-5784--flowfuse-website.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 48 (🟢 up 14 from production)
Accessibility: 95 (no change from production)
Best Practices: 92 (no change from production)
SEO: 92 (no change from production)
PWA: -
View the detailed breakdown and full score reports

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

Comment thread nuxt/server/middleware/legacy.ts
Comment thread nuxt/nuxt.config.ts
'/partners/',
'/partners/certify-hardware/',
'/partners/ctrlx/',
'/partners/referral-sign-up/',

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dgatti0213 Do you handle the inputs on that page? Or should it be removed?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The port is 1:1 and the form is still HubSpot form aad1cda7, so submissions land where they always did. Whether the page stays is a content call rather than a migration one. If it should go, a deletion plus a redirect is cleaner as its own change than dropping it from this port.

@dgatti0213 dgatti0213 Sep 14, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Content on the pages was before me, It probably needs some review from me. Port for now is fine tho.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving this one open, it needs an answer from whoever owns that form rather than from me. Nothing in this PR changes that page beyond the port; the only thing pushed here since review is the /partners registration in legacy.ts.

Comment thread scripts/gen-site-art.py Outdated
Comment thread nuxt/pages/partners/index.vue Outdated
@dimitrieh

Copy link
Copy Markdown
Contributor Author

Rebased on main, with all four review points addressed.

  • legacy.ts:25 — two stray blank lines the diff added, nothing more. Gone.
  • scripts/gen-site-art.py — rewritten as scripts/gen-site-art.mjs, so the repo still needs nothing but node. Verified it emits a byte-identical nuxt/utils/siteArt.ts apart from its own filename in the generated header. Ported the same way on every branch that carried it.
  • rich-text — removed, call sites now plain v-html. Agreed on the reasoning: these are repo strings, and the 11ty templates they replace printed them with | safe, so the allowlist was not a trust boundary. Done on every branch that added it.
  • /partners/referral-sign-up/ — the port is 1:1 and the form is still HubSpot form aad1cda7, so submissions land where they always did. Whether the page stays is a content call, not a migration one; if it should go, a deletion plus a redirect is cleaner as its own change than dropping it from this port.

One note on rich-text worth a second look: the /blueprints/ descriptions in #5794 come from READMEs in FlowFuse/blueprint-library rather than from this repo. They are still v-html there, matching the | safe they had, on the basis that library submissions are reviewed before they land. Flagging it because it is the one call site whose content is not authored in this repo.

Also from the review pass: a bullet on certify-hardware.vue described a </h1> after an <h2> in the .njk. That file has no <h2>; the defect is referral-sign-up.njk's and is already documented on referral-sign-up.vue. Removed. Same for the ctrlx.vue bullet claiming the layout emitted an empty second <h1>: layouts/page.njk guards the hero on {% if (title and not hideTitle) %} and that .njk sets no title, so no heading was emitted at all.

Comment thread nuxt/utils/siteArt.ts Outdated
@dimitrieh

Copy link
Copy Markdown
Contributor Author

Rebased onto main. The conflicts in nuxt/server/middleware/legacy.ts and nuxt/nuxt.config.ts are resolved and CI is green.

Comment thread nuxt/pages/partners/certify-hardware.vue Outdated
@dimitrieh
dimitrieh requested a review from Yndira-E September 15, 2026 13:59
@dimitrieh

Copy link
Copy Markdown
Contributor Author

Nothing to change here, one note. /partners was never added to NUXT_PREFIXES in nuxt/server/middleware/legacy.ts, so npm run dev keeps proxying it to 11ty and serves the old page. That middleware returns early unless NODE_ENV === 'development', which is why CI and the deploy preview both look correct and this went unnoticed.

It was flagged on three of these PRs and is actually missing on eight, so it is fixed in one place in #5815 rather than eight conflicting edits to the same file. Merge that one after this, since registering a section before its pages land points dev at a Nuxt route that does not exist yet.

@dimitrieh

Copy link
Copy Markdown
Contributor Author

Correction to my earlier comment: #5815 is closed, the registration belongs in each migration PR instead. Pushed here.

@Yndira-E

Copy link
Copy Markdown
Contributor

@dimitrieh this hasn't been implemented yet #5784 (comment)

@dimitrieh

Copy link
Copy Markdown
Contributor Author

Done. The two remaining <Icon> call sites in certify-hardware.vue are <UIcon> now, matching the suggestion you had already applied to the third. Same component underneath, so nothing changes visually.

Each keeps its w-6 h-6: .ff-certify-list-icon sets a width and no height, and the masked span has no intrinsic ratio, so without it they collapse.

That was the last <Icon> in the PR, and there is no inline <svg> left in the partner pages either.

dimitrieh and others added 4 commits September 16, 2026 15:48
4 routes move off 11ty: the index, /certify-hardware/, /ctrlx/ and
/referral-sign-up/.

The certification step glyphs were {% include %}d raw inside
.ff-certify-list-icon, so they go through <SiteArt>, which inlines the same file
with no wrapper; the registry gains the five keys they use. hs-form.njk becomes
<HubSpotForm> with the same form id, event and reference, and the CTA macros
become their components.

Two malformed headings are fixed: both /certify-hardware/ and
/referral-sign-up/ opened an <h2> and closed it with </h1>. /ctrlx/ also
rendered a second, empty <h1> from layouts/page.njk's `nohero` branch.

Verified all 4 against production, with no structural differences.
Co-authored-by: Yndira Escobar <129537638+Yndira-E@users.noreply.github.com>
Without the prefix the dev middleware keeps proxying to 11ty, so npm run dev
shows the old page. The middleware returns early unless NODE_ENV is development,
which is why CI and the deploy preview both looked correct.
The two remaining <Icon> call sites become <UIcon>, matching the suggestion
already applied to the third one and the rest of the migration. Same component
underneath, so the rendering is unchanged; each keeps its w-6 h-6 because
.ff-certify-list-icon sets a width and no height and the masked span has no
intrinsic ratio.
# Conflicts:
#	nuxt/nuxt.config.ts
#	nuxt/server/middleware/legacy.ts
@dimitrieh

Copy link
Copy Markdown
Contributor Author

Conflicts resolved, main is merged in. Same shape as the other migration PRs: the registry files take the union, so NUXT_PREFIXES and the prerender list keep both sides and this PR's own route drops out of the "still on 11ty" comment.

@dimitrieh
dimitrieh merged commit fc38da3 into main Sep 17, 2026
8 checks passed
@dimitrieh
dimitrieh deleted the nuxt/partners branch September 17, 2026 09:54
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.

4 participants