From ad24b32b3ba85bc553fa8a20704440b9640006cb Mon Sep 17 00:00:00 2001 From: Nuno Loureiro Date: Wed, 13 May 2026 08:27:32 +0000 Subject: [PATCH] fix(qa): filter past hackathons and add site name to page titles - app/[locale]/developers/utils.tsx: getHackathons() now applies a runtime date guard (endTime/startTime >= now) so stale cached data never surfaces already-finished events in the hackathon section. - src/intl/en/page-developers-index.json: add '| ethereum.org' suffix to meta title for /developers/ - src/intl/en/page-get-eth.json: add '| ethereum.org' suffix to meta title for /get-eth/ - src/intl/en/page-layer-2.json: add '| ethereum.org' suffix to meta title for /layer-2/ Identified via weekly QA automated review (2026-05-11). --- app/[locale]/developers/utils.tsx | 11 ++++++++--- src/intl/en/page-developers-index.json | 2 +- src/intl/en/page-get-eth.json | 2 +- src/intl/en/page-layer-2.json | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/[locale]/developers/utils.tsx b/app/[locale]/developers/utils.tsx index 184336b9be0..76bd5f8f2f6 100644 --- a/app/[locale]/developers/utils.tsx +++ b/app/[locale]/developers/utils.tsx @@ -103,9 +103,14 @@ export const getVideoCourses = async (): Promise => { export const getHackathons = async (): Promise => { const events = await getEventsData() if (!events) return [] - return events.filter( - (e) => + const now = new Date() + return events.filter((e) => { + const isHackathon = e.eventTypes?.includes("hackathon") || e.tags?.some((tag) => tag.toLowerCase() === "hackathon") - ) + if (!isHackathon) return false + // Guard against stale cached data showing past events + const cutoff = e.endTime ? new Date(e.endTime) : new Date(e.startTime) + return cutoff >= now + }) } diff --git a/src/intl/en/page-developers-index.json b/src/intl/en/page-developers-index.json index e55eee9b630..c8582adfbc1 100644 --- a/src/intl/en/page-developers-index.json +++ b/src/intl/en/page-developers-index.json @@ -1,5 +1,5 @@ { - "page-developer-meta-title": "Ethereum Developer Resources", + "page-developer-meta-title": "Ethereum Developer Resources | ethereum.org", "page-developers-account-desc": "Contracts or people on the network", "page-developers-accounts-link": "Accounts", "page-developers-api-desc": "Using libraries to interact with smart contracts", diff --git a/src/intl/en/page-get-eth.json b/src/intl/en/page-get-eth.json index 41c3c67c7ba..6dc67ac4141 100644 --- a/src/intl/en/page-get-eth.json +++ b/src/intl/en/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "Get ETH hero image", "page-get-eth-keep-it-safe": "Keeping your ETH safe", "page-get-eth-meta-description": "Ways to get ETH: buy on an exchange, swap on a DEX, earn from DAOs, receive from peers, or earn staking rewards. Find the best option based on where you live.", - "page-get-eth-meta-title": "How to get Ethereum (ETH)", + "page-get-eth-meta-title": "How to get Ethereum (ETH) | ethereum.org", "page-get-eth-need-wallet": "You will need a wallet to use a DEX.", "page-get-eth-new-to-eth": "New to ETH? Here's an overview to get you started.", "page-get-eth-other-cryptos": "Buy with other crypto", diff --git a/src/intl/en/page-layer-2.json b/src/intl/en/page-layer-2.json index 7c522ffb7b4..fe48bafb4f5 100644 --- a/src/intl/en/page-layer-2.json +++ b/src/intl/en/page-layer-2.json @@ -10,7 +10,7 @@ "page-layer-2-calloutCard-2-description": "Whether you are making a quick payment or engaging in decentralized finance (DeFi), all transactions take only a few seconds.", "page-layer-2-calloutCard-3-title": "Backed by Ethereum", "page-layer-2-calloutCard-3-description": "Ethereum's time-proven and decentralized blockchain functions as the settlement layer for other newer networks.", - "page-layer-2-meta-title": "Intro to Ethereum Layer 2: benefits and uses", + "page-layer-2-meta-title": "Intro to Ethereum Layer 2: benefits and uses | ethereum.org", "page-layer-2-meta-description": "Learn about Ethereum layer 2 networks: what they are, how they help improve the Ethereum experience, and where to get started exploring", "page-layer-2-powered-by-ethereum-title": "Powered by Ethereum", "page-layer-2-powered-by-ethereum-description-1": "Ethereum is no longer just a single network.",