Skip to content

Commit b7ec7ed

Browse files
committed
Add links
1 parent e6a317a commit b7ec7ed

File tree

7 files changed

+188
-29
lines changed

7 files changed

+188
-29
lines changed

packages/nextjs/components/2025/TaskList.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import { ReactNode } from "react";
2+
13
interface TaskListProps {
2-
tasks: string[];
4+
tasks: ReactNode[];
35
}
46

57
export const TaskList = ({ tasks }: TaskListProps) => (

packages/nextjs/components/2025/TerminalWindow.tsx

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ interface Tab {
55
id: string;
66
title: string;
77
content: ReactNode;
8+
linkUrl?: string;
9+
linkLabel?: string;
810
}
911

1012
interface TerminalWindowProps {
@@ -59,11 +61,20 @@ const DesktopTerminal = ({
5961
{activeContent && (
6062
<div>
6163
<div className="flex items-center gap-3 mb-4">
62-
<div className="flex items-center gap-2 text-primary text-sm">
63-
<span>$</span>
64-
<span className="text-neutral-content/70">cat</span>
65-
<span className="text-secondary">{activeContent.title.toLowerCase().replace(/\s+/g, "-")}.md</span>
64+
<div className="flex items-center gap-2 text-sm">
65+
<span className="text-primary">$</span>
66+
<span className="text-primary">cat {activeContent.title.toLowerCase().replace(/\s+/g, "-")}.md</span>
6667
</div>
68+
{activeContent.linkUrl && (
69+
<a
70+
href={activeContent.linkUrl}
71+
target="_blank"
72+
rel="noopener noreferrer"
73+
className="text-primary-content hover:text-primary text-sm"
74+
>
75+
{activeContent.linkLabel || "Link"}
76+
</a>
77+
)}
6778
</div>
6879
{activeContent.content}
6980
</div>
@@ -120,10 +131,19 @@ const MobileTerminal = ({
120131
}`}
121132
>
122133
<div className="px-4 pb-4">
123-
<div className="flex items-center gap-2 text-primary text-xs mb-3">
124-
<span>$</span>
125-
<span className="text-neutral-content/70">cat</span>
126-
<span className="text-secondary">{tab.title.toLowerCase().replace(/\s+/g, "-")}.md</span>
134+
<div className="flex items-center gap-2 text-xs mb-3">
135+
<span className="text-primary">$</span>
136+
<span className="text-primary">cat {tab.title.toLowerCase().replace(/\s+/g, "-")}.md</span>
137+
{tab.linkUrl && (
138+
<a
139+
href={tab.linkUrl}
140+
target="_blank"
141+
rel="noopener noreferrer"
142+
className="text-primary-content hover:text-primary"
143+
>
144+
{tab.linkLabel || "Link"}
145+
</a>
146+
)}
127147
</div>
128148
{tab.content}
129149
</div>

packages/nextjs/components/2025/slides/EcosystemSlide.tsx

Lines changed: 52 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,18 +58,61 @@ const JOBBOARD_CONTENT = (
5858
);
5959

6060
const ETHEREUMORG_CONTENT = (
61-
<TaskList
62-
tasks={[
63-
"Built the Collectibles site for contributors",
64-
"Speedrun Ethereum and Scaffold-ETH are featured as main themes on ethereum.org/developers/",
65-
]}
66-
/>
61+
<div className="space-y-3">
62+
<div className="flex items-start gap-3">
63+
<span className="text-primary text-xs"></span>
64+
<span className="text-neutral-content/70 text-sm">
65+
Built the{" "}
66+
<a
67+
href="https://ethereum.org/collectibles/"
68+
target="_blank"
69+
rel="noopener noreferrer"
70+
className="text-secondary hover:text-primary underline"
71+
>
72+
Collectibles
73+
</a>{" "}
74+
site for contributors
75+
</span>
76+
</div>
77+
<div className="flex items-start gap-3">
78+
<span className="text-primary text-xs"></span>
79+
<span className="text-neutral-content/70 text-sm">
80+
Speedrun Ethereum and Scaffold-ETH are featured as main themes on{" "}
81+
<a
82+
href="https://ethereum.org/developers/"
83+
target="_blank"
84+
rel="noopener noreferrer"
85+
className="text-secondary hover:text-primary underline"
86+
>
87+
ethereum.org/developers/
88+
</a>
89+
</span>
90+
</div>
91+
</div>
6792
);
6893

6994
const TABS = [
70-
{ id: "ens", title: "ENS Grants", content: ENS_CONTENT },
71-
{ id: "arbitrum", title: "Arbitrum", content: ARBITRUM_CONTENT },
72-
{ id: "jobboard", title: "Job Board", content: JOBBOARD_CONTENT },
95+
{
96+
id: "ens",
97+
title: "ENS Grants",
98+
content: ENS_CONTENT,
99+
linkUrl: "https://builder.ensgrants.xyz/",
100+
linkLabel: "Website",
101+
},
102+
{
103+
id: "arbitrum",
104+
title: "Arbitrum",
105+
content: ARBITRUM_CONTENT,
106+
linkUrl: "https://arbitrum.buidlguidl.com/",
107+
linkLabel: "Website",
108+
},
109+
{
110+
id: "jobboard",
111+
title: "Job Board",
112+
content: JOBBOARD_CONTENT,
113+
linkUrl: "https://www.ethereumjobboard.com/",
114+
linkLabel: "Website",
115+
},
73116
{ id: "ethereumorg", title: "Ethereum.org", content: ETHEREUMORG_CONTENT },
74117
];
75118

packages/nextjs/components/2025/slides/EducationalSlide.tsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,18 @@ const CTF_CONTENT = (
2929
<div className="grid gap-3">
3030
<div className="flex items-start gap-3 text-neutral-content/70">
3131
<span className="text-primary text-xs mt-0.5 font-mono w-10">Jan</span>
32-
<span className="text-sm">Opened Devcon CTF as a live platform for anyone to play at any moment</span>
32+
<span className="text-sm">
33+
Opened Devcon CTF as a{" "}
34+
<a
35+
href="https://ctf.buidlguidl.com/"
36+
target="_blank"
37+
rel="noopener noreferrer"
38+
className="text-primary-content hover:text-primary underline"
39+
>
40+
live platform
41+
</a>{" "}
42+
for anyone to play at any moment
43+
</span>
3344
</div>
3445
<div className="flex items-start gap-3 text-neutral-content/70">
3546
<span className="text-primary text-xs mt-0.5 font-mono w-10">Nov</span>
@@ -105,7 +116,13 @@ const WORKSHOPS_CONTENT = (
105116
);
106117

107118
const TABS = [
108-
{ id: "ctf", title: "Capture The Flag", content: CTF_CONTENT },
119+
{
120+
id: "ctf",
121+
title: "Capture The Flag",
122+
content: CTF_CONTENT,
123+
linkUrl: "https://github.com/BuidlGuidl/ctf.buidlguidl.com",
124+
linkLabel: "Github",
125+
},
109126
{ id: "workshops", title: "Workshops", content: WORKSHOPS_CONTENT },
110127
];
111128

packages/nextjs/components/2025/slides/MiscSlide.tsx

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,47 @@ const FARCASTER_CONTENT = (
2828

2929
<p className="text-xs text-neutral-content/40 uppercase tracking-widest mb-3">Launched Miniapps</p>
3030
<div className="grid gap-3 mb-6">
31-
<div className="flex items-start gap-3 text-neutral-content/70">
31+
<div className="flex items-center gap-3 text-neutral-content/70">
3232
<span className="text-secondary text-xs"></span>
33-
<span className="text-sm">
33+
<span className="text-sm flex-1">
3434
<span className="text-primary-content">Advent Calendar</span> — Holiday-themed miniapp game
3535
</span>
36+
<a
37+
href="https://farcaster.xyz/miniapps/mhdgdBnT4lR0/adventsfun-calendar"
38+
target="_blank"
39+
rel="noopener noreferrer"
40+
className="text-primary-content hover:text-primary text-xs whitespace-nowrap"
41+
>
42+
→ Open Miniapp
43+
</a>
3644
</div>
37-
<div className="flex items-start gap-3 text-neutral-content/70">
45+
<div className="flex items-center gap-3 text-neutral-content/70">
3846
<span className="text-secondary text-xs"></span>
39-
<span className="text-sm">
47+
<span className="text-sm flex-1">
4048
<span className="text-primary-content">Snowman / Not Snowman</span> — Spinoff farcaster game
4149
</span>
50+
<a
51+
href="https://farcaster.xyz/miniapps/q-h3sLIksfzg/snowman--not-snowman"
52+
target="_blank"
53+
rel="noopener noreferrer"
54+
className="text-primary-content hover:text-primary text-xs whitespace-nowrap"
55+
>
56+
→ Open Miniapp
57+
</a>
4258
</div>
43-
<div className="flex items-start gap-3 text-neutral-content/70">
59+
<div className="flex items-center gap-3 text-neutral-content/70">
4460
<span className="text-secondary text-xs"></span>
45-
<span className="text-sm">
61+
<span className="text-sm flex-1">
4662
<span className="text-primary-content">Bubble Tap</span> — Interactive tap game
4763
</span>
64+
<a
65+
href="https://farcaster.xyz/miniapps/LTGZffIuAcG7/bubble-tap-game"
66+
target="_blank"
67+
rel="noopener noreferrer"
68+
className="text-primary-content hover:text-primary text-xs whitespace-nowrap"
69+
>
70+
→ Open Miniapp
71+
</a>
4872
</div>
4973
</div>
5074
</>
@@ -97,7 +121,13 @@ const IDEATION_CONTENT = (
97121
);
98122

99123
const TABS = [
100-
{ id: "abi-ninja", title: "Abi Ninja", content: ABI_NINJA_CONTENT },
124+
{
125+
id: "abi-ninja",
126+
title: "Abi Ninja",
127+
content: ABI_NINJA_CONTENT,
128+
linkUrl: "https://abi.ninja/",
129+
linkLabel: "Website",
130+
},
101131
{ id: "farcaster", title: "Farcaster Miniapps", content: FARCASTER_CONTENT },
102132
{ id: "ideation", title: "2026 Ideation", content: IDEATION_CONTENT },
103133
];

packages/nextjs/components/2025/slides/ScaffoldEthSlide.tsx

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const SUBGROUPS = [
77
{
88
id: "toolkit",
99
title: "Toolkit",
10+
githubUrl: "https://github.com/scaffold-eth/scaffold-eth-2",
1011
tasks: [
1112
"Allowing SE-2 to deploy to IPFS",
1213
"SE-2 added in Mastering Ethereum v2 book",
@@ -21,6 +22,7 @@ const SUBGROUPS = [
2122
{
2223
id: "create-eth",
2324
title: "create-eth CLI",
25+
githubUrl: "https://github.com/scaffold-eth/create-eth",
2426
tasks: [
2527
"Better documentation for extension creators with an args file example",
2628
"Normalize all the template args + allow more extensible system for extension developers",
@@ -32,15 +34,38 @@ const SUBGROUPS = [
3234
{
3335
id: "website",
3436
title: "Website",
37+
githubUrl: "https://github.com/scaffold-eth/scaffoldeth.io",
3538
tasks: [
3639
"Built Scaffold-ETH 2 usage tracker and sent over 5000 repos using SE-2 to electric-capital/open-dev-data (Nov + Dec)",
37-
"Shipped projects.scaffoldeth.io with SE-2 usage stats (Dec), with stats and direct link from SE-2 homepage",
38-
'"Build an app on Ethereum in 8 minutes" video added to the website',
40+
<>
41+
Shipped{" "}
42+
<a
43+
href="https://projects.scaffoldeth.io/"
44+
target="_blank"
45+
rel="noopener noreferrer"
46+
className="text-primary-content hover:text-primary underline"
47+
>
48+
projects.scaffoldeth.io
49+
</a>{" "}
50+
with SE-2 usage stats (Dec), with stats and direct link from SE-2 homepage
51+
</>,
52+
<>
53+
"Build an app on Ethereum in 8 minutes" video added to the{" "}
54+
<a
55+
href="https://scaffoldeth.io/"
56+
target="_blank"
57+
rel="noopener noreferrer"
58+
className="text-primary-content hover:text-primary underline"
59+
>
60+
website
61+
</a>
62+
</>,
3963
],
4064
},
4165
{
4266
id: "scaffold-ui",
4367
title: "Scaffold-UI",
68+
githubUrl: "https://github.com/scaffold-eth/scaffold-ui",
4469
tasks: [
4570
"Shipped this standalone package of reusable hooks and UI components extracted from Scaffold-ETH",
4671
"Monorepo setup with docs + example setup + packages setup",
@@ -50,6 +75,8 @@ const SUBGROUPS = [
5075
{
5176
id: "burner-connector",
5277
title: "Burner Connector",
78+
linkUrl: "https://www.npmjs.com/package/burner-connector",
79+
linkLabel: "NPM package",
5380
tasks: ["Maintenance", "Add compatibility with EIP-5792"],
5481
},
5582
];
@@ -59,6 +86,8 @@ export const ScaffoldEthSlide = () => {
5986
id: group.id,
6087
title: group.title,
6188
content: <TaskList tasks={group.tasks} />,
89+
linkUrl: group.linkUrl || group.githubUrl,
90+
linkLabel: group.linkLabel || "Github",
6291
}));
6392

6493
return (

packages/nextjs/components/2025/slides/SpeedrunSlide.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,24 @@ export const SpeedrunSlide = () => (
4242
<div className="border-l border-neutral-content/20 pl-6">
4343
<p className="text-xs text-neutral-content/40 uppercase tracking-widest mb-4">Tasks & Achievements</p>
4444
<TaskList tasks={TASKS} />
45+
<div className="flex items-center gap-4 mt-6 pt-4 border-t border-neutral-content/10">
46+
<a
47+
href="https://speedrunethereum.com/"
48+
target="_blank"
49+
rel="noopener noreferrer"
50+
className="text-primary-content hover:text-primary text-sm flex items-center gap-1"
51+
>
52+
→ Website
53+
</a>
54+
<a
55+
href="https://github.com/BuidlGuidl/SpeedRunEthereum-v2"
56+
target="_blank"
57+
rel="noopener noreferrer"
58+
className="text-primary-content hover:text-primary text-sm flex items-center gap-1"
59+
>
60+
→ Github
61+
</a>
62+
</div>
4563
</div>
4664
</div>
4765
</div>

0 commit comments

Comments
 (0)