Improve text readability, add cosmo-localism and sister ecosystems
- Bump foreground lightness in scroll-provider from 0.86-0.88 to 0.92-0.93 - Match CSS default --scroll-fg to oklch(0.93 0.02 130) - Increase opacity on body text, subtitles, quotes across all sections - Rewrite NoFi section as shorter "Sister Ecosystems" with NoFi, MycoFi, Defect.fi - Add cosmo-localism glass card to P2P Foundation section - Add convivial tooling emphasis throughout legacy section - Add Defect.fi to network map and footer links - Fix extra closing div syntax error in legacy section Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
c844d86527
commit
4f8727fd52
|
|
@ -6,7 +6,7 @@
|
||||||
:root {
|
:root {
|
||||||
/* Scroll-driven dynamic colors (set by JS) */
|
/* Scroll-driven dynamic colors (set by JS) */
|
||||||
--scroll-bg: oklch(0.20 0.03 140);
|
--scroll-bg: oklch(0.20 0.03 140);
|
||||||
--scroll-fg: oklch(0.88 0.03 130);
|
--scroll-fg: oklch(0.93 0.02 130);
|
||||||
--scroll-accent: oklch(0.58 0.12 145);
|
--scroll-accent: oklch(0.58 0.12 145);
|
||||||
--scroll-depth: 0;
|
--scroll-depth: 0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ export function CompostSection() {
|
||||||
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
||||||
The Compost Layer
|
The Compost Layer
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-lg sm:text-xl opacity-70 max-w-2xl mx-auto">
|
<p className="text-lg sm:text-xl opacity-85 max-w-2xl mx-auto">
|
||||||
Decomposing extractive systems into nutrients for regeneration
|
Decomposing extractive systems into nutrients for regeneration
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -48,12 +48,12 @@ export function CompostSection() {
|
||||||
<h3 className="font-serif text-xl font-semibold">
|
<h3 className="font-serif text-xl font-semibold">
|
||||||
{card.title}
|
{card.title}
|
||||||
</h3>
|
</h3>
|
||||||
<p className="text-sm leading-relaxed opacity-75">{card.body}</p>
|
<p className="text-sm leading-relaxed opacity-85">{card.body}</p>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p className="section-reveal text-center text-base opacity-60 max-w-xl mx-auto">
|
<p className="section-reveal text-center text-base opacity-75 max-w-xl mx-auto">
|
||||||
This is{" "}
|
This is{" "}
|
||||||
<a
|
<a
|
||||||
href="https://compostcapitalism.xyz"
|
href="https://compostcapitalism.xyz"
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ export function EmergenceSection() {
|
||||||
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
||||||
Emergence
|
Emergence
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-lg sm:text-xl opacity-70 max-w-2xl mx-auto">
|
<p className="text-lg sm:text-xl opacity-85 max-w-2xl mx-auto">
|
||||||
What grows underground eventually breaks the surface.
|
What grows underground eventually breaks the surface.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -57,13 +57,13 @@ export function EmergenceSection() {
|
||||||
<h3 className="font-serif text-xl font-semibold">
|
<h3 className="font-serif text-xl font-semibold">
|
||||||
{card.title}
|
{card.title}
|
||||||
</h3>
|
</h3>
|
||||||
<p className="text-sm leading-relaxed opacity-75">{card.body}</p>
|
<p className="text-sm leading-relaxed opacity-85">{card.body}</p>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="section-reveal text-center space-y-4 max-w-xl mx-auto">
|
<div className="section-reveal text-center space-y-4 max-w-xl mx-auto">
|
||||||
<p className="text-base opacity-60">
|
<p className="text-base opacity-75">
|
||||||
Building the{" "}
|
Building the{" "}
|
||||||
<a
|
<a
|
||||||
href="https://post-appitalist.app"
|
href="https://post-appitalist.app"
|
||||||
|
|
@ -76,7 +76,7 @@ export function EmergenceSection() {
|
||||||
lication layer for a regenerative economy. Tools that serve
|
lication layer for a regenerative economy. Tools that serve
|
||||||
communities, not shareholders.
|
communities, not shareholders.
|
||||||
</p>
|
</p>
|
||||||
<p className="text-sm opacity-40">
|
<p className="text-sm opacity-55">
|
||||||
Sometimes the best way to see the future is to change your
|
Sometimes the best way to see the future is to change your
|
||||||
perspective. Stop{" "}
|
perspective. Stop{" "}
|
||||||
<a
|
<a
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ const LINKS = [
|
||||||
{ name: "P2P Foundation", url: "https://wiki.p2pfoundation.net/" },
|
{ name: "P2P Foundation", url: "https://wiki.p2pfoundation.net/" },
|
||||||
{ name: "MycoFi", url: "https://mycofi.earth" },
|
{ name: "MycoFi", url: "https://mycofi.earth" },
|
||||||
{ name: "NoFi", url: "https://nofi.lol" },
|
{ name: "NoFi", url: "https://nofi.lol" },
|
||||||
|
{ name: "Defect.fi", url: "https://defect.fi" },
|
||||||
{ name: "Mycopunk", url: "https://mycopunk.xyz" },
|
{ name: "Mycopunk", url: "https://mycopunk.xyz" },
|
||||||
{ name: "rFunds", url: "https://rfunds.online" },
|
{ name: "rFunds", url: "https://rfunds.online" },
|
||||||
{ name: "rStack", url: "https://rstack.org" },
|
{ name: "rStack", url: "https://rstack.org" },
|
||||||
|
|
@ -37,10 +38,10 @@ export function Footer() {
|
||||||
|
|
||||||
{/* 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-65">
|
||||||
Built with compost and code.
|
Built with compost and code.
|
||||||
</p>
|
</p>
|
||||||
<p className="font-mono text-xs opacity-30">
|
<p className="font-mono text-xs opacity-45">
|
||||||
MycoStack — technology-augmented commons growing from beneath
|
MycoStack — technology-augmented commons growing from beneath
|
||||||
</p>
|
</p>
|
||||||
<p className="font-mono text-xs opacity-20">
|
<p className="font-mono text-xs opacity-20">
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ export function GoodsMatrixSection() {
|
||||||
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
||||||
Beyond Ostrom’s Matrix
|
Beyond Ostrom’s Matrix
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-lg sm:text-xl opacity-70 max-w-2xl mx-auto">
|
<p className="text-lg sm:text-xl opacity-85 max-w-2xl mx-auto">
|
||||||
Elinor Ostrom mapped the commons as a 2×2 grid. But the
|
Elinor Ostrom mapped the commons as a 2×2 grid. But the
|
||||||
network age reveals a third column — goods that grow{" "}
|
network age reveals a third column — goods that grow{" "}
|
||||||
<em>more</em> valuable the more people use them.
|
<em>more</em> valuable the more people use them.
|
||||||
|
|
@ -189,7 +189,7 @@ export function GoodsMatrixSection() {
|
||||||
className="section-reveal max-w-3xl mx-auto space-y-6"
|
className="section-reveal max-w-3xl mx-auto space-y-6"
|
||||||
style={{ transitionDelay: "0.2s" }}
|
style={{ transitionDelay: "0.2s" }}
|
||||||
>
|
>
|
||||||
<div className="space-y-4 text-base leading-relaxed opacity-80">
|
<div className="space-y-4 text-base leading-relaxed opacity-90">
|
||||||
<p>
|
<p>
|
||||||
Traditional economics fixates on the left two columns: private
|
Traditional economics fixates on the left two columns: private
|
||||||
goods to buy, public goods to fund, common-pool resources to
|
goods to buy, public goods to fund, common-pool resources to
|
||||||
|
|
@ -229,7 +229,7 @@ export function GoodsMatrixSection() {
|
||||||
className="section-reveal max-w-2xl mx-auto text-center"
|
className="section-reveal max-w-2xl mx-auto text-center"
|
||||||
style={{ transitionDelay: "0.25s" }}
|
style={{ transitionDelay: "0.25s" }}
|
||||||
>
|
>
|
||||||
<p className="font-serif text-xl sm:text-2xl italic leading-relaxed opacity-70">
|
<p className="font-serif text-xl sm:text-2xl italic leading-relaxed opacity-80">
|
||||||
“The forest floor is a symbiotic good. Every organism that
|
“The forest floor is a symbiotic good. Every organism that
|
||||||
joins makes the soil richer for all.”
|
joins makes the soil richer for all.”
|
||||||
</p>
|
</p>
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ export function HeroSection() {
|
||||||
className="emerge-letter space-y-3"
|
className="emerge-letter space-y-3"
|
||||||
style={{ animationDelay: "1.2s" }}
|
style={{ animationDelay: "1.2s" }}
|
||||||
>
|
>
|
||||||
<p className="text-base sm:text-lg md:text-xl font-serif font-light tracking-wide opacity-60">
|
<p className="text-base sm:text-lg md:text-xl font-serif font-light tracking-wide opacity-75">
|
||||||
Rebooting the legacy of the Commons Stack.
|
Rebooting the legacy of the Commons Stack.
|
||||||
<br />
|
<br />
|
||||||
Preserving the legacy of the P2P Foundation.
|
Preserving the legacy of the P2P Foundation.
|
||||||
|
|
@ -100,7 +100,7 @@ export function HeroSection() {
|
||||||
|
|
||||||
{/* Cycling terminal tagline */}
|
{/* Cycling terminal tagline */}
|
||||||
<div
|
<div
|
||||||
className="emerge-letter font-mono text-sm sm:text-base opacity-60 h-6"
|
className="emerge-letter font-mono text-sm sm:text-base opacity-70 h-6"
|
||||||
style={{ animationDelay: "2s" }}
|
style={{ animationDelay: "2s" }}
|
||||||
>
|
>
|
||||||
<span className="opacity-50">></span>{" "}
|
<span className="opacity-50">></span>{" "}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ export function LegacySection() {
|
||||||
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
||||||
The Roots
|
The Roots
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-lg sm:text-xl opacity-70 max-w-2xl mx-auto">
|
<p className="text-lg sm:text-xl opacity-85 max-w-2xl mx-auto">
|
||||||
The MycoStack grows from the Commons Stack — its primary root
|
The MycoStack grows from the Commons Stack — its primary root
|
||||||
system — nourished by the knowledge commons of the P2P
|
system — nourished by the knowledge commons of the P2P
|
||||||
Foundation and the broader commons movement.
|
Foundation and the broader commons movement.
|
||||||
|
|
@ -27,7 +27,7 @@ export function LegacySection() {
|
||||||
<h3 className="font-serif text-2xl sm:text-3xl font-semibold">
|
<h3 className="font-serif text-2xl sm:text-3xl font-semibold">
|
||||||
The Commons Stack
|
The Commons Stack
|
||||||
</h3>
|
</h3>
|
||||||
<div className="space-y-4 text-base leading-relaxed opacity-80">
|
<div className="space-y-4 text-base leading-relaxed opacity-90">
|
||||||
<p>
|
<p>
|
||||||
The{" "}
|
The{" "}
|
||||||
<a
|
<a
|
||||||
|
|
@ -102,7 +102,7 @@ export function LegacySection() {
|
||||||
<h3 className="font-serif text-2xl sm:text-3xl font-semibold">
|
<h3 className="font-serif text-2xl sm:text-3xl font-semibold">
|
||||||
The P2P Foundation
|
The P2P Foundation
|
||||||
</h3>
|
</h3>
|
||||||
<div className="space-y-4 text-base leading-relaxed opacity-80">
|
<div className="space-y-4 text-base leading-relaxed opacity-90">
|
||||||
<p>
|
<p>
|
||||||
The{" "}
|
The{" "}
|
||||||
<a
|
<a
|
||||||
|
|
@ -124,14 +124,15 @@ export function LegacySection() {
|
||||||
Out of this work came key frameworks:{" "}
|
Out of this work came key frameworks:{" "}
|
||||||
<strong>commons-based peer production</strong>, the{" "}
|
<strong>commons-based peer production</strong>, the{" "}
|
||||||
<strong>partner state</strong>, and{" "}
|
<strong>partner state</strong>, and{" "}
|
||||||
<strong>cosmo-localism</strong> (“design global, manufacture
|
<strong>cosmo-localism</strong>. But the P2P Foundation
|
||||||
local”). But the P2P Foundation doesn’t just preserve
|
doesn’t just preserve knowledge — it transforms it.
|
||||||
knowledge — it transforms it. Each iteration of commons
|
Each iteration of commons practice feeds back into the knowledge
|
||||||
practice feeds back into the knowledge base, refining theories
|
base, refining theories into{" "}
|
||||||
into{" "}
|
<strong>convivial knowledge packets</strong> and{" "}
|
||||||
<strong>convivial knowledge packets</strong>: living documents
|
<strong>convivial tools</strong> — technology in the
|
||||||
that distill decades of research and practice into actionable
|
tradition of Ivan Illich, designed to expand human capability
|
||||||
frameworks communities can actually use.
|
without creating dependency. Tools that communities master,
|
||||||
|
rather than tools that master communities.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
These knowledge packets become the seeds of{" "}
|
These knowledge packets become the seeds of{" "}
|
||||||
|
|
@ -142,6 +143,44 @@ export function LegacySection() {
|
||||||
ground, pushing spores into the future.
|
ground, pushing spores into the future.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{/* Cosmo-localism */}
|
||||||
|
<div className="glass-card p-6 sm:p-8 space-y-4">
|
||||||
|
<h4 className="font-serif text-lg font-semibold opacity-70">
|
||||||
|
Cosmo-localism
|
||||||
|
</h4>
|
||||||
|
<p className="text-sm leading-relaxed opacity-80">
|
||||||
|
<strong>“Design global, manufacture local.”</strong>{" "}
|
||||||
|
Knowledge is a non-rival good — sharing it doesn’t
|
||||||
|
diminish it. Hardware is local and contextual. Cosmo-localism
|
||||||
|
means open source designs flow freely across the global commons,
|
||||||
|
while production happens close to where things are needed, using
|
||||||
|
local materials, local labor, local governance. The global brain
|
||||||
|
thinks together; the local hands build together.
|
||||||
|
</p>
|
||||||
|
<div className="grid gap-3 sm:grid-cols-3 font-mono text-xs mt-3">
|
||||||
|
<div className="space-y-1">
|
||||||
|
<div style={{ color: "var(--scroll-accent)" }}>global</div>
|
||||||
|
<div className="opacity-60">
|
||||||
|
Open designs, shared protocols, knowledge commons
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-1">
|
||||||
|
<div style={{ color: "var(--scroll-accent)" }}>local</div>
|
||||||
|
<div className="opacity-60">
|
||||||
|
Community production, contextual adaptation, bioregional
|
||||||
|
materials
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-1">
|
||||||
|
<div style={{ color: "var(--scroll-accent)" }}>convivial</div>
|
||||||
|
<div className="opacity-60">
|
||||||
|
Tools that empower users, not platforms that extract from
|
||||||
|
them
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Data Flows - New Section */}
|
{/* Data Flows - New Section */}
|
||||||
|
|
@ -152,7 +191,7 @@ export function LegacySection() {
|
||||||
<h3 className="font-serif text-2xl sm:text-3xl font-semibold">
|
<h3 className="font-serif text-2xl sm:text-3xl font-semibold">
|
||||||
Data Flows of the Commons
|
Data Flows of the Commons
|
||||||
</h3>
|
</h3>
|
||||||
<div className="space-y-4 text-base leading-relaxed opacity-80">
|
<div className="space-y-4 text-base leading-relaxed opacity-90">
|
||||||
<p>
|
<p>
|
||||||
The MycoStack recognizes that the dissemination of{" "}
|
The MycoStack recognizes that the dissemination of{" "}
|
||||||
<strong>trust</strong>, <strong>resources</strong>,{" "}
|
<strong>trust</strong>, <strong>resources</strong>,{" "}
|
||||||
|
|
@ -227,7 +266,7 @@ export function LegacySection() {
|
||||||
<br />
|
<br />
|
||||||
Peer-for-Peer (P4P) Movement
|
Peer-for-Peer (P4P) Movement
|
||||||
</h3>
|
</h3>
|
||||||
<div className="space-y-4 text-base leading-relaxed opacity-80">
|
<div className="space-y-4 text-base leading-relaxed opacity-90">
|
||||||
<p>
|
<p>
|
||||||
MycoStack carries this legacy forward by inoculating a
|
MycoStack carries this legacy forward by inoculating a
|
||||||
movement: <strong>Peer-for-Peer (P4P)</strong> — an
|
movement: <strong>Peer-for-Peer (P4P)</strong> — an
|
||||||
|
|
@ -302,7 +341,7 @@ export function LegacySection() {
|
||||||
<h3 className="font-serif text-2xl sm:text-3xl font-semibold">
|
<h3 className="font-serif text-2xl sm:text-3xl font-semibold">
|
||||||
Tools in Active Research
|
Tools in Active Research
|
||||||
</h3>
|
</h3>
|
||||||
<div className="space-y-4 text-base leading-relaxed opacity-80">
|
<div className="space-y-4 text-base leading-relaxed opacity-90">
|
||||||
<p>
|
<p>
|
||||||
<strong>Flow Funding</strong> — the natural evolution of
|
<strong>Flow Funding</strong> — the natural evolution of
|
||||||
the Commons Stack’s Augmented Bonding Curve. Less
|
the Commons Stack’s Augmented Bonding Curve. Less
|
||||||
|
|
@ -399,7 +438,7 @@ export function LegacySection() {
|
||||||
<h4 className="font-serif text-lg font-semibold">
|
<h4 className="font-serif text-lg font-semibold">
|
||||||
{pillar.title}
|
{pillar.title}
|
||||||
</h4>
|
</h4>
|
||||||
<p className="text-sm leading-relaxed opacity-70">
|
<p className="text-sm leading-relaxed opacity-80">
|
||||||
{pillar.text}
|
{pillar.text}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -408,7 +447,7 @@ export function LegacySection() {
|
||||||
|
|
||||||
{/* Quote */}
|
{/* Quote */}
|
||||||
<blockquote className="section-reveal max-w-2xl mx-auto text-center">
|
<blockquote className="section-reveal max-w-2xl mx-auto text-center">
|
||||||
<p className="font-serif text-xl sm:text-2xl italic leading-relaxed opacity-70">
|
<p className="font-serif text-xl sm:text-2xl italic leading-relaxed opacity-80">
|
||||||
“The more we share, the more we have.”
|
“The more we share, the more we have.”
|
||||||
</p>
|
</p>
|
||||||
<cite className="block mt-3 text-sm opacity-40 not-italic">
|
<cite className="block mt-3 text-sm opacity-40 not-italic">
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ export function MyceliumSection() {
|
||||||
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
||||||
The Mycelial Network
|
The Mycelial Network
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-lg sm:text-xl opacity-70 max-w-2xl mx-auto">
|
<p className="text-lg sm:text-xl opacity-85 max-w-2xl mx-auto">
|
||||||
Three principles from the forest floor, applied to human systems
|
Three principles from the forest floor, applied to human systems
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -77,7 +77,7 @@ export function MyceliumSection() {
|
||||||
<h3 className="font-serif text-2xl sm:text-3xl font-semibold">
|
<h3 className="font-serif text-2xl sm:text-3xl font-semibold">
|
||||||
{principle.title}
|
{principle.title}
|
||||||
</h3>
|
</h3>
|
||||||
<p className="text-base leading-relaxed opacity-75">
|
<p className="text-base leading-relaxed opacity-85">
|
||||||
{principle.body}
|
{principle.body}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -89,7 +89,7 @@ export function MyceliumSection() {
|
||||||
|
|
||||||
{/* Connecting line between principles - visual only */}
|
{/* Connecting line between principles - visual only */}
|
||||||
<div className="section-reveal text-center space-y-3 pt-4">
|
<div className="section-reveal text-center space-y-3 pt-4">
|
||||||
<p className="text-sm opacity-50 max-w-lg mx-auto">
|
<p className="text-sm opacity-65 max-w-lg mx-auto">
|
||||||
These are the protocols of{" "}
|
These are the protocols of{" "}
|
||||||
<a
|
<a
|
||||||
href="https://mycofi.earth"
|
href="https://mycofi.earth"
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,13 @@ const NODES: NetworkNode[] = [
|
||||||
x: 80,
|
x: 80,
|
||||||
y: 18,
|
y: 18,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "Defect.fi",
|
||||||
|
domain: "defect.fi",
|
||||||
|
description: "Defecting from extractive finance",
|
||||||
|
x: 92,
|
||||||
|
y: 25,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "Mycopunk",
|
name: "Mycopunk",
|
||||||
domain: "mycopunk.xyz",
|
domain: "mycopunk.xyz",
|
||||||
|
|
@ -131,6 +138,8 @@ const CONNECTIONS: [string, string][] = [
|
||||||
["commonsstack.org", "nofi.lol"],
|
["commonsstack.org", "nofi.lol"],
|
||||||
["rfunds.online", "mycofi.earth"],
|
["rfunds.online", "mycofi.earth"],
|
||||||
["nofi.lol", "mycofi.earth"],
|
["nofi.lol", "mycofi.earth"],
|
||||||
|
["nofi.lol", "defect.fi"],
|
||||||
|
["defect.fi", "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"],
|
||||||
|
|
@ -178,7 +187,7 @@ export function NetworkMapSection() {
|
||||||
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
||||||
The Network of Networks
|
The Network of Networks
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-lg sm:text-xl opacity-70 max-w-2xl mx-auto">
|
<p className="text-lg sm:text-xl opacity-85 max-w-2xl mx-auto">
|
||||||
Every node strengthens the whole. Every connection multiplies
|
Every node strengthens the whole. Every connection multiplies
|
||||||
possibility.
|
possibility.
|
||||||
</p>
|
</p>
|
||||||
|
|
|
||||||
|
|
@ -12,29 +12,18 @@ export function NoFiSection() {
|
||||||
<div className="max-w-4xl mx-auto space-y-16">
|
<div className="max-w-4xl mx-auto space-y-16">
|
||||||
<div className="section-reveal space-y-6 text-center">
|
<div className="section-reveal space-y-6 text-center">
|
||||||
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
<h2 className="font-serif text-4xl sm:text-5xl md:text-6xl font-bold">
|
||||||
NoFi
|
Sister Ecosystems
|
||||||
</h2>
|
</h2>
|
||||||
<p className="font-mono text-sm opacity-40">
|
<p className="text-lg sm:text-xl opacity-85 max-w-2xl mx-auto leading-relaxed">
|
||||||
/no-fai/ — post-finance
|
The MycoStack doesn’t grow alone. It interweaves with
|
||||||
</p>
|
parallel movements rethinking value, finance, and coordination
|
||||||
<p className="text-lg sm:text-xl opacity-70 max-w-2xl mx-auto leading-relaxed">
|
from the ground up.
|
||||||
The point was never to make money.
|
|
||||||
<br />
|
|
||||||
The point was always to make <em>change</em>.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="section-reveal max-w-3xl mx-auto space-y-6">
|
<div className="section-reveal grid gap-6 sm:grid-cols-3 max-w-3xl mx-auto">
|
||||||
<div className="space-y-4 text-base leading-relaxed opacity-80">
|
<div className="glass-card p-5 space-y-3">
|
||||||
<p>
|
<h3 className="font-serif text-lg font-semibold">
|
||||||
Finance was supposed to be a tool — a way to coordinate
|
|
||||||
resources toward shared goals. Somewhere along the way, the tool
|
|
||||||
became the master. We started measuring the health of communities
|
|
||||||
by their balance sheets, the worth of projects by their returns,
|
|
||||||
the value of people by their portfolios. The map ate the
|
|
||||||
territory.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<a
|
<a
|
||||||
href="https://nofi.lol"
|
href="https://nofi.lol"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
|
|
@ -42,89 +31,63 @@ export function NoFiSection() {
|
||||||
className="domain-link"
|
className="domain-link"
|
||||||
>
|
>
|
||||||
NoFi
|
NoFi
|
||||||
</a>{" "}
|
</a>
|
||||||
is the recognition that we need to think <em>past</em> finance
|
</h3>
|
||||||
entirely. Not anti-finance — post-finance. The question
|
<p className="text-sm leading-relaxed opacity-80">
|
||||||
isn’t “how do we fund this?” but “how
|
Post-finance. The point was never to make money — it was
|
||||||
do we organize so that funding becomes irrelevant?” How do
|
to make <em>change</em>. NoFi asks: what if we build
|
||||||
we build systems where the flows of trust, knowledge, care, and
|
coordination so dense that the financial scaffolding can be
|
||||||
resources make the extractive financial layer unnecessary?
|
composted?
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<div className="glass-card p-3 space-y-1 font-mono text-xs text-center">
|
||||||
DeFi promised to decentralize finance. It mostly just made
|
<div className="opacity-40">TradFi → DeFi → ReFi →</div>
|
||||||
finance faster. ReFi promised to regenerate through finance. It
|
<div style={{ color: "var(--scroll-accent)" }}>NoFi</div>
|
||||||
mostly just made new financial instruments. NoFi asks: what if
|
<div className="opacity-50">Transcend the need for it.</div>
|
||||||
the revolution isn’t in <em>how</em> we do finance, but in
|
</div>
|
||||||
building the world where we no longer need it as the primary
|
</div>
|
||||||
coordination mechanism?
|
|
||||||
|
<div className="glass-card p-5 space-y-3">
|
||||||
|
<h3 className="font-serif text-lg font-semibold">
|
||||||
|
<a
|
||||||
|
href="https://mycofi.earth"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="domain-link"
|
||||||
|
>
|
||||||
|
MycoFi
|
||||||
|
</a>
|
||||||
|
</h3>
|
||||||
|
<p className="text-sm leading-relaxed opacity-80">
|
||||||
|
Mycelial finance — currencies that route value like fungi
|
||||||
|
route nutrients. Sensing scarcity, bridging gaps, feeding the
|
||||||
|
weak to strengthen the whole. Economics as ecology.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="glass-card p-5 space-y-3">
|
||||||
|
<h3 className="font-serif text-lg font-semibold">
|
||||||
|
<a
|
||||||
|
href="https://defect.fi"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="domain-link"
|
||||||
|
>
|
||||||
|
Defect.fi
|
||||||
|
</a>
|
||||||
|
</h3>
|
||||||
|
<p className="text-sm leading-relaxed opacity-80">
|
||||||
|
Defecting from extractive finance. Naming the exit — the
|
||||||
|
conscious choice to withdraw from systems that concentrate
|
||||||
|
wealth and build alternatives that distribute it.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="section-reveal glass-card p-6 sm:p-8 max-w-3xl mx-auto space-y-4">
|
<blockquote className="section-reveal max-w-2xl mx-auto text-center">
|
||||||
<h4 className="font-serif text-lg font-semibold opacity-70 text-center">
|
<p className="font-serif text-xl sm:text-2xl italic leading-relaxed opacity-80">
|
||||||
The progression
|
“Stop making money. Start making sense.”
|
||||||
</h4>
|
</p>
|
||||||
<div className="grid gap-3 sm:grid-cols-4 font-mono text-sm text-center">
|
</blockquote>
|
||||||
<div className="space-y-1">
|
|
||||||
<div className="font-serif text-base font-semibold not-italic opacity-40">
|
|
||||||
TradFi
|
|
||||||
</div>
|
|
||||||
<div className="opacity-50 text-xs">
|
|
||||||
Extract value. Concentrate wealth.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="space-y-1">
|
|
||||||
<div className="font-serif text-base font-semibold not-italic opacity-50">
|
|
||||||
DeFi
|
|
||||||
</div>
|
|
||||||
<div className="opacity-50 text-xs">
|
|
||||||
Decentralize the extraction.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="space-y-1">
|
|
||||||
<div className="font-serif text-base font-semibold not-italic opacity-60">
|
|
||||||
ReFi
|
|
||||||
</div>
|
|
||||||
<div className="opacity-50 text-xs">
|
|
||||||
Try to regenerate through it.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="space-y-1">
|
|
||||||
<div className="font-serif text-base font-semibold not-italic" style={{ color: "var(--scroll-accent)" }}>
|
|
||||||
NoFi
|
|
||||||
</div>
|
|
||||||
<div className="opacity-70 text-xs">
|
|
||||||
Transcend the need for it.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="section-reveal max-w-3xl mx-auto space-y-4">
|
|
||||||
<div className="space-y-4 text-base leading-relaxed opacity-80">
|
|
||||||
<p>
|
|
||||||
In a mycelial economy, resources move by need, not by price.
|
|
||||||
Trust is built through reciprocity, not collateral. Contribution
|
|
||||||
is recognized through community memory, not token balances. The
|
|
||||||
forest doesn’t have a treasury — it has flows.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
NoFi doesn’t mean no exchange. It means the exchange
|
|
||||||
becomes embedded in relationships thick enough to hold it. It
|
|
||||||
means building the social, technical, and ecological
|
|
||||||
infrastructure so dense that the financial scaffolding can
|
|
||||||
eventually be composted — returned to the soil, feeding
|
|
||||||
what comes next.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<blockquote className="pt-4 text-center">
|
|
||||||
<p className="font-serif text-xl sm:text-2xl italic leading-relaxed opacity-70">
|
|
||||||
“Stop making money. Start making sense.”
|
|
||||||
</p>
|
|
||||||
</blockquote>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,15 @@ import { useEffect } from "react"
|
||||||
// Background stays in the 0.20-0.24 range (dark forest floor).
|
// Background stays in the 0.20-0.24 range (dark forest floor).
|
||||||
// Light text throughout. Hue drifts gently through greens and teals.
|
// Light text throughout. Hue drifts gently through greens and teals.
|
||||||
const COLOR_STOPS: number[][] = [
|
const COLOR_STOPS: number[][] = [
|
||||||
[0.0, 0.20, 0.03, 140, 0.88, 0.03, 130, 0.58, 0.12, 145], // Hero: mossy green
|
[0.0, 0.20, 0.03, 140, 0.93, 0.02, 130, 0.58, 0.12, 145], // Hero: mossy green
|
||||||
[0.10, 0.21, 0.035, 135, 0.87, 0.03, 135, 0.56, 0.13, 140], // Legacy: deep fern
|
[0.10, 0.21, 0.035, 135, 0.93, 0.02, 135, 0.56, 0.13, 140], // Legacy: deep fern
|
||||||
[0.18, 0.22, 0.04, 130, 0.86, 0.03, 125, 0.55, 0.14, 130], // Compost: warm moss
|
[0.18, 0.22, 0.04, 130, 0.92, 0.02, 125, 0.55, 0.14, 130], // Compost: warm moss
|
||||||
[0.30, 0.22, 0.045, 150, 0.88, 0.03, 150, 0.58, 0.15, 155], // Mycelium: forest green
|
[0.30, 0.22, 0.045, 150, 0.93, 0.02, 150, 0.58, 0.15, 155], // Mycelium: forest green
|
||||||
[0.42, 0.21, 0.04, 170, 0.88, 0.03, 170, 0.55, 0.13, 175], // Undernet: deep teal-green
|
[0.42, 0.21, 0.04, 170, 0.93, 0.02, 170, 0.55, 0.13, 175], // Undernet: deep teal-green
|
||||||
[0.52, 0.22, 0.04, 160, 0.87, 0.03, 155, 0.57, 0.14, 160], // Anastomosis: fern blend
|
[0.52, 0.22, 0.04, 160, 0.93, 0.02, 155, 0.57, 0.14, 160], // Anastomosis: fern blend
|
||||||
[0.62, 0.21, 0.035, 145, 0.86, 0.03, 140, 0.55, 0.13, 148], // NoFi: returning green
|
[0.62, 0.21, 0.035, 145, 0.92, 0.02, 140, 0.55, 0.13, 148], // NoFi: returning green
|
||||||
[0.75, 0.23, 0.04, 135, 0.88, 0.03, 130, 0.58, 0.14, 135], // Emergence: bright moss
|
[0.75, 0.23, 0.04, 135, 0.93, 0.02, 130, 0.58, 0.14, 135], // Emergence: bright moss
|
||||||
[0.90, 0.22, 0.035, 145, 0.87, 0.03, 140, 0.56, 0.13, 150], // Network Map: canopy green
|
[0.90, 0.22, 0.035, 145, 0.93, 0.02, 140, 0.56, 0.13, 150], // Network Map: canopy green
|
||||||
]
|
]
|
||||||
|
|
||||||
function lerp(a: number, b: number, t: number) {
|
function lerp(a: number, b: number, t: number) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue