Remove external allied organizations from network map and footer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
a8f0bb479a
commit
6d8a2915de
|
|
@ -16,13 +16,6 @@ const LINKS = [
|
||||||
{ name: "Trippin Balls", url: "https://trippinballs.lol" },
|
{ name: "Trippin Balls", url: "https://trippinballs.lol" },
|
||||||
]
|
]
|
||||||
|
|
||||||
const ALLIES = [
|
|
||||||
{ name: "Giveth", url: "https://giveth.io" },
|
|
||||||
{ name: "Token Engineering Commons", url: "https://tecommons.org" },
|
|
||||||
{ name: "Enspiral", url: "https://enspiral.com" },
|
|
||||||
{ name: "Grassroots Economics", url: "https://grassrootseconomics.org" },
|
|
||||||
]
|
|
||||||
|
|
||||||
export function Footer() {
|
export function Footer() {
|
||||||
return (
|
return (
|
||||||
<footer className="relative z-10 py-20 px-6 border-t border-current/10">
|
<footer className="relative z-10 py-20 px-6 border-t border-current/10">
|
||||||
|
|
@ -42,24 +35,6 @@ export function Footer() {
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Allies */}
|
|
||||||
<div className="text-center space-y-2">
|
|
||||||
<p className="font-mono text-xs opacity-25">building alongside</p>
|
|
||||||
<div className="flex flex-wrap justify-center gap-x-6 gap-y-2">
|
|
||||||
{ALLIES.map((link) => (
|
|
||||||
<a
|
|
||||||
key={link.url}
|
|
||||||
href={link.url}
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
className="font-mono text-xs opacity-30 hover:opacity-60 transition-opacity"
|
|
||||||
>
|
|
||||||
{link.name}
|
|
||||||
</a>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Tagline */}
|
{/* Tagline */}
|
||||||
<div className="text-center space-y-3">
|
<div className="text-center space-y-3">
|
||||||
<p className="font-serif text-lg opacity-50">
|
<p className="font-serif text-lg opacity-50">
|
||||||
|
|
|
||||||
|
|
@ -115,40 +115,6 @@ const NODES: NetworkNode[] = [
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
// Building alongside — allied organizations
|
|
||||||
const ALLIES: NetworkNode[] = [
|
|
||||||
{
|
|
||||||
name: "Giveth",
|
|
||||||
domain: "giveth.io",
|
|
||||||
description: "Public goods funding for the commons",
|
|
||||||
x: 30,
|
|
||||||
y: 62,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Token Engineering",
|
|
||||||
domain: "tecommons.org",
|
|
||||||
description: "Token engineering for the commons",
|
|
||||||
x: 70,
|
|
||||||
y: 35,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Enspiral",
|
|
||||||
domain: "enspiral.com",
|
|
||||||
description: "Collaborative livelihood network",
|
|
||||||
x: 35,
|
|
||||||
y: 78,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Grassroots Economics",
|
|
||||||
domain: "grassrootseconomics.org",
|
|
||||||
description: "Community currencies in practice",
|
|
||||||
x: 85,
|
|
||||||
y: 85,
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
const ALL_NODES = [...NODES, ...ALLIES]
|
|
||||||
|
|
||||||
const CONNECTIONS: [string, string][] = [
|
const CONNECTIONS: [string, string][] = [
|
||||||
["mycostack.xyz", "commonsstack.org"],
|
["mycostack.xyz", "commonsstack.org"],
|
||||||
["mycostack.xyz", "wiki.p2pfoundation.net"],
|
["mycostack.xyz", "wiki.p2pfoundation.net"],
|
||||||
|
|
@ -163,30 +129,22 @@ const CONNECTIONS: [string, string][] = [
|
||||||
["commonsstack.org", "mycopunk.xyz"],
|
["commonsstack.org", "mycopunk.xyz"],
|
||||||
["commonsstack.org", "rfunds.online"],
|
["commonsstack.org", "rfunds.online"],
|
||||||
["commonsstack.org", "nofi.lol"],
|
["commonsstack.org", "nofi.lol"],
|
||||||
["commonsstack.org", "tecommons.org"],
|
|
||||||
["commonsstack.org", "giveth.io"],
|
|
||||||
["rfunds.online", "mycofi.earth"],
|
["rfunds.online", "mycofi.earth"],
|
||||||
["nofi.lol", "mycofi.earth"],
|
["nofi.lol", "mycofi.earth"],
|
||||||
["rstack.org", "yourspace.online"],
|
["rstack.org", "yourspace.online"],
|
||||||
["rstack.org", "undernet.earth"],
|
["rstack.org", "undernet.earth"],
|
||||||
["wiki.p2pfoundation.net", "post-appitalist.app"],
|
["wiki.p2pfoundation.net", "post-appitalist.app"],
|
||||||
["wiki.p2pfoundation.net", "enspiral.com"],
|
|
||||||
["mycofi.earth", "mycopunk.xyz"],
|
["mycofi.earth", "mycopunk.xyz"],
|
||||||
["mycofi.earth", "grassrootseconomics.org"],
|
|
||||||
["undernet.earth", "psilo-cyber.net"],
|
["undernet.earth", "psilo-cyber.net"],
|
||||||
["compostcapitalism.xyz", "post-appitalist.app"],
|
["compostcapitalism.xyz", "post-appitalist.app"],
|
||||||
["post-appitalist.app", "yourspace.online"],
|
["post-appitalist.app", "yourspace.online"],
|
||||||
["yourspace.online", "trippinballs.lol"],
|
["yourspace.online", "trippinballs.lol"],
|
||||||
["mycopunk.xyz", "psilo-cyber.net"],
|
["mycopunk.xyz", "psilo-cyber.net"],
|
||||||
["mycopunk.xyz", "undernet.earth"],
|
["mycopunk.xyz", "undernet.earth"],
|
||||||
["giveth.io", "rfunds.online"],
|
|
||||||
["tecommons.org", "mycofi.earth"],
|
|
||||||
["enspiral.com", "giveth.io"],
|
|
||||||
["grassrootseconomics.org", "yourspace.online"],
|
|
||||||
]
|
]
|
||||||
|
|
||||||
function getNode(domain: string) {
|
function getNode(domain: string) {
|
||||||
return ALL_NODES.find((n) => n.domain === domain)
|
return NODES.find((n) => n.domain === domain)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function NetworkMapSection() {
|
export function NetworkMapSection() {
|
||||||
|
|
@ -222,7 +180,7 @@ export function NetworkMapSection() {
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-lg sm:text-xl opacity-70 max-w-2xl mx-auto">
|
<p className="text-lg sm:text-xl opacity-70 max-w-2xl mx-auto">
|
||||||
Every node strengthens the whole. Every connection multiplies
|
Every node strengthens the whole. Every connection multiplies
|
||||||
possibility. Building alongside allies who share the vision.
|
possibility.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -256,7 +214,7 @@ export function NetworkMapSection() {
|
||||||
</svg>
|
</svg>
|
||||||
|
|
||||||
{/* Node cards */}
|
{/* Node cards */}
|
||||||
{ALL_NODES.map((node) => {
|
{NODES.map((node) => {
|
||||||
const isActive = hovered === node.domain
|
const isActive = hovered === node.domain
|
||||||
const connected = isConnected(node.domain)
|
const connected = isConnected(node.domain)
|
||||||
const dimmed = hovered && !isActive && !connected
|
const dimmed = hovered && !isActive && !connected
|
||||||
|
|
@ -303,7 +261,7 @@ export function NetworkMapSection() {
|
||||||
|
|
||||||
{/* Mobile: Simple card list */}
|
{/* Mobile: Simple card list */}
|
||||||
<div className="section-reveal md:hidden grid gap-3 grid-cols-1 sm:grid-cols-2">
|
<div className="section-reveal md:hidden grid gap-3 grid-cols-1 sm:grid-cols-2">
|
||||||
{ALL_NODES.map((node, i) => (
|
{NODES.map((node, i) => (
|
||||||
<a
|
<a
|
||||||
key={node.domain}
|
key={node.domain}
|
||||||
href={`https://${node.domain}`}
|
href={`https://${node.domain}`}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue