diff --git a/app/page.tsx b/app/page.tsx index 6e96765..466a7ab 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,5 +1,6 @@ import { MycelialCanvas } from "@/components/mycelial-canvas" import { HeroSection } from "@/components/hero-section" +import { LegacySection } from "@/components/legacy-section" import { CompostSection } from "@/components/compost-section" import { MyceliumSection } from "@/components/mycelium-section" import { UndernetSection } from "@/components/undernet-section" @@ -14,6 +15,7 @@ export default function Home() {
+ diff --git a/components/emergence-section.tsx b/components/emergence-section.tsx index f10e208..0976543 100644 --- a/components/emergence-section.tsx +++ b/components/emergence-section.tsx @@ -5,7 +5,7 @@ import { useSectionReveal } from "@/hooks/use-section-reveal" const CARDS = [ { title: "Regenerative Economics", - body: "New currencies that decompose when hoarded. Mutual credit that flows like nutrients through soil. Quadratic funding that amplifies the grassroots. Economics that serves life instead of extracting from it.", + body: "The Commons Stack proved that augmented bonding curves and conviction voting could fund the commons without extraction. Now we go further: mutual credit that flows like nutrients through soil. Quadratic funding that amplifies the grassroots. Generative ownership that creates benefits for all stakeholders.", }, { title: "Sovereign Technology", @@ -13,7 +13,7 @@ const CARDS = [ }, { title: "Living Commons", - body: "Knowledge, tools, and infrastructure that belong to everyone. Not static archives but living, growing resources — tended by communities, enriched by participation, and freely shared across the mycelial web.", + body: "Michel Bauwens built the P2P Foundation Wiki — 25,000 pages of commons knowledge. That's the seed. Now we grow the forest: knowledge, tools, and infrastructure that belong to everyone. Not static archives but living, growing resources — tended by communities, freely shared across the mycelial web.", }, ] diff --git a/components/footer.tsx b/components/footer.tsx index 938877d..de7c3d6 100644 --- a/components/footer.tsx +++ b/components/footer.tsx @@ -1,6 +1,8 @@ "use client" const LINKS = [ + { name: "Commons Stack", url: "https://commonsstack.org" }, + { name: "P2P Foundation", url: "https://wiki.p2pfoundation.net/" }, { name: "MycoFi", url: "https://mycofi.earth" }, { name: "Mycopunk", url: "https://mycopunk.xyz" }, { name: "Undernet", url: "https://undernet.earth" }, diff --git a/components/hero-section.tsx b/components/hero-section.tsx index 04fef1e..a9c7a20 100644 --- a/components/hero-section.tsx +++ b/components/hero-section.tsx @@ -32,15 +32,24 @@ export function HeroSection() { className="emerge-letter text-xl sm:text-2xl md:text-3xl font-serif font-light tracking-wide opacity-80" style={{ animationDelay: "1.2s" }} > - Technology-augmented commons. + Rebooting the Commons Stack.
Growing from beneath.

+ {/* Lineage */} +

+ Born from the P2P Foundation. Rooted in the legacy of Michel + Bauwens. Powered by mycelial principles. +

+ {/* Terminal tagline */}
> composting capitalism, growing alternatives diff --git a/components/legacy-section.tsx b/components/legacy-section.tsx new file mode 100644 index 0000000..3326008 --- /dev/null +++ b/components/legacy-section.tsx @@ -0,0 +1,213 @@ +"use client" + +import { useSectionReveal } from "@/hooks/use-section-reveal" + +export function LegacySection() { + const sectionRef = useSectionReveal() + + return ( +
+
+ +
+ {/* Header */} +
+

+ The Roots +

+

+ Every network grows from somewhere. Ours grows from the Commons + Stack and the life’s work of Michel Bauwens. +

+
+ + {/* Michel Bauwens tribute */} +
+

+ The Librarian of the Commons +

+
+

+ For over two decades,{" "} + Michel Bauwens{" "} + (1958–2024) dedicated himself to a monumental task: + documenting the emerging paradigm of peer-to-peer collaboration + and commons-based alternatives. The{" "} + + P2P Foundation Wiki + {" "} + he created contains over 25,000 pages of carefully curated + knowledge — case studies, theoretical frameworks, policy + proposals, and practical guides that have informed countless + projects worldwide. +

+

+ Michel wasn’t just a theorist. He was a{" "} + librarian in the deepest sense — someone who + believed that knowledge, freely shared and carefully tended, could + transform society. His frameworks for{" "} + commons-based peer production, the{" "} + partner state, and{" "} + cosmo-localism (“design global, manufacture + local”) gave the commons movement its intellectual + foundations. +

+
+
+ + {/* Three modes */} +
+

+ Michel’s Three Modes of Production +

+
+
+
01
+
+ State / Hierarchy +
+
Top-down coordination
+
+
+
02
+
+ Market / Exchange +
+
+ Price-coordinated transactions +
+
+
+
03
+
+ Commons / P2P +
+
+ Contributory, needs-based collaboration +
+
+
+

+ MycoStack lives in the third mode — and builds the tools to + make it thrive. +

+
+ + {/* Commons Stack history */} +
+

+ The Commons Stack +

+
+

+ The{" "} + + Commons Stack + {" "} + was born from this intellectual tradition. Its mission:{" "} + fund and govern the commons. Through pioneering work in + token engineering, augmented bonding curves, and conviction + voting, the Commons Stack and its{" "} + Trusted Seed community developed regenerative + funding mechanisms for exactly the kind of commons infrastructure + Michel championed. +

+

+ But tools alone aren’t enough. The Commons Stack taught us + that technology must be wrapped in culture — in shared + values, governance practices, and communities of care. The + Trusted Seed wasn’t just a token-holder registry; it was an + experiment in building trust at the speed of consensus. +

+
+
+ + {/* P4P framework */} +
+

+ Peer-for-Peer +

+
+

+ MycoStack carries this legacy forward with a new framework:{" "} + Peer-for-Peer (P4P) — an evolution of P2P + thinking that emphasizes peers acting for peers, not + just exchanging with them. Mutual care and regeneration as core + protocols. Active stewardship rather than passive participation. + Solidarity economics in practice. +

+

+ Where the original Commons Stack built tools, MycoStack grows + ecosystems. Where P2P described a relational dynamic, P4P demands + a commitment. The mycelium doesn’t just connect — it + nourishes. +

+
+
+ + {/* Pillars */} +
+ {[ + { + title: "Preserve", + text: "Archive and steward Michel's knowledge commons. The P2P Foundation Wiki, oral histories, theoretical frameworks \u2014 ensuring decades of accumulated wisdom remain living resources, not static monuments.", + }, + { + title: "Sustain", + text: "Build regenerative funding loops for commons infrastructure. Quadratic funding, mutual credit, contributor support systems \u2014 economics that feed the network instead of extracting from it.", + }, + { + title: "Evolve", + text: "Update the theoretical frameworks for current conditions. Bridge Web3 and traditional commons movements. Experiment with emerging technologies in service of collective flourishing.", + }, + { + title: "Propagate", + text: "Spread the spores. Educational resources, onboarding pathways, translation and localization. Grow the network of people who understand and practice commons governance.", + }, + ].map((pillar, i) => ( +
+

+ {pillar.title} +

+

+ {pillar.text} +

+
+ ))} +
+ + {/* Quote */} +
+

+ “The more we share, the more we have.” +

+ + — Michel Bauwens + +
+
+
+ ) +} diff --git a/components/mycelium-section.tsx b/components/mycelium-section.tsx index 271d63f..dcae7da 100644 --- a/components/mycelium-section.tsx +++ b/components/mycelium-section.tsx @@ -5,7 +5,7 @@ import { useSectionReveal } from "@/hooks/use-section-reveal" const PRINCIPLES = [ { title: "Nutrient Cycling", - body: "Resources flow where they're needed, not where they're hoarded. Mycelial currencies route value like fungi route nutrients — sensing scarcity, bridging gaps, feeding the weak to strengthen the whole. This is the economics of the forest floor.", + body: "Resources flow where they're needed, not where they're hoarded. The Commons Stack pioneered augmented bonding curves and quadratic funding for the commons. MycoFi extends this into mycelial currencies that route value like fungi route nutrients — sensing scarcity, bridging gaps, feeding the weak to strengthen the whole.", icon: ( @@ -20,7 +20,7 @@ const PRINCIPLES = [ }, { title: "Mutual Aid", - body: "Every node strengthens the network. Every network strengthens each node. In a mycelial system, there are no freeloaders and no extractors — only participants in a web of reciprocal support. This is the peer-for-peer protocol.", + body: "Every node strengthens the network. Every network strengthens each node. Michel Bauwens called this commons-based peer production — contributory, needs-based collaboration as the third mode of production beyond state and market. In a mycelial system, there are no extractors — only participants in a web of reciprocal support.", icon: ( @@ -33,7 +33,7 @@ const PRINCIPLES = [ }, { title: "Distributed Intelligence", - body: "No central brain. No single point of failure. Intelligence emerges from connection, from the ten thousand chemical conversations happening simultaneously across the network. The wisdom is in the web, not the node.", + body: "No central brain. No single point of failure. The Trusted Seed proved that conviction voting and consent-based governance could coordinate without hierarchy. Intelligence emerges from connection, from the ten thousand chemical conversations happening simultaneously across the network. Design global, manufacture local — cosmo-localism in practice.", icon: ( diff --git a/components/network-map-section.tsx b/components/network-map-section.tsx index 5735493..55875d1 100644 --- a/components/network-map-section.tsx +++ b/components/network-map-section.tsx @@ -22,6 +22,20 @@ const NODES: NetworkNode[] = [ y: 45, primary: true, }, + { + name: "Commons Stack", + domain: "commonsstack.org", + description: "Fund and govern the commons", + x: 50, + y: 10, + }, + { + name: "P2P Foundation", + domain: "wiki.p2pfoundation.net", + description: "25,000 pages of commons knowledge", + x: 50, + y: 92, + }, { name: "MycoFi", domain: "mycofi.earth", @@ -81,17 +95,22 @@ const NODES: NetworkNode[] = [ ] const CONNECTIONS: [string, string][] = [ + ["mycostack.xyz", "commonsstack.org"], + ["mycostack.xyz", "wiki.p2pfoundation.net"], ["mycostack.xyz", "mycofi.earth"], ["mycostack.xyz", "undernet.earth"], ["mycostack.xyz", "compostcapitalism.xyz"], ["mycostack.xyz", "yourspace.online"], + ["commonsstack.org", "wiki.p2pfoundation.net"], + ["commonsstack.org", "mycofi.earth"], + ["commonsstack.org", "mycopunk.xyz"], + ["wiki.p2pfoundation.net", "post-appitalist.app"], ["mycofi.earth", "mycopunk.xyz"], ["undernet.earth", "psilo-cyber.net"], ["compostcapitalism.xyz", "post-appitalist.app"], ["post-appitalist.app", "yourspace.online"], ["yourspace.online", "trippinballs.lol"], ["mycopunk.xyz", "psilo-cyber.net"], - ["mycofi.earth", "post-appitalist.app"], ["mycopunk.xyz", "undernet.earth"], ] diff --git a/components/scroll-provider.tsx b/components/scroll-provider.tsx index 979824d..5549464 100644 --- a/components/scroll-provider.tsx +++ b/components/scroll-provider.tsx @@ -4,14 +4,16 @@ import { useScrollProgress } from "@/hooks/use-scroll-progress" import { useEffect } from "react" // Color stops: [scrollPos, bg-L, bg-C, bg-H, fg-L, fg-C, fg-H, accent-L, accent-C, accent-H] +// 8 sections: Hero → Legacy → Compost → Mycelium → Undernet → Anastomosis → Emergence → Network Map const COLOR_STOPS: number[][] = [ - [0.0, 0.08, 0.02, 30, 0.85, 0.03, 80, 0.45, 0.12, 60], - [0.15, 0.12, 0.04, 40, 0.82, 0.04, 80, 0.55, 0.15, 45], - [0.3, 0.16, 0.05, 150, 0.88, 0.05, 145, 0.55, 0.18, 155], - [0.5, 0.22, 0.04, 200, 0.9, 0.03, 200, 0.5, 0.14, 220], - [0.65, 0.45, 0.06, 140, 0.15, 0.03, 150, 0.65, 0.18, 145], - [0.8, 0.85, 0.04, 110, 0.15, 0.04, 100, 0.6, 0.16, 90], - [0.92, 0.94, 0.02, 110, 0.12, 0.03, 100, 0.55, 0.18, 155], + [0.0, 0.08, 0.02, 30, 0.85, 0.03, 80, 0.45, 0.12, 60 ], // Hero: deep soil + [0.10, 0.10, 0.03, 35, 0.84, 0.03, 80, 0.50, 0.13, 50 ], // Legacy: dark warm earth + [0.20, 0.12, 0.04, 40, 0.82, 0.04, 80, 0.55, 0.15, 45 ], // Compost: earth brown + [0.35, 0.16, 0.05, 150, 0.88, 0.05, 145, 0.55, 0.18, 155], // Mycelium: forest green + [0.48, 0.22, 0.04, 200, 0.90, 0.03, 200, 0.50, 0.14, 220], // Undernet: deep blue + [0.60, 0.45, 0.06, 140, 0.15, 0.03, 150, 0.65, 0.18, 145], // Anastomosis: transition + [0.78, 0.85, 0.04, 110, 0.15, 0.04, 100, 0.60, 0.16, 90 ], // Emergence: golden light + [0.92, 0.94, 0.02, 110, 0.12, 0.03, 100, 0.55, 0.18, 155], // Network Map: canopy ] function lerp(a: number, b: number, t: number) {