From 5248dead3e8690a9461ad753bc15a36dbfb85d9b Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Wed, 10 Dec 2025 18:08:28 +0000 Subject: [PATCH 01/18] Update homepage copy --- src/intl/en/page-index.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/intl/en/page-index.json b/src/intl/en/page-index.json index 6a39822795c..8c7c08bd3b2 100644 --- a/src/intl/en/page-index.json +++ b/src/intl/en/page-index.json @@ -6,20 +6,20 @@ "page-index-activity-action-primary": "Enterprise Ethereum", "page-index-bento-header": "A new way to use the internet", "page-index-bento-assets-action": "More on NFTs", - "page-index-bento-assets-content": "Art, certificates or even real estate can be tokenized. Anything can be a tradable token. Ownership is public and verifiable.", + "page-index-bento-assets-content": "From art to real estate to stocks, any asset can be tokenized on Ethereum to prove and verify ownership digitally. Buy, sell, trade, and create assets and collectibles—anytime, anywhere.", "page-index-bento-assets-title": "The internet of assets", "page-index-bento-dapps-action": "Browse apps", - "page-index-bento-dapps-content": "Ethereum apps work without selling your data. Protect your privacy.", - "page-index-bento-dapps-title": "Innovative apps", + "page-index-bento-dapps-content": "Apps built on Ethereum work without selling your data. From social media to gaming to work, use the same account for every innovative app while maintaining privacy and access.", + "page-index-bento-dapps-title": "Apps that respect your privacy", "page-index-bento-defi-action": "Explore DeFi", - "page-index-bento-defi-content": "Billions can't open bank accounts or freely use their money. Ethereum's financial system is always open and unbiased.", - "page-index-bento-defi-title": "A fairer financial system", - "page-index-bento-networks-action": "Explore benefits", - "page-index-bento-networks-content": "Ethereum is the hub for blockchain innovation. The best projects are built on Ethereum.", + "page-index-bento-defi-content": "Borrow, lend, earn interest, and more, without a bank account. Ethereum's decentralized financial system is open 24/7 to anyone with an internet connection.", + "page-index-bento-defi-title": "A financial system open to all", + "page-index-bento-networks-action": "Discover Layer 2s", + "page-index-bento-networks-content": "Hundreds of Layer 2 networks are built on Ethereum. Enjoy low fees and near-instant transactions while benefiting from Ethereum's proven security.", "page-index-bento-networks-title": "The network of networks", "page-index-bento-stablecoins-action": "Discover stablecoins", - "page-index-bento-stablecoins-content": "Stablecoins are currencies that maintain stable value. Their price matches the U.S. dollar or other steady assets.", - "page-index-bento-stablecoins-title": "Crypto without volatility", + "page-index-bento-stablecoins-content": "Stablecoins are currencies that maintain a stable price, matched to steady assets like the U.S. dollar. Access global payments instantly or store value in digital dollars on Ethereum.", + "page-index-bento-stablecoins-title": "Digital cash for everyday use", "page-index-builders-action-primary": "Builder's Portal", "page-index-builders-action-secondary": "Documentation", "page-index-builders-description": "Ethereum is home to Web3's largest and most vibrant developer ecosystem. Use JavaScript and Python, or learn a smart contract language like Solidity or Vyper to write your own app.", From d45bb4fa8f93c94b9d21deda2c9ea061152b59b2 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Wed, 10 Dec 2025 18:12:00 +0000 Subject: [PATCH 02/18] Update "Learn - Understand" section copy --- src/intl/en/page-index.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/intl/en/page-index.json b/src/intl/en/page-index.json index 8c7c08bd3b2..ff11662160c 100644 --- a/src/intl/en/page-index.json +++ b/src/intl/en/page-index.json @@ -63,7 +63,7 @@ "page-index-join-action-twitter-description": "To keep up with our updates and important news.", "page-index-join-description": "This website is open source with hundreds of community contributors. You can propose edits to any of the content on this site.", "page-index-join-header": "Join ethereum.org", - "page-index-learn-description": "Crypto can feel overwhelming. Don't worry, these materials are designed to help you understand Ethereum in just a few minutes.", + "page-index-learn-description": "Ethereum is a decentralized blockchain network and software development platform, powered by the cryptocurrency ether (ETH). These resources are your gateway to confidently navigate, understand, and use Ethereum.", "page-index-learn-tag": "Learn", "page-index-learn-header": "Understand Ethereum", "page-index-meta-description": "Ethereum is a global, decentralized platform for money and new kinds of applications. On Ethereum, you can write code that controls money, and build applications accessible anywhere in the world.", @@ -75,9 +75,9 @@ "page-index-network-stats-total-value-held": "Total value held on Ethereum", "page-index-popular-topics-ethereum": "What is Ethereum?", "page-index-popular-topics-header": "Popular topics", - "page-index-popular-topics-action": "Other topics", + "page-index-popular-topics-action": "More guides in Ethereum Learn Hub", "page-index-popular-topics-roadmap": "Ethereum roadmap", - "page-index-popular-topics-start": "How to start, step by step", + "page-index-popular-topics-start": "Step-by-step Ethereum guides", "page-index-popular-topics-wallets": "What are crypto wallets?", "page-index-popular-topics-whitepaper": "Ethereum Whitepaper", "page-index-posts-action": "Read more on these websites", From fb9256cd5d6f4d5f9f4deb638b5861a8837244ba Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Wed, 10 Dec 2025 18:16:23 +0000 Subject: [PATCH 03/18] Add description to data section --- app/[locale]/page.tsx | 5 ++++- src/intl/en/page-index.json | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index ec1513556dd..be2a636cff0 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -551,9 +551,12 @@ const Page = async ({ params }: { params: PageParams }) => { {t("page-index-activity-tag")} {t("page-index-activity-header")}
-

+

{t("page-index-activity-description")}

+

+ {t("page-index-activity-subtitle")} +

diff --git a/src/intl/en/page-index.json b/src/intl/en/page-index.json index ff11662160c..65b5192117e 100644 --- a/src/intl/en/page-index.json +++ b/src/intl/en/page-index.json @@ -1,5 +1,6 @@ { - "page-index-activity-description": "Activity from all Ethereum networks", + "page-index-activity-description": "Ethereum is the leading platform for issuing, managing, and settling digital assets. From tokenized money and financial instruments to real-world assets and emerging markets, Ethereum provides a secure, neutral foundation for the digital economy.", + "page-index-activity-subtitle": "Activity on Ethereum Mainnet and Layer-2 networks", "page-index-activity-tag": "Activity", "page-index-activity-header": "The strongest ecosystem", "page-index-activity-action": "More ecosystem resources", From 10f0a0efe2fb95ebec7475fda9f1b0256f1c5892 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Wed, 10 Dec 2025 18:18:43 +0000 Subject: [PATCH 04/18] Update Enterprise link + redirect --- app/[locale]/page.tsx | 4 ++-- netlify.toml | 24 ++++++++++++++++++++++++ src/intl/en/page-index.json | 2 +- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index be2a636cff0..e17a7ef1afe 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -562,11 +562,11 @@ const Page = async ({ params }: { params: PageParams }) => {
{t("page-index-activity-action-primary")} diff --git a/netlify.toml b/netlify.toml index 66367090c2d..819f3684d68 100644 --- a/netlify.toml +++ b/netlify.toml @@ -38,5 +38,29 @@ [[plugins.inputs.audits]] path = "en/developers/tutorials/creating-a-wagmi-ui-for-your-contract/" +[[redirects]] + from = "/:locale/enterprise/" + to = "https://institutions.ethereum.org/" + status = 301 + force = true + +[[redirects]] + from = "/:locale/enterprise" + to = "https://institutions.ethereum.org/" + status = 301 + force = true + +[[redirects]] + from = "/enterprise/" + to = "https://institutions.ethereum.org/" + status = 301 + force = true + +[[redirects]] + from = "/enterprise" + to = "https://institutions.ethereum.org/" + status = 301 + force = true + [functions] included_files = ["i18n.config.json", "src/intl/**/*", "src/data/mocks/**/*"] diff --git a/src/intl/en/page-index.json b/src/intl/en/page-index.json index 65b5192117e..2794b62f191 100644 --- a/src/intl/en/page-index.json +++ b/src/intl/en/page-index.json @@ -4,7 +4,7 @@ "page-index-activity-tag": "Activity", "page-index-activity-header": "The strongest ecosystem", "page-index-activity-action": "More ecosystem resources", - "page-index-activity-action-primary": "Enterprise Ethereum", + "page-index-activity-action-primary": "Ethereum for Institutions", "page-index-bento-header": "A new way to use the internet", "page-index-bento-assets-action": "More on NFTs", "page-index-bento-assets-content": "From art to real estate to stocks, any asset can be tokenized on Ethereum to prove and verify ownership digitally. Buy, sell, trade, and create assets and collectibles—anytime, anywhere.", From f3e5ff5eb9c504747d1f66c550f2976dddec5dde Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Wed, 10 Dec 2025 18:43:12 +0000 Subject: [PATCH 05/18] Added "What is Ethereum" section and removed "Ethereum.org community" section --- app/[locale]/page.tsx | 202 ++++++++++++------------------------ src/intl/en/page-index.json | 11 +- 2 files changed, 79 insertions(+), 134 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index e17a7ef1afe..cb321e6df3d 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -14,6 +14,7 @@ import { CodeExample } from "@/lib/interfaces" import ActivityStats from "@/components/ActivityStats" import FusakaBanner from "@/components/Banners/FusakaBanner" import { ChevronNext } from "@/components/Chevron" +import EthPriceCard from "@/components/EthPriceCard" import HomeHero from "@/components/Hero/HomeHero" import BentoCard from "@/components/Homepage/BentoCard" import CodeExamples from "@/components/Homepage/CodeExamples" @@ -22,8 +23,6 @@ import { getBentoBoxItems } from "@/components/Homepage/utils" import ValuesMarqueeFallback from "@/components/Homepage/ValuesMarquee/Fallback" import BlockHeap from "@/components/icons/block-heap.svg" import BuildAppsIcon from "@/components/icons/build-apps.svg" -import Calendar from "@/components/icons/calendar.svg" -import CalendarAdd from "@/components/icons/calendar-add.svg" import Discord from "@/components/icons/discord.svg" import EthGlyphIcon from "@/components/icons/eth-glyph.svg" import EthTokenIcon from "@/components/icons/eth-token.svg" @@ -58,7 +57,6 @@ import { SectionTag, } from "@/components/ui/section" import { Skeleton, SkeletonCardGrid } from "@/components/ui/skeleton" -import WindowBox from "@/components/WindowBox" import { parseAppsOfTheWeek } from "@/lib/utils/apps" import { cn } from "@/lib/utils/cn" @@ -75,7 +73,6 @@ import { BASE_TIME_UNIT, BLOG_FEEDS, BLOGS_WITHOUT_FEED, - CALENDAR_DISPLAY_COUNT, DEFAULT_LOCALE, GITHUB_REPO_URL, LOCALES_CODES, @@ -170,7 +167,6 @@ const Page = async ({ params }: { params: PageParams }) => { { totalEthStaked }, totalValueLocked, growThePieData, - communityEvents, attestantPosts, xmlBlogs, appsData, @@ -415,14 +411,6 @@ const Page = async ({ params }: { params: PageParams }) => { } const metrics = await getActivity(metricResults, locale) - const calendar = communityEvents.upcomingEventData - .sort((a, b) => { - const dateA = isValidDate(a.date) ? new Date(a.date).getTime() : -Infinity - const dateB = isValidDate(b.date) ? new Date(b.date).getTime() : -Infinity - return dateA - dateB - }) - .slice(0, CALENDAR_DISPLAY_COUNT) - // RSS feed items const polishedRssItems = polishRSSList([attestantPosts, ...xmlBlogs], locale) const rssItems = polishedRssItems.slice(0, RSS_DISPLAY_COUNT) @@ -479,6 +467,61 @@ const Page = async ({ params }: { params: PageParams }) => { )}
+ {/* What is Ethereum */} +
+
+

+ {t("page-index-what-is-ethereum-title")} +

+
+

{t("page-index-what-is-ethereum-description-1")}

+

{t("page-index-what-is-ethereum-description-2")}

+
+
+ + {t("page-index-what-is-ethereum-action")} + +
+
+
+ + {/* What is Ether (ETH) */} +
+
+

+ {t("page-index-what-is-ether-title")} +

+
+ +
+
+

{t("page-index-what-is-ether-description-1")}

+

{t("page-index-what-is-ether-description-2")}

+
+
+ + {t("page-index-what-is-ether-action")} + +
+
+
+ {/* Use Cases - A new way to use the internet */}
{
- {/* Ethereum.org community - Built by the community */} -
- - - - - - {t("page-index-community-tag")} - {t("page-index-community-header")} -
-

{t("page-index-community-description-1")}

-

{t("page-index-community-description-2")}

-

{t("page-index-community-description-3")}

-
-
- - {t("page-index-community-action")} - -
- - - - - - -
-
-
- - {calendar.length > 0 ? ( - calendar.map(({ date, title, calendarLink }) => { - const customEventOptions = { - eventCategory, - eventAction: "Community Events Widget", - eventName: "upcoming", - } - return ( -
-
- - {title} - -

- {new Intl.DateTimeFormat(locale, { - month: "long", - day: "2-digit", - year: "numeric", - hour: "numeric", - minute: "numeric", - }).format(new Date(date))} -

-
- - {t("page-index-calendar-add")} - -
- ) - }) - ) : ( -
- {t("page-index-calendar-fallback")} -
- )} -
-
-
-
- {/* Recent posts */}

@@ -997,6 +920,19 @@ const Page = async ({ params }: { params: PageParams }) => { ) )}

+
+ + {t("page-index-join-action-hub")} + +
diff --git a/src/intl/en/page-index.json b/src/intl/en/page-index.json index 2794b62f191..a6d597ac1d1 100644 --- a/src/intl/en/page-index.json +++ b/src/intl/en/page-index.json @@ -62,9 +62,18 @@ "page-index-join-action-discord-description": "To ask questions, coordinate contribution and join community calls.", "page-index-join-action-github-description": "Contribute to code, design, articles, etc.", "page-index-join-action-twitter-description": "To keep up with our updates and important news.", - "page-index-join-description": "This website is open source with hundreds of community contributors. You can propose edits to any of the content on this site.", + "page-index-join-description": "The ethereum.org website is built and maintained by thousands of translators, coders, designers, copywriters, and community members. You can propose edits to any of the content on this open source site.", "page-index-join-header": "Join ethereum.org", + "page-index-join-action-hub": "ethereum.org contributor hub", "page-index-learn-description": "Ethereum is a decentralized blockchain network and software development platform, powered by the cryptocurrency ether (ETH). These resources are your gateway to confidently navigate, understand, and use Ethereum.", + "page-index-what-is-ethereum-title": "What is Ethereum?", + "page-index-what-is-ethereum-description-1": "Ethereum is a decentralized, open source blockchain network and software development platform, powered by the cryptocurrency ether (ETH). Ethereum is the secure, global foundation for a new generation of unstoppable applications.", + "page-index-what-is-ethereum-description-2": "The Ethereum network is open to everyone: no permission is required. It has no owner, and is built and maintained by thousands of people, organizations, and users around the world.", + "page-index-what-is-ethereum-action": "Learn about Ethereum", + "page-index-what-is-ether-title": "What is ether (ETH)?", + "page-index-what-is-ether-description-1": "Ether (ETH) is the native cryptocurrency that powers the Ethereum network, used to pay transaction fees and secure the blockchain through staking.", + "page-index-what-is-ether-description-2": "Beyond its technical role, ETH is open, programmable digital money. It is used for global payments, as collateral for loans, and as a store of value that doesn't rely on any central entity.", + "page-index-what-is-ether-action": "Learn about ETH", "page-index-learn-tag": "Learn", "page-index-learn-header": "Understand Ethereum", "page-index-meta-description": "Ethereum is a global, decentralized platform for money and new kinds of applications. On Ethereum, you can write code that controls money, and build applications accessible anywhere in the world.", From c15cfb4ca45cef4e1e83de005445f89190c3d5ef Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Wed, 10 Dec 2025 18:55:14 +0000 Subject: [PATCH 06/18] Remove unused imports for community events --- app/[locale]/page.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index cb321e6df3d..f2868766b04 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -84,7 +84,6 @@ import IndexPageJsonLD from "./page-jsonld" import { getActivity, getUpcomingEvents } from "./utils" import { routing } from "@/i18n/routing" -import { fetchCommunityEvents } from "@/lib/api/calendarEvents" import { fetchApps } from "@/lib/api/fetchApps" import { fetchBeaconchainEpoch } from "@/lib/api/fetchBeaconchainEpoch" import { fetchEthPrice } from "@/lib/api/fetchEthPrice" @@ -143,7 +142,6 @@ const loadData = dataLoader( ["beaconchainEpoch", fetchBeaconchainEpoch], ["totalValueLocked", fetchTotalValueLocked], ["growThePieData", fetchGrowThePie], - ["communityEvents", fetchCommunityEvents], ["attestantPosts", fetchAttestantPosts], ["rssData", fetchXmlBlogFeeds], ["appsData", fetchApps], From 1e1cfd8598b329297c33a9552091255ff3baf5e6 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Wed, 10 Dec 2025 22:21:30 +0000 Subject: [PATCH 07/18] Update navigation (remove SVGs) --- src/components/Nav/Menu/SubMenu.tsx | 10 +--- src/components/Nav/useNavigation.ts | 80 +---------------------------- 2 files changed, 3 insertions(+), 87 deletions(-) diff --git a/src/components/Nav/Menu/SubMenu.tsx b/src/components/Nav/Menu/SubMenu.tsx index 72e4c543da1..eeaaacb9425 100644 --- a/src/components/Nav/Menu/SubMenu.tsx +++ b/src/components/Nav/Menu/SubMenu.tsx @@ -59,7 +59,7 @@ const SubMenu = ({ lvl, items, activeSection, onClose }: LvlContentProps) => { {items.map((item) => { - const { label, icon: Icon, ...action } = item + const { label, ...action } = item const subItems = action.items || [] const isLink = "href" in action const isActivePage = isLink && cleanPath(asPath) === action.href @@ -86,10 +86,6 @@ const SubMenu = ({ lvl, items, activeSection, onClose }: LvlContentProps) => { asChild > - {lvl === 1 && Icon ? ( - - ) : null} - @@ -98,10 +94,6 @@ const SubMenu = ({ lvl, items, activeSection, onClose }: LvlContentProps) => { <> diff --git a/src/components/Nav/useNavigation.ts b/src/components/Nav/useNavigation.ts index 40aff11cad8..ec8294f27ea 100644 --- a/src/components/Nav/useNavigation.ts +++ b/src/components/Nav/useNavigation.ts @@ -1,23 +1,4 @@ -import BookIcon from "@/components/icons/book.svg" -import BuildingsIcon from "@/components/icons/buildings.svg" -import CodeSquareIcon from "@/components/icons/code-square.svg" -import CompassIcon from "@/components/icons/compass.svg" -import EthereumIcon from "@/components/icons/ethereum-icon.svg" -import FlagIcon from "@/components/icons/flag.svg" -import Flask from "@/components/icons/flask.svg" -import JournalCodeIcon from "@/components/icons/journal-code.svg" -import LayersIcon from "@/components/icons/layers.svg" -import LightbulbIcon from "@/components/icons/lightbulb.svg" -import MegaphoneIcon from "@/components/icons/megaphone.svg" -import MortarboardIcon from "@/components/icons/mortarboard.svg" -import PinAngleIcon from "@/components/icons/pin-angle.svg" -import SafeIcon from "@/components/icons/safe.svg" -import SignpostIcon from "@/components/icons/signpost.svg" -import SlidersHorizontalCircles from "@/components/icons/sliders-horizontal-circles.svg" -import UiChecksGridIcon from "@/components/icons/ui-checks-grid.svg" -import UsersFourLight from "@/components/icons/users-four-light.svg" - -import type { NavItem, NavSections } from "./types" +import type { NavSections } from "./types" import useTranslation from "@/hooks/useTranslation" import { buildNavigation } from "@/lib/nav/buildNavigation" @@ -27,62 +8,5 @@ export const useNavigation = () => { const linkSections: NavSections = buildNavigation(t) - const iconById: Record = { - "learn/overview": CompassIcon, - "learn/basics": UiChecksGridIcon, - "learn/advanced": SlidersHorizontalCircles, - "learn/quizzes": MortarboardIcon, - "use/get-started": PinAngleIcon, - "use/use-cases": LightbulbIcon, - "use/stake": SafeIcon, - "use/networks": LayersIcon, - "build/home": CodeSquareIcon, - "build/get-started": FlagIcon, - "build/docs": JournalCodeIcon, - "build/business": BuildingsIcon, - "participate/community-hub": UsersFourLight, - "participate/events": MegaphoneIcon, - "participate/ethereum-org": EthereumIcon, - "research/whitepaper": BookIcon, - "research/roadmap": SignpostIcon, - "research/research": Flask, - } - - const applyIconsToItems = (items: NavItem[]): NavItem[] => - items.map((item) => { - const icon = item.id ? iconById[item.id] : undefined - if ("items" in item && item.items) { - return { - ...item, - ...(icon ? { icon } : {}), - items: applyIconsToItems(item.items), - } - } - return { ...item, ...(icon ? { icon } : {}) } as NavItem - }) - - const linkSectionsWithIcons: NavSections = { - learn: { - ...linkSections.learn, - items: applyIconsToItems(linkSections.learn.items), - }, - use: { - ...linkSections.use, - items: applyIconsToItems(linkSections.use.items), - }, - build: { - ...linkSections.build, - items: applyIconsToItems(linkSections.build.items), - }, - participate: { - ...linkSections.participate, - items: applyIconsToItems(linkSections.participate.items), - }, - research: { - ...linkSections.research, - items: applyIconsToItems(linkSections.research.items), - }, - } - - return { linkSections: linkSectionsWithIcons } + return { linkSections } } From 650d050a35b862c2c78dec290a531305d823b413 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Wed, 10 Dec 2025 22:24:53 +0000 Subject: [PATCH 08/18] Update design --- app/[locale]/page.tsx | 44 ++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index f2868766b04..50fcd63fe5b 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -467,15 +467,17 @@ const Page = async ({ params }: { params: PageParams }) => { {/* What is Ethereum */}
-
-

- {t("page-index-what-is-ethereum-title")} -

-
-

{t("page-index-what-is-ethereum-description-1")}

-

{t("page-index-what-is-ethereum-description-2")}

+ +
+ + {t("page-index-what-is-ethereum-title")} + +
+

{t("page-index-what-is-ethereum-description-1")}

+

{t("page-index-what-is-ethereum-description-2")}

+
-
+
{ {t("page-index-what-is-ethereum-action")}
-
+
{/* What is Ether (ETH) */}
-
-

- {t("page-index-what-is-ether-title")} -

-
- -
-
-

{t("page-index-what-is-ether-description-1")}

-

{t("page-index-what-is-ether-description-2")}

+ +
+ + {t("page-index-what-is-ether-title")} + + +
+

{t("page-index-what-is-ether-description-1")}

+

{t("page-index-what-is-ether-description-2")}

+
-
+
{ {t("page-index-what-is-ether-action")}
-
+
{/* Use Cases - A new way to use the internet */} From d2c58662631bfa1a3fa7ac6ce8cda2b8436d2c20 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Wed, 10 Dec 2025 22:34:12 +0000 Subject: [PATCH 09/18] Add Schema.org structured data markup for search engines --- src/components/ActivityStats/index.tsx | 11 ++++++++++- src/components/BigNumber/index.tsx | 10 ++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/components/ActivityStats/index.tsx b/src/components/ActivityStats/index.tsx index 92b94db6702..69c7fdbb1dd 100644 --- a/src/components/ActivityStats/index.tsx +++ b/src/components/ActivityStats/index.tsx @@ -16,7 +16,16 @@ const ActivityStats = async ({ metrics, className }: ActivityStatsProps) => { "xl:ps-8", ] return ( -
+
+ + {metrics.map(({ label, apiProvider, apiUrl, state }, idx) => ( {value ? ( <> -
+
{value}
- {children} + {children} {sourceName && sourceUrl && ( <>   From 48ce4bfc0c85e7323b5851f313e88d4bd6cd1e71 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Thu, 11 Dec 2025 16:24:33 +0000 Subject: [PATCH 10/18] Styling updates --- app/[locale]/page.tsx | 192 ++++++++---------- src/components/EthPriceSimple.tsx | 106 ++++++++++ .../Homepage/HomepageSectionImage.tsx | 8 + src/components/Homepage/utils.ts | 10 +- src/intl/en/page-index.json | 6 +- tailwind.config.ts | 2 +- 6 files changed, 209 insertions(+), 115 deletions(-) create mode 100644 src/components/EthPriceSimple.tsx diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 50fcd63fe5b..622f6964efa 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -14,7 +14,7 @@ import { CodeExample } from "@/lib/interfaces" import ActivityStats from "@/components/ActivityStats" import FusakaBanner from "@/components/Banners/FusakaBanner" import { ChevronNext } from "@/components/Chevron" -import EthPriceCard from "@/components/EthPriceCard" +import EthPriceSimple from "@/components/EthPriceSimple" import HomeHero from "@/components/Hero/HomeHero" import BentoCard from "@/components/Homepage/BentoCard" import CodeExamples from "@/components/Homepage/CodeExamples" @@ -466,18 +466,25 @@ const Page = async ({ params }: { params: PageParams }) => {
{/* What is Ethereum */} -
- -
- - {t("page-index-what-is-ethereum-title")} - -
-

{t("page-index-what-is-ethereum-description-1")}

-

{t("page-index-what-is-ethereum-description-2")}

-
+
+ + + + + + {t("page-index-network-tag")} + + {t("page-index-what-is-ethereum-title")} + +
+

{t("page-index-what-is-ethereum-description-1")}

+

{t("page-index-what-is-ethereum-description-2")}

-
+
{ {t("page-index-what-is-ethereum-action")}
- -
- {/* What is Ether (ETH) */} -
- -
- - {t("page-index-what-is-ether-title")} - - -
-

{t("page-index-what-is-ether-description-1")}

-

{t("page-index-what-is-ether-description-2")}

+ {/* Popular topics */} +
+

+ {t("page-index-popular-topics-header")} +

+
+ {popularTopics + .filter((topic) => topic.href !== "/what-is-ethereum/") + .map(({ label, Svg, href, eventName, className }) => ( + :first-child]:flex-row", + className + )} + customEventOptions={{ + eventCategory, + eventAction: "popular topics", + eventName, + }} + > +

+ {label} +

+
+ ))}
-
- - {t("page-index-what-is-ether-action")} - -
@@ -531,10 +540,7 @@ const Page = async ({ params }: { params: PageParams }) => { )} >
{t("page-index-use-cases-tag")} @@ -561,6 +567,38 @@ const Page = async ({ params }: { params: PageParams }) => { ))}
+ {/* What is ETH */} +
+ + + + + + {t("page-index-token-tag")} + + {t("page-index-what-is-ether-title")} + + +
+

{t("page-index-what-is-ether-description-1")}

+

{t("page-index-what-is-ether-description-2")}

+
+
+ + {t("page-index-what-is-ether-action")} + +
+
+
+ {/* Apps of the week - Discover the best apps on Ethereum */} {/* // TODO: Remove locale restriction after translation */} {locale === DEFAULT_LOCALE && ( @@ -585,7 +623,11 @@ const Page = async ({ params }: { params: PageParams }) => { )} {/* Activity - The strongest ecosystem */} -
+
@@ -632,70 +674,6 @@ const Page = async ({ params }: { params: PageParams }) => {
- {/* Learn - Understand Ethereum */} -
- - - - - - {t("page-index-learn-tag")} - {t("page-index-learn-header")} -
-

{t("page-index-learn-description")}

-
-

- {t("page-index-popular-topics-header")} -

-
- {popularTopics.map( - ({ label, Svg, href, eventName, className }) => ( - :first-child]:flex-row", - className - )} - customEventOptions={{ - eventCategory, - eventAction: "popular topics", - eventName, - }} - > -

- {label} -

-
- ) - )} -
-
- - {t("page-index-popular-topics-action")} - -
-
-
-
-
- {/* Values - The Internet Is Changing */}
diff --git a/src/components/EthPriceSimple.tsx b/src/components/EthPriceSimple.tsx new file mode 100644 index 00000000000..78daecf1f18 --- /dev/null +++ b/src/components/EthPriceSimple.tsx @@ -0,0 +1,106 @@ +"use client" + +import { useEffect, useState } from "react" +import { Info } from "lucide-react" +import { useLocale } from "next-intl" + +import type { LoadingState } from "@/lib/types" + +import Tooltip from "@/components/Tooltip" +import InlineLink from "@/components/ui/Link" + +import { cn } from "@/lib/utils/cn" + +import { useTranslation } from "@/hooks/useTranslation" + +type EthPriceResponse = { + ethereum: { + usd: string + } +} + +type EthPriceState = { + currentPriceUSD: string +} + +const EthPriceSimple = ({ + className, + ...props +}: React.HTMLAttributes) => { + const locale = useLocale() + const { t } = useTranslation() + const [state, setState] = useState>({ + loading: true, + }) + + useEffect(() => { + const fetchData = async () => { + try { + const response = await fetch( + "https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd" + ) + if (!response.ok) throw new Error(response.statusText) + const data: EthPriceResponse = await response.json() + if (data && data.ethereum) { + const currentPriceUSD = data.ethereum.usd + setState({ + loading: false, + data: { currentPriceUSD }, + }) + } + } catch (error: unknown) { + error instanceof Error && console.error(error.message) + setState({ + loading: false, + error, + }) + } + } + fetchData() + }, []) + + const hasError = "error" in state + + const formatPrice = (price: string) => + new Intl.NumberFormat(locale, { + style: "currency", + currency: "USD", + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }).format(+price) + + const getPriceString = (): string => { + if (state.loading) return t("loading") + if (hasError) return t("loading-error-refresh") + return formatPrice(state.data.currentPriceUSD) + } + + const price = getPriceString() + + const tooltipContent = ( +
+ {t("data-provided-by")}{" "} + + coingecko.com + +
+ ) + + return ( +
+
+ {price} +
+
+ {t("eth-current-price")} + + + +
+
+ ) +} + +export default EthPriceSimple diff --git a/src/components/Homepage/HomepageSectionImage.tsx b/src/components/Homepage/HomepageSectionImage.tsx index 875d1cc4a3e..e5a6a945139 100644 --- a/src/components/Homepage/HomepageSectionImage.tsx +++ b/src/components/Homepage/HomepageSectionImage.tsx @@ -21,6 +21,14 @@ const imageMap: Record< desktop: StaticImageData } > = { + "what-is-ethereum": { + mobile: learnHubHero, + desktop: learnHubHeroPortrait, + }, + "what-is-ether": { + mobile: quizzesHubHero, + desktop: quizzesHubHeroPortrait, + }, activity: { mobile: layerTwoHubHero, desktop: layerTwoHubHeroPortrait, diff --git a/src/components/Homepage/utils.ts b/src/components/Homepage/utils.ts index 30ea54550c2..94b1c181c43 100644 --- a/src/components/Homepage/utils.ts +++ b/src/components/Homepage/utils.ts @@ -86,11 +86,11 @@ const stylesByPosition: Record = { cn("lg:col-span-6 lg:row-start-4", flow.lg.down), ], xl: [ - cn("xl:col-span-7 xl:col-start-5 xl:row-start-1", flow.xl.right), - cn("xl:col-span-4 xl:col-start-2 xl:row-start-2", flow.xl.up), - cn("xl:col-span-3 xl:col-start-6 xl:row-start-2", flow.xl.down), - cn("xl:col-span-3 xl:col-start-9 xl:row-span-2 xl:row-start-2", flow.xl.up), - cn("xl:col-span-7 xl:col-start-2 xl:row-start-3", flow.xl.right), + cn("xl:col-span-8 xl:col-start-5 xl:row-start-1", flow.xl.right), + cn("xl:col-span-4 xl:row-start-2", flow.xl.up), + cn("xl:col-span-4 xl:col-start-5 xl:row-start-2", flow.xl.down), + cn("xl:col-span-4 xl:col-start-9 xl:row-span-2 xl:row-start-2", flow.xl.up), + cn("xl:col-span-8 xl:row-start-3", flow.xl.right), ], } diff --git a/src/intl/en/page-index.json b/src/intl/en/page-index.json index a6d597ac1d1..8ad076f70de 100644 --- a/src/intl/en/page-index.json +++ b/src/intl/en/page-index.json @@ -70,11 +70,13 @@ "page-index-what-is-ethereum-description-1": "Ethereum is a decentralized, open source blockchain network and software development platform, powered by the cryptocurrency ether (ETH). Ethereum is the secure, global foundation for a new generation of unstoppable applications.", "page-index-what-is-ethereum-description-2": "The Ethereum network is open to everyone: no permission is required. It has no owner, and is built and maintained by thousands of people, organizations, and users around the world.", "page-index-what-is-ethereum-action": "Learn about Ethereum", - "page-index-what-is-ether-title": "What is ether (ETH)?", + "page-index-what-is-ether-title": "What is ETH?", "page-index-what-is-ether-description-1": "Ether (ETH) is the native cryptocurrency that powers the Ethereum network, used to pay transaction fees and secure the blockchain through staking.", "page-index-what-is-ether-description-2": "Beyond its technical role, ETH is open, programmable digital money. It is used for global payments, as collateral for loans, and as a store of value that doesn't rely on any central entity.", - "page-index-what-is-ether-action": "Learn about ETH", + "page-index-what-is-ether-action": "Learn more about Ether", "page-index-learn-tag": "Learn", + "page-index-network-tag": "Network", + "page-index-token-tag": "Token", "page-index-learn-header": "Understand Ethereum", "page-index-meta-description": "Ethereum is a global, decentralized platform for money and new kinds of applications. On Ethereum, you can write code that controls money, and build applications accessible anywhere in the world.", "page-index-meta-title": "Ethereum.org: The complete guide to Ethereum", diff --git a/tailwind.config.ts b/tailwind.config.ts index 8e6e4cef472..6dd66724aea 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -329,7 +329,7 @@ const config = { "4xl": "2rem" /* 32px */, }, gridTemplateColumns: { - bento: "2rem repeat(10, 1fr) 2rem", + bento: "repeat(12, 1fr)", }, textUnderlineOffset: { 3: "3px", From 51aba4574fe7983c54b4bbfe732109efa482475a Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Thu, 11 Dec 2025 16:30:09 +0000 Subject: [PATCH 11/18] Update headings --- src/intl/en/page-index.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/intl/en/page-index.json b/src/intl/en/page-index.json index 8ad076f70de..60f347d4b8d 100644 --- a/src/intl/en/page-index.json +++ b/src/intl/en/page-index.json @@ -54,7 +54,7 @@ "page-index-developers-code-example-title-3": "An open, permissionless DNS", "page-index-developers-code-examples": "Code examples", "page-index-events-action": "See all events", - "page-index-events-header": "Events", + "page-index-events-header": "Ethereum events", "page-index-events-subtitle": "Ethereum communities host events all around the globe, all year long", "page-index-hero-image-alt": "An illustration of a futuristic city, representing the Ethereum ecosystem.", "page-index-join-action-contribute-description": "Find out all the different ways you can help ethereum.org grow and be better.", @@ -93,7 +93,7 @@ "page-index-popular-topics-wallets": "What are crypto wallets?", "page-index-popular-topics-whitepaper": "Ethereum Whitepaper", "page-index-posts-action": "Read more on these websites", - "page-index-posts-header": "Recent posts", + "page-index-posts-header": "Ethereum news", "page-index-posts-subtitle": "The latest blog posts and updates from the community", "page-index-title": "Welcome to Ethereum", "page-index-use-cases-tag": "Use cases", From 06082b2154f3d0110a518063a714e35812786561 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Thu, 11 Dec 2025 20:36:23 +0000 Subject: [PATCH 12/18] Move enterprise redirect from netlify.toml to redirects.config.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per review feedback, netlify.toml is no longer used for redirects. Move the /enterprise -> institutions.ethereum.org redirect to the correct location in redirects.config.js. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- netlify.toml | 24 ------------------------ redirects.config.js | 3 ++- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/netlify.toml b/netlify.toml index 819f3684d68..66367090c2d 100644 --- a/netlify.toml +++ b/netlify.toml @@ -38,29 +38,5 @@ [[plugins.inputs.audits]] path = "en/developers/tutorials/creating-a-wagmi-ui-for-your-contract/" -[[redirects]] - from = "/:locale/enterprise/" - to = "https://institutions.ethereum.org/" - status = 301 - force = true - -[[redirects]] - from = "/:locale/enterprise" - to = "https://institutions.ethereum.org/" - status = 301 - force = true - -[[redirects]] - from = "/enterprise/" - to = "https://institutions.ethereum.org/" - status = 301 - force = true - -[[redirects]] - from = "/enterprise" - to = "https://institutions.ethereum.org/" - status = 301 - force = true - [functions] included_files = ["i18n.config.json", "src/intl/**/*", "src/data/mocks/**/*"] diff --git a/redirects.config.js b/redirects.config.js index 23300bb091b..8b4aff91e3a 100644 --- a/redirects.config.js +++ b/redirects.config.js @@ -95,7 +95,8 @@ module.exports = [ "/guides/how-to-create-an-ethereum-account/", ], ["/deprecated-software", "/apps/"], - ["/enterprise/private-ethereum", "/enterprise/"], + ["/enterprise", "https://institutions.ethereum.org/"], + ["/enterprise/private-ethereum", "https://institutions.ethereum.org/"], ["/dashboards", "/resources"], ["/tds", "/trillion-dollar-security"], ["/10-years", "/10years"], From ab3905836c28a72458005e73e9eac0e8e7128ab4 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Thu, 11 Dec 2025 20:55:52 +0000 Subject: [PATCH 13/18] Refactor EthPriceSimple to use server-side data fetching Convert EthPriceSimple from client component to server component, accepting ethPrice as a prop instead of fetching client-side. This avoids CoinGecko rate limits and eliminates layout shift. The homepage already fetches ethPrice server-side with hourly revalidation via dataLoader. --- app/[locale]/page.tsx | 2 +- src/components/EthPriceSimple.tsx | 73 +++++++------------------------ 2 files changed, 16 insertions(+), 59 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 622f6964efa..a6d3dc229bf 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -578,7 +578,7 @@ const Page = async ({ params }: { params: PageParams }) => { {t("page-index-what-is-ether-title")} - +

{t("page-index-what-is-ether-description-1")}

{t("page-index-what-is-ether-description-2")}

diff --git a/src/components/EthPriceSimple.tsx b/src/components/EthPriceSimple.tsx index 78daecf1f18..068681fd0f6 100644 --- a/src/components/EthPriceSimple.tsx +++ b/src/components/EthPriceSimple.tsx @@ -1,81 +1,38 @@ -"use client" - -import { useEffect, useState } from "react" import { Info } from "lucide-react" -import { useLocale } from "next-intl" +import { getLocale, getTranslations } from "next-intl/server" -import type { LoadingState } from "@/lib/types" +import type { MetricReturnData } from "@/lib/types" import Tooltip from "@/components/Tooltip" import InlineLink from "@/components/ui/Link" import { cn } from "@/lib/utils/cn" -import { useTranslation } from "@/hooks/useTranslation" - -type EthPriceResponse = { - ethereum: { - usd: string - } -} - -type EthPriceState = { - currentPriceUSD: string +interface EthPriceSimpleProps extends React.HTMLAttributes { + ethPrice: MetricReturnData } -const EthPriceSimple = ({ +const EthPriceSimple = async ({ + ethPrice, className, ...props -}: React.HTMLAttributes) => { - const locale = useLocale() - const { t } = useTranslation() - const [state, setState] = useState>({ - loading: true, - }) - - useEffect(() => { - const fetchData = async () => { - try { - const response = await fetch( - "https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd" - ) - if (!response.ok) throw new Error(response.statusText) - const data: EthPriceResponse = await response.json() - if (data && data.ethereum) { - const currentPriceUSD = data.ethereum.usd - setState({ - loading: false, - data: { currentPriceUSD }, - }) - } - } catch (error: unknown) { - error instanceof Error && console.error(error.message) - setState({ - loading: false, - error, - }) - } - } - fetchData() - }, []) +}: EthPriceSimpleProps) => { + const locale = await getLocale() + const t = await getTranslations() - const hasError = "error" in state + const hasError = "error" in ethPrice - const formatPrice = (price: string) => + const formatPrice = (price: number) => new Intl.NumberFormat(locale, { style: "currency", currency: "USD", minimumFractionDigits: 2, maximumFractionDigits: 2, - }).format(+price) - - const getPriceString = (): string => { - if (state.loading) return t("loading") - if (hasError) return t("loading-error-refresh") - return formatPrice(state.data.currentPriceUSD) - } + }).format(price) - const price = getPriceString() + const price = hasError + ? t("loading-error-refresh") + : formatPrice(ethPrice.value) const tooltipContent = (
From 30db5de7b352d1d24635ed4226458183abf83673 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Thu, 11 Dec 2025 20:58:39 +0000 Subject: [PATCH 14/18] Add formatPriceUSD util and use in EthPriceSimple Add centralized price formatting utility for USD values with 2 decimal places. Use it in EthPriceSimple instead of inline formatting logic. --- src/components/EthPriceSimple.tsx | 11 ++--------- src/lib/utils/numbers.ts | 9 +++++++++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/components/EthPriceSimple.tsx b/src/components/EthPriceSimple.tsx index 068681fd0f6..b995af9a828 100644 --- a/src/components/EthPriceSimple.tsx +++ b/src/components/EthPriceSimple.tsx @@ -7,6 +7,7 @@ import Tooltip from "@/components/Tooltip" import InlineLink from "@/components/ui/Link" import { cn } from "@/lib/utils/cn" +import { formatPriceUSD } from "@/lib/utils/numbers" interface EthPriceSimpleProps extends React.HTMLAttributes { ethPrice: MetricReturnData @@ -22,17 +23,9 @@ const EthPriceSimple = async ({ const hasError = "error" in ethPrice - const formatPrice = (price: number) => - new Intl.NumberFormat(locale, { - style: "currency", - currency: "USD", - minimumFractionDigits: 2, - maximumFractionDigits: 2, - }).format(price) - const price = hasError ? t("loading-error-refresh") - : formatPrice(ethPrice.value) + : formatPriceUSD(ethPrice.value, locale) const tooltipContent = (
diff --git a/src/lib/utils/numbers.ts b/src/lib/utils/numbers.ts index 3c325f99e15..ac48d4f33c5 100644 --- a/src/lib/utils/numbers.ts +++ b/src/lib/utils/numbers.ts @@ -25,3 +25,12 @@ export const formatLargeNumber = (value: number, locale: string): string => { maximumSignificantDigits: 4, }).format(value) } + +export const formatPriceUSD = (value: number, locale: string): string => { + return new Intl.NumberFormat(locale, { + style: "currency", + currency: "USD", + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }).format(value) +} From 94f5455d3bd05735cc38eef13a652630500bdaa6 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Mon, 15 Dec 2025 12:48:24 +0000 Subject: [PATCH 15/18] Fix EthPriceSimple translations and add homepage section divider - Add namespace to getTranslations call in EthPriceSimple to fix missing translations - Add horizontal divider between hero CTAs and What is Ethereum section --- app/[locale]/page.tsx | 4 +++- src/components/EthPriceSimple.tsx | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index a6d3dc229bf..c6ca7f38c51 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -465,6 +465,8 @@ const Page = async ({ params }: { params: PageParams }) => { )}
+
+ {/* What is Ethereum */}
{ {t("page-index-activity-tag")} {t("page-index-activity-header")} -
+

{t("page-index-activity-description")}

diff --git a/src/components/EthPriceSimple.tsx b/src/components/EthPriceSimple.tsx index b995af9a828..1f9d4a35434 100644 --- a/src/components/EthPriceSimple.tsx +++ b/src/components/EthPriceSimple.tsx @@ -19,7 +19,7 @@ const EthPriceSimple = async ({ ...props }: EthPriceSimpleProps) => { const locale = await getLocale() - const t = await getTranslations() + const t = await getTranslations({ locale, namespace: "common" }) const hasError = "error" in ethPrice From c5ba2788d85a478f7c63cc4f3109071a8b849e61 Mon Sep 17 00:00:00 2001 From: wackerow <54227730+wackerow@users.noreply.github.com> Date: Mon, 15 Dec 2025 14:28:14 -0300 Subject: [PATCH 16/18] patch: updated link --- app/[locale]/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index c6ca7f38c51..e1490dffbec 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -587,7 +587,7 @@ const Page = async ({ params }: { params: PageParams }) => {
Date: Mon, 15 Dec 2025 15:35:12 -0300 Subject: [PATCH 17/18] patch: apply suggestions from code review - Fixes divider coloring - Fixes "Layer 2" punctuation - Adds padding under subtext --- app/[locale]/page.tsx | 6 ++---- src/intl/en/page-index.json | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index e1490dffbec..4968c3a2a0a 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -426,7 +426,7 @@ const Page = async ({ params }: { params: PageParams }) => {
-
+
{subHeroCTAs.map( ({ label, description, href, className, Svg }, idx) => { const Link = ( @@ -465,8 +465,6 @@ const Page = async ({ params }: { params: PageParams }) => { )}
-
- {/* What is Ethereum */}
{

{t("page-index-activity-description")}

-

+

{t("page-index-activity-subtitle")}

diff --git a/src/intl/en/page-index.json b/src/intl/en/page-index.json index 60f347d4b8d..1ed211db97a 100644 --- a/src/intl/en/page-index.json +++ b/src/intl/en/page-index.json @@ -1,6 +1,6 @@ { "page-index-activity-description": "Ethereum is the leading platform for issuing, managing, and settling digital assets. From tokenized money and financial instruments to real-world assets and emerging markets, Ethereum provides a secure, neutral foundation for the digital economy.", - "page-index-activity-subtitle": "Activity on Ethereum Mainnet and Layer-2 networks", + "page-index-activity-subtitle": "Activity on Ethereum Mainnet and Layer 2 networks", "page-index-activity-tag": "Activity", "page-index-activity-header": "The strongest ecosystem", "page-index-activity-action": "More ecosystem resources", From 2fdf583af263cd41b1a5f71e9b0c2a3fc7297165 Mon Sep 17 00:00:00 2001 From: Paul Wackerow <54227730+wackerow@users.noreply.github.com> Date: Mon, 15 Dec 2025 15:40:47 -0300 Subject: [PATCH 18/18] patch: casing --- src/intl/en/page-index.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/intl/en/page-index.json b/src/intl/en/page-index.json index 1ed211db97a..664db018280 100644 --- a/src/intl/en/page-index.json +++ b/src/intl/en/page-index.json @@ -4,7 +4,7 @@ "page-index-activity-tag": "Activity", "page-index-activity-header": "The strongest ecosystem", "page-index-activity-action": "More ecosystem resources", - "page-index-activity-action-primary": "Ethereum for Institutions", + "page-index-activity-action-primary": "Ethereum for institutions", "page-index-bento-header": "A new way to use the internet", "page-index-bento-assets-action": "More on NFTs", "page-index-bento-assets-content": "From art to real estate to stocks, any asset can be tokenized on Ethereum to prove and verify ownership digitally. Buy, sell, trade, and create assets and collectibles—anytime, anywhere.", @@ -21,7 +21,7 @@ "page-index-bento-stablecoins-action": "Discover stablecoins", "page-index-bento-stablecoins-content": "Stablecoins are currencies that maintain a stable price, matched to steady assets like the U.S. dollar. Access global payments instantly or store value in digital dollars on Ethereum.", "page-index-bento-stablecoins-title": "Digital cash for everyday use", - "page-index-builders-action-primary": "Builder's Portal", + "page-index-builders-action-primary": "Builder's portal", "page-index-builders-action-secondary": "Documentation", "page-index-builders-description": "Ethereum is home to Web3's largest and most vibrant developer ecosystem. Use JavaScript and Python, or learn a smart contract language like Solidity or Vyper to write your own app.", "page-index-builders-tag": "Builders", @@ -73,7 +73,7 @@ "page-index-what-is-ether-title": "What is ETH?", "page-index-what-is-ether-description-1": "Ether (ETH) is the native cryptocurrency that powers the Ethereum network, used to pay transaction fees and secure the blockchain through staking.", "page-index-what-is-ether-description-2": "Beyond its technical role, ETH is open, programmable digital money. It is used for global payments, as collateral for loans, and as a store of value that doesn't rely on any central entity.", - "page-index-what-is-ether-action": "Learn more about Ether", + "page-index-what-is-ether-action": "Learn more about ether", "page-index-learn-tag": "Learn", "page-index-network-tag": "Network", "page-index-token-tag": "Token",