Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
03d3c41
setup ethereum-vs-bitcoin page
corwintines Sep 11, 2025
e9231ff
implement ethereum-vs-bitcoin
corwintines Sep 11, 2025
97b2153
setup nav and meta data
corwintines Sep 11, 2025
0cd9fb6
add link to /what-is-ethereum page
corwintines Sep 15, 2025
b19f8ee
Merge branch 'what-is-ethereum-network' into ethereum-vs-bitcoin
corwintines Sep 16, 2025
5947936
Merge branch 'what-is-ethereum-network' into ethereum-vs-bitcoin
corwintines Sep 18, 2025
3bfbaa3
Merge branch 'what-is-ethereum-network' into ethereum-vs-bitcoin
corwintines Sep 18, 2025
1bc456b
feat: integrate JSON-LD component and update Table of Contents varian…
corwintines Sep 18, 2025
8cfafca
Merge branch 'what-is-ethereum-network' into ethereum-vs-bitcoin
corwintines Sep 19, 2025
5e39095
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 19, 2025
eb9056f
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 19, 2025
1d04688
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 19, 2025
bcdb6c3
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 19, 2025
824971c
content edit
corwintines Sep 19, 2025
f4bc9fd
Merge branch 'dev' into ethereum-vs-bitcoin
wackerow Sep 22, 2025
84f9604
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 23, 2025
2e47851
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 23, 2025
aa68a8f
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 23, 2025
f9b346d
Update app/[locale]/ethereum-vs-bitcoin/page.tsx
corwintines Sep 23, 2025
6cbbc6a
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 23, 2025
cdc8b25
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 23, 2025
efdfdde
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 23, 2025
c470261
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 23, 2025
91df790
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 23, 2025
5a33ba0
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 23, 2025
df72f84
Update app/[locale]/ethereum-vs-bitcoin/page.tsx
corwintines Sep 23, 2025
07bf9c2
Update app/[locale]/ethereum-vs-bitcoin/page.tsx
corwintines Sep 23, 2025
1b2a932
Update src/intl/en/page-ethereum-vs-bitcoin.json
corwintines Sep 23, 2025
f4d0d98
wording
corwintines Sep 23, 2025
94e033c
Enhance DifferencesTable component with a new table variant for highl…
corwintines Sep 23, 2025
dc2859f
patch: add sizes prop, constrain to full width
wackerow Sep 23, 2025
0faeb25
refactor: use LinkWithArrow at end of section
wackerow Sep 23, 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
134 changes: 134 additions & 0 deletions app/[locale]/ethereum-vs-bitcoin/_components/DifferencesTable.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
import { useTranslations } from "next-intl"

import {
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table"

const DifferencesTable = () => {
const t = useTranslations("page-ethereum-vs-bitcoin")
return (
<Table variant="highlight-first-column">
<TableHeader>
<TableRow>
<TableHead>
{t("page-ethereum-vs-bitcoin-differences-table-area")}
</TableHead>
<TableHead>
{t("page-ethereum-vs-bitcoin-differences-table-bitcoin")}
</TableHead>
<TableHead>
{t("page-ethereum-vs-bitcoin-differences-table-ethereum")}
</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-1-1")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-1-2")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-1-3")}
</TableCell>
</TableRow>
<TableRow>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-2-1")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-2-2")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-2-3")}
</TableCell>
</TableRow>
<TableRow>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-3-1")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-3-2")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-3-3")}
</TableCell>
</TableRow>
<TableRow>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-4-1")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-4-2")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-4-3")}
</TableCell>
</TableRow>
<TableRow>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-5-1")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-5-2")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-5-3")}
</TableCell>
</TableRow>
<TableRow>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-6-1")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-6-2")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-6-3")}
</TableCell>
</TableRow>
<TableRow>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-7-1")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-7-2")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-7-3")}
</TableCell>
</TableRow>
<TableRow>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-8-1")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-8-2")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-8-3")}
</TableCell>
</TableRow>
<TableRow>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-9-1")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-9-2")}
</TableCell>
<TableCell>
{t("page-ethereum-vs-bitcoin-differences-table-row-9-3")}
</TableCell>
</TableRow>
</TableBody>
</Table>
)
}

export default DifferencesTable
128 changes: 128 additions & 0 deletions app/[locale]/ethereum-vs-bitcoin/page-jsonld.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
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 EthereumVsBitcoinPageJsonLD({
locale,
lastEditLocaleTimestamp,
contributors,
}: {
locale: Lang | undefined
lastEditLocaleTimestamp: string
contributors: FileContributor[]
}) {
const t = await getTranslations({
namespace: "page-ethereum-vs-bitcoin",
})

const url = normalizeUrlForJsonLd(locale, `/ethereum-vs-bitcoin/`)

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

// JSON-LD structured data for the Ethereum vs Bitcoin page
const webPageJsonLd = {
"@context": "https://schema.org",
"@type": "WebPage",
"@id": url,
name: t("page-ethereum-vs-bitcoin-meta-title"),
description: t("page-ethereum-vs-bitcoin-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-vs-bitcoin-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 comparison article content
const articleJsonLd = {
"@context": "https://schema.org",
"@type": "Article",
headline: t("page-ethereum-vs-bitcoin-title"),
description: t("page-ethereum-vs-bitcoin-meta-description"),
image:
"https://ethereum.org/images/ethereum-vs-bitcoin/bitcoin-vs-ethereum-robots.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": "Thing",
name: "Bitcoin",
description:
"A peer-to-peer digital currency system and the first decentralized cryptocurrency",
},
],
dateModified: lastEditLocaleTimestamp,
}

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