From a932f1779b2ccfaffe8fc21312e93cb255690943 Mon Sep 17 00:00:00 2001 From: jaaaaavier Date: Tue, 17 Dec 2024 11:04:06 +0100 Subject: [PATCH 01/21] feat: creating sutainability metatag and adding reference in navbar an footer --- src/assets/lang/en/footer.json | 3 ++- src/assets/lang/en/metatags-descriptions.json | 5 +++++ src/assets/lang/en/navbar.json | 3 ++- src/assets/types/layout/footer.ts | 1 + src/assets/types/layout/navbar.ts | 1 + .../layout/components/navbar/ItemsNavigation.tsx | 1 + src/components/layout/footers/Footer.tsx | 8 ++++++++ 7 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/assets/lang/en/footer.json b/src/assets/lang/en/footer.json index fa206b110..d5067f411 100644 --- a/src/assets/lang/en/footer.json +++ b/src/assets/lang/en/footer.json @@ -39,7 +39,8 @@ "mediaArea": "Media Area", "security": "Security", "legal": "Legal", - "whyInternxt": "Why Internxt?" + "whyInternxt": "Why Internxt?", + "sustainability": "Sustainability" }, "join": { "title": "Join Us", diff --git a/src/assets/lang/en/metatags-descriptions.json b/src/assets/lang/en/metatags-descriptions.json index 01ff97769..266267410 100644 --- a/src/assets/lang/en/metatags-descriptions.json +++ b/src/assets/lang/en/metatags-descriptions.json @@ -368,5 +368,10 @@ "id": "internxt-monitor", "title": "Internxt Dark Web Monitor", "description": "Internxt Dark Web Monitor is a have i been pwned service that checks if your email has been leaked in any online data breaches." + }, + { + "id": "green-cloud-computing", + "title": "A Commitment to Green Cloud Computing and Sustainability", + "description": " Internxt’s eco-friendly data centers drive our commitment to green cloud computing and sustainability, supporting a cleaner, greener environment." } ] diff --git a/src/assets/lang/en/navbar.json b/src/assets/lang/en/navbar.json index 040ecc7a7..678deafe4 100644 --- a/src/assets/lang/en/navbar.json +++ b/src/assets/lang/en/navbar.json @@ -22,7 +22,8 @@ }, "ourValues": { "privacy": "Privacy", - "openSource": "Open Source" + "openSource": "Open Source", + "sustainability": "Sustainability" }, "Auth": { "SignUp": { diff --git a/src/assets/types/layout/footer.ts b/src/assets/types/layout/footer.ts index 2b3ba4df3..3c5a0863d 100644 --- a/src/assets/types/layout/footer.ts +++ b/src/assets/types/layout/footer.ts @@ -40,6 +40,7 @@ export interface Company { security: string; legal: string; whyInternxt: string; + sustainability: string; } export interface Join { diff --git a/src/assets/types/layout/navbar.ts b/src/assets/types/layout/navbar.ts index 3f4c4036d..81418b42d 100644 --- a/src/assets/types/layout/navbar.ts +++ b/src/assets/types/layout/navbar.ts @@ -101,6 +101,7 @@ export interface Links { export interface OurValues { privacy: string; openSource: string; + sustainability: string; } export interface Products { diff --git a/src/components/layout/components/navbar/ItemsNavigation.tsx b/src/components/layout/components/navbar/ItemsNavigation.tsx index fd2ce65bd..828589096 100644 --- a/src/components/layout/components/navbar/ItemsNavigation.tsx +++ b/src/components/layout/components/navbar/ItemsNavigation.tsx @@ -132,6 +132,7 @@ export const ItemsNavigation = ({ items={[ { href: '/privacy', text: textContent.ourValues.privacy }, { href: '/open-source', text: textContent.ourValues.openSource }, + { href: '/green-cloud-computing', text: textContent.ourValues.sustainability }, ]} darkMode={darkMode} lang={lang} diff --git a/src/components/layout/footers/Footer.tsx b/src/components/layout/footers/Footer.tsx index fb567f90a..dac570b82 100644 --- a/src/components/layout/footers/Footer.tsx +++ b/src/components/layout/footers/Footer.tsx @@ -276,6 +276,14 @@ export default function Footer({ > {textContent.FooterSection.sections.company.mediaArea} + + {textContent.FooterSection.sections.company.sustainability} + From 5b98765d7aaaea5ff3dc8d40d2f69db56f9a089b Mon Sep 17 00:00:00 2001 From: jaaaaavier Date: Tue, 17 Dec 2024 11:04:23 +0100 Subject: [PATCH 02/21] Creating sustainability LP --- src/assets/lang/en/sustainability.json | 97 +++++++++++++++++++++ src/assets/types/sustainability.ts | 88 +++++++++++++++++++ src/pages/green-cloud-computing.tsx | 112 +++++++++++++++++++++++++ 3 files changed, 297 insertions(+) create mode 100644 src/assets/lang/en/sustainability.json create mode 100644 src/assets/types/sustainability.ts create mode 100644 src/pages/green-cloud-computing.tsx diff --git a/src/assets/lang/en/sustainability.json b/src/assets/lang/en/sustainability.json new file mode 100644 index 000000000..c366b4315 --- /dev/null +++ b/src/assets/lang/en/sustainability.json @@ -0,0 +1,97 @@ +{ + "HeroSection": { + "title": { + "normalText": " at Internxt", + "greenText": " Sustainability" + }, + "description": "Internxt is committed to green cloud computing, providing eco-friendly storage solutions for a cleaner, sustainable future.", + "goals": { + "element1": "Renewable energy sourcing", + "element2": "Reduce carbon energy", + "element3": "Green data centers", + "element4": "Climate-neutral by 2050", + "element5": "Zero waste" + } + }, + "CtaSection": { + "title": "Internxt: the future of privacy and sustainability", + "cta": "Select a plan" + }, + "CtaSection2": { + "title": "Commit to a sustainable future with Internxt!", + "cta": "Select a plan" + }, + "FeatureSectionV2": { + "title": "Managing our environmental impactwith green cloud computing", + "description": "Internxt encourages innovation by promoting sustainable practices in cloud infrastructure without compromising performance or reliability.", + "cards": { + "element1": { + "title": "Renewable energy", + "description": "Our data center uses renewable energy to reduce carbon emissions, conserve energy, and minimize e-waste, helping businesses lower their environmental impact and preserve the world’s natural resources." + }, + "element2": { + "title": "Increased savings", + "description": "We only use energy-efficient data centers that minimize hardware needs, lower operational expenses, and increase utility cost savings, which aligns with our eco-friendly goals." + }, + "element3": { + "title": "Efficiency", + "description": "Our data centers are ISO50001 certified and participate in the European Code of Conduct for Energy Efficiency in Data Center, the internationally recognized standard for energy management." + }, + "element4": { + "title": "European Green Capital 2024", + "description": "Based in Valencia, Internxt is inspired by the city's sustainability efforts, driving our own green initiatives through eco-friendly cloud storage solutions." + } + } + }, + "FeatureSectionV3": { + "title": "Managing our environmental impact", + "description": "Internxt leads by example in working for a more sustainable future through energy-efficient practices to minimize resource consumption and contribute to a greener future.", + "cards": { + "power": { + "title": "Power", + "description": "Our data centers' Power Usage Effectiveness (PUE) is measured and audited every 12 months. Values measured closer to 1 indicate more efficient energy consumption.", + "value": "1.26", + "unit": "PUE" + }, + "water": { + "title": "Water", + "description": "The metric measures how efficiently water is used; values closer to 0 indicate optimal performance.", + "value": "0.37", + "unit": "L/kWh IT" + }, + "carbon": { + "title": "Carbon", + "description": "This tracks direct emissions and indirect commissions from electricity use, with values closest to 0 representing better performance.", + "value": "0.16", + "unit": "Kg C02e / kWh IT" + }, + "renewables": { + "title": "Renewables", + "description": "This refers to the percentage of Renewable Energy Factor (REF) rates used in our data centers.", + "value": "92%", + "unit": "REF" + } + } + }, + "FeatureSection": { + "title": "How we commit to a sustainable future", + "description": "By advancing green initiatives, we aim to protect the planet and strive for a cleaner, more green cloud storage solution by 2025.", + "cards": { + "reduceCarbonEnergy": { + "number": "1", + "title": "Reduce carbon energy", + "description": "By 2025, the centers we use will limit their reliance on carbon energy, switching to more renewable and lower-carbon energy sources, such as nuclear and hydroelectricity." + }, + "globalNetZero": { + "number": "2", + "title": "Global NetZero", + "description": "We are committed to achieving zero net emissions for Scope 1 (direct emissions from fuel) and Scope 2 (indirect emissions from electricity). 2023 will cover all other indirect emissions." + }, + "zeroWaste": { + "number": "3", + "title": "Zero waste", + "description": "To reduce the environmental impact of landfill disposal and promote green initiatives, we are committed to zero waste to landfill by 2025 across all our server locations." + } + } + } +} diff --git a/src/assets/types/sustainability.ts b/src/assets/types/sustainability.ts new file mode 100644 index 000000000..dd7ec1b5e --- /dev/null +++ b/src/assets/types/sustainability.ts @@ -0,0 +1,88 @@ +export interface SustainabilityText { + HeroSection: HeroSection; + CtaSection: CtaSection; + CtaSection2: CtaSection; + FeatureSectionV2: FeatureSectionV2; + FeatureSectionV3: FeatureSectionV3; + FeatureSection: FeatureSection; +} + +export interface CtaSection { + title: string; + cta: string; +} + +export interface FeatureSection { + title: string; + description: string; + cards: FeatureSectionCards; +} + +export interface FeatureSectionCards { + reduceCarbonEnergy: GlobalNetZero; + globalNetZero: GlobalNetZero; + zeroWaste: GlobalNetZero; +} + +export interface GlobalNetZero { + number: string; + title: string; + description: string; +} + +export interface FeatureSectionV2 { + title: string; + description: string; + cards: FeatureSectionV2Cards; +} + +export interface FeatureSectionV2Cards { + element1: Element; + element2: Element; + element3: Element; + element4: Element; +} + +export interface Element { + title: string; + description: string; +} + +export interface FeatureSectionV3 { + title: string; + description: string; + cards: FeatureSectionV3Cards; +} + +export interface FeatureSectionV3Cards { + power: Carbon; + water: Carbon; + carbon: Carbon; + renewables: Carbon; +} + +export interface Carbon { + title: string; + description: string; + value: string; + unit: string; +} + +export interface HeroSection { + title: Title; + description: string; + goals: Goals; +} + +export interface Goals { + element1: string; + element2: string; + element3: string; + element4: string; + element5: string; +} + +export interface Title { + normalText: string; + greenText: string; +} diff --git a/src/pages/green-cloud-computing.tsx b/src/pages/green-cloud-computing.tsx new file mode 100644 index 000000000..edd865395 --- /dev/null +++ b/src/pages/green-cloud-computing.tsx @@ -0,0 +1,112 @@ +import { FooterText, MetatagsDescription, NavigationBarText } from '@/assets/types/layout/types'; +import Layout from '@/components/layout/Layout'; +import cookies from '@/lib/cookies'; +import { GetServerSidePropsContext } from 'next'; +import Navbar from '@/components/layout/navbars/Navbar'; +import Footer from '@/components/layout/footers/Footer'; +import { SustainabilityText } from '@/assets/types/sustainability'; + +import { ComponentsInColumnSection } from '@/components/shared/components/ComponentsInColumnSection'; +import { CardGroup } from '@/components/shared/CardGroup'; +import { Globe, Lightbulb, Recycle, SealPercent } from '@phosphor-icons/react'; + +import CtaSection from '@/components/sustainability/CtaSection'; +import FeatureSectionV3 from '@/components/sustainability/FeatureSectionv3'; +import FeatureSection from '@/components/sustainability/FeatureSection'; +import HeroSection from '@/components/sustainability/HeroSection'; + +interface SustainabilityProps { + metatagsDescriptions: MetatagsDescription[]; + lang: GetServerSidePropsContext['locale']; + navbarLang: NavigationBarText; + langJson: SustainabilityText; + footerLang: FooterText; +} + +const Sustainability = ({ + metatagsDescriptions, + lang, + navbarLang, + langJson, + footerLang, +}: SustainabilityProps): JSX.Element => { + const metatags = metatagsDescriptions.filter((desc) => desc.id === 'green-cloud-computing'); + const locale = lang as string; + const cardsForFeatureSection = [ + { + icon: Globe, + title: langJson.FeatureSectionV2.cards.element1.title, + description: langJson.FeatureSectionV2.cards.element1.description, + }, + { + icon: SealPercent, + title: langJson.FeatureSectionV2.cards.element2.title, + description: langJson.FeatureSectionV2.cards.element2.description, + }, + { + icon: Lightbulb, + title: langJson.FeatureSectionV2.cards.element3.title, + description: langJson.FeatureSectionV2.cards.element3.description, + }, + { + icon: Recycle, + title: langJson.FeatureSectionV2.cards.element4.title, + description: langJson.FeatureSectionV2.cards.element4.description, + }, + ]; + return ( + + + + + + + + + +
+

{langJson.FeatureSection.title}

+

{langJson.FeatureSection.description}

+
+ + } + SecondComponent={ +
+ +
+ } + backgroundColor="bg-white" + /> + + + + +