Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
4fcef94
initial setup of /ethereum-history-founder-and-ownership page
corwintines Sep 15, 2025
6d3ba52
Merge branch 'ethereum-vs-bitcoin' into ethereum-history-and-founder
corwintines Sep 16, 2025
eff1311
refactor: replace Card component with CommentCard for founder details…
corwintines Sep 16, 2025
079332f
refactor: update namespace and improve image handling in Ethereum net…
corwintines Sep 16, 2025
16f32b4
Merge branch 'ethereum-vs-bitcoin' into ethereum-history-and-founder
corwintines Sep 18, 2025
46a3ce5
Merge branch 'ethereum-vs-bitcoin' into ethereum-history-and-founder
corwintines Sep 19, 2025
2eebb1b
finish content implementation
corwintines Sep 22, 2025
a1d4328
/history -> /ethereum-forks
corwintines Sep 22, 2025
ee34eff
redirects and update /history -> /ethereum-forks for intl
corwintines Sep 22, 2025
5e27e56
Merge branch 'dev' into ethereum-history-and-founder
wackerow Sep 22, 2025
6b9df24
refactor: inline named export
wackerow Sep 22, 2025
4b34ba7
Merge branch 'ethereum-vs-bitcoin' into ethereum-history-and-founder
corwintines Sep 23, 2025
e6bad27
add vitalik and json-ld
corwintines Sep 23, 2025
643109c
copy
corwintines Sep 23, 2025
f525ebf
Merge branch 'ethereum-vs-bitcoin' into ethereum-history-and-founder
corwintines Sep 23, 2025
06ca4ca
Merge branch 'dev' into ethereum-history-and-founder
wackerow Sep 23, 2025
b28a71c
Merge branch 'dev' into ethereum-history-and-founder
corwintines Sep 26, 2025
fc82cec
Merge branch 'dev' into ethereum-history-and-founder
corwintines Oct 9, 2025
660a688
Update src/intl/en/page-ethereum-history-founder-and-ownership.json
corwintines Oct 9, 2025
91d5768
Update app/[locale]/ethereum-history-founder-and-ownership/page.tsx
corwintines Oct 9, 2025
44cde20
Update src/intl/en/page-ethereum-history-founder-and-ownership.json
corwintines Oct 9, 2025
5acbb79
Update src/intl/en/page-ethereum-history-founder-and-ownership.json
corwintines Oct 9, 2025
b0a5cd6
Update src/intl/en/page-ethereum-history-founder-and-ownership.json
corwintines Oct 9, 2025
3a9be6b
Update app/[locale]/ethereum-history-founder-and-ownership/page.tsx
corwintines Oct 9, 2025
aafb669
Update app/[locale]/ethereum-history-founder-and-ownership/page.tsx
corwintines Oct 9, 2025
26b6b68
Update src/intl/en/page-ethereum-history-founder-and-ownership.json
corwintines Oct 9, 2025
8d01086
change requests
corwintines Oct 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
141 changes: 141 additions & 0 deletions app/[locale]/ethereum-history-founder-and-ownership/page-jsonld.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
import { getTranslations } from "next-intl/server"

import { FileContributor, Lang } from "@/lib/types"

import PageJsonLD from "@/components/PageJsonLD"

import { normalizeUrlForJsonLd } from "@/lib/utils/url"

export default async function EthereumHistoryFounderAndOwnershipPageJsonLD({
locale,
lastEditLocaleTimestamp,
contributors,
}: {
locale: Lang | undefined
lastEditLocaleTimestamp: string
contributors: FileContributor[]
}) {
const t = await getTranslations({
namespace: "page-ethereum-history-founder-and-ownership",
})

const url = normalizeUrlForJsonLd(
locale,
`/ethereum-history-founder-and-ownership/`
)

const contributorList = contributors.map((contributor) => ({
"@type": "Person",
name: contributor.login,
url: contributor.html_url,
}))

// JSON-LD structured data for the Ethereum History, Founder and Ownership page
const webPageJsonLd = {
"@context": "https://schema.org",
"@type": "WebPage",
"@id": url,
name: t("page-ethereum-history-founder-and-ownership-meta-title"),
description: t(
"page-ethereum-history-founder-and-ownership-meta-description"
),
url: url,
inLanguage: locale,
contributor: contributorList,
author: [
{
"@type": "Organization",
name: "ethereum.org",
url: "https://ethereum.org",
},
],
breadcrumb: {
"@type": "BreadcrumbList",
itemListElement: [
{
"@type": "ListItem",
position: 1,
name: "Home",
item: normalizeUrlForJsonLd(locale, "/"),
},
{
"@type": "ListItem",
position: 2,
name: t("page-ethereum-history-founder-and-ownership-title"),
item: url,
},
],
},
publisher: {
"@type": "Organization",
name: "ethereum.org",
url: "https://ethereum.org",
},
reviewedBy: {
"@type": "Organization",
name: "ethereum.org",
url: "https://ethereum.org",
logo: {
"@type": "ImageObject",
url: "https://ethereum.org/images/eth-home-icon.png",
},
},
}

// JSON-LD for the history and founder article content
const articleJsonLd = {
"@context": "https://schema.org",
"@type": "Article",
headline: t("page-ethereum-history-founder-and-ownership-title"),
description: t(
"page-ethereum-history-founder-and-ownership-meta-description"
),
image:
"https://ethereum.org/images/ethereum-history-founder-and-ownership/ethereum-history-founder-and-ownership-hero.png",
author: [
{
"@type": "Organization",
name: "ethereum.org",
url: "https://ethereum.org",
},
],
publisher: {
"@type": "Organization",
name: "ethereum.org",
url: "https://ethereum.org",
},
contributor: contributorList,
reviewedBy: {
"@type": "Organization",
name: "ethereum.org",
url: "https://ethereum.org",
logo: {
"@type": "ImageObject",
url: "https://ethereum.org/images/eth-home-icon.png",
},
},
about: [
{
"@type": "Thing",
name: "Ethereum",
description:
"A decentralized platform for applications and digital economies powered by smart contracts",
},
{
"@type": "Person",
name: "Vitalik Buterin",
description:
"The founder of Ethereum who conceived the idea in late 2013 and published the Ethereum whitepaper in 2014",
},
{
"@type": "Thing",
name: "Blockchain History",
description:
"The historical development and launch of the Ethereum blockchain network",
},
],
dateModified: lastEditLocaleTimestamp,
}

return <PageJsonLD structuredData={[webPageJsonLd, articleJsonLd]} />
}
Loading