diff --git a/apps/site/pages/en/about/eol.mdx b/apps/site/pages/en/about/eol.mdx index 7860f6ecd360c..f3295187f2d0c 100644 --- a/apps/site/pages/en/about/eol.mdx +++ b/apps/site/pages/en/about/eol.mdx @@ -37,8 +37,10 @@ When a version reaches End-Of-Life, it means that it will no longer receive upda ## Commercial Support -Despite the obvious downsides of using EOL releases, in practice, organizations face constraints that prevent immediate upgrades, such as legacy codebases, compliance requirements, or complex dependency chains. Through the [OpenJS Foundation Ecosystem Sustainability Program](https://openjsf.org/blog/ecosystem-sustainability-program), Node.js is supported by HeroDevs and NodeSource to provide commercial services for security fixes. +Despite the obvious downsides of using EOL releases, in practice, organizations face constraints that prevent immediate upgrades, such as legacy codebases, compliance requirements, or complex dependency chains. Through the [OpenJS Foundation Ecosystem Sustainability Program](https://openjsf.org/blog/ecosystem-sustainability-program), Node.js is supported by HeroDevs, NodeSource, and TuxCare to provide commercial services for security fixes. HeroDevs provides [Never-Ending Support (NES)](https://nodejs.org/esp/herodevs) for Node.js versions past their official maintenance phase. This includes security patches, compliance assistance, and technical support to help bridge the gap while you plan your upgrade strategy. +TuxCare’s [Endless Lifecycle Support (ELS)](https://tuxcare.com/endless-lifecycle-support/) gives you continued security patching for end-of-life Node.js versions. Security fixes are backported from upstream, tested for integrity and regression, signed, SLA-backed, and delivered through your existing package managers. + Using EOL releases through commercial support should be viewed as a temporary solution—the goal should always be to upgrade to actively supported versions. diff --git a/apps/site/public/static/partners/constants.json b/apps/site/public/static/partners/constants.json index 9aaf25866ca86..acfd2c214b989 100644 --- a/apps/site/public/static/partners/constants.json +++ b/apps/site/public/static/partners/constants.json @@ -48,6 +48,13 @@ "weight": 3, "categories": ["security", "esp", "release"] }, + { + "id": "TUXCARE", + "name": "TuxCare", + "href": "https://tuxcare.com", + "weight": 2, + "categories": ["esp"] + }, { "id": "CODEMOD", "name": "Codemod", diff --git a/packages/ui-components/src/Icons/Logos/Nodejs.tsx b/packages/ui-components/src/Icons/Logos/Nodejs.tsx index aaa225687413a..78610b60680e9 100644 --- a/packages/ui-components/src/Icons/Logos/Nodejs.tsx +++ b/packages/ui-components/src/Icons/Logos/Nodejs.tsx @@ -57,7 +57,7 @@ const NodejsIcon: FC = ({ /> {variant === 'pride' && ( - + @@ -144,8 +144,8 @@ const NodejsIcon: FC = ({ dx="0" dy="0" stdDeviation="2" - flood-color="#000000" - flood-opacity="0.5" + floodColor="#000000" + floodOpacity="0.5" /> )} diff --git a/packages/ui-components/src/Icons/PartnerLogos/TuxCare/Favicon.tsx b/packages/ui-components/src/Icons/PartnerLogos/TuxCare/Favicon.tsx new file mode 100644 index 0000000000000..51937f6b82d7c --- /dev/null +++ b/packages/ui-components/src/Icons/PartnerLogos/TuxCare/Favicon.tsx @@ -0,0 +1,67 @@ +import classNames from 'classnames'; + +import type { FC, SVGProps } from 'react'; + +const TuxCare: FC> = props => ( + + + + + + + + + + + + +); + +export default TuxCare; diff --git a/packages/ui-components/src/Icons/PartnerLogos/TuxCare/Logo.tsx b/packages/ui-components/src/Icons/PartnerLogos/TuxCare/Logo.tsx new file mode 100644 index 0000000000000..aa34a125e70a5 --- /dev/null +++ b/packages/ui-components/src/Icons/PartnerLogos/TuxCare/Logo.tsx @@ -0,0 +1,138 @@ +import classNames from 'classnames'; + +import type { FC, SVGProps } from 'react'; + +const TuxCare: FC> = props => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); + +export default TuxCare; diff --git a/packages/ui-components/src/Icons/PartnerLogos/TuxCare/index.ts b/packages/ui-components/src/Icons/PartnerLogos/TuxCare/index.ts new file mode 100644 index 0000000000000..b4cd37328b21d --- /dev/null +++ b/packages/ui-components/src/Icons/PartnerLogos/TuxCare/index.ts @@ -0,0 +1,4 @@ +import Favicon from './Favicon'; +import Logo from './Logo'; + +export { Favicon, Logo }; diff --git a/packages/ui-components/src/Icons/PartnerLogos/index.ts b/packages/ui-components/src/Icons/PartnerLogos/index.ts index fd9ba073acc27..fbaa036580c5a 100644 --- a/packages/ui-components/src/Icons/PartnerLogos/index.ts +++ b/packages/ui-components/src/Icons/PartnerLogos/index.ts @@ -14,6 +14,7 @@ import * as OPENSSF from './OpenSSF'; import * as RACKSPACE from './Rackspace'; import * as SCALEWAY from './Scaleway'; import * as SENTRY from './Sentry'; +import * as TUXCARE from './TuxCare'; import * as VERCEL from './Vercel'; import * as VLT from './Vlt'; @@ -34,6 +35,7 @@ export { RACKSPACE, SCALEWAY, SENTRY, + TUXCARE, VERCEL, VLT, };