From ab7bd076de7121330f5d4f422a820ac85528eaaa Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Thu, 12 Feb 2026 22:10:02 -0700 Subject: [PATCH] feat: Add presentations page with shareable anchor links, new research images - Add /presentations page with all 11 talks from canvas-website - Each title is a clickable #hash anchor that copies shareable URL - Auto-scrolls to hash target on page load - Styled to match home page: cursor effect, animated blobs, tags, glass cards - Replace 6 generic AI stock images with custom dark-theme illustrations matching the site's purple/teal color palette - Add Presentations nav button to hero section - Add sonner Toaster for copy-link toast notifications Co-Authored-By: Claude Opus 4.6 --- app/layout.tsx | 2 + app/presentations/page.tsx | 261 +++++++++++++++++++++++++++ components/hero-section.tsx | 6 + components/work-section.tsx | 12 +- public/augmented-bonding-curve.png | Bin 0 -> 572129 bytes public/bonding-curves.png | Bin 0 -> 567568 bytes public/commons-stack.png | Bin 0 -> 497862 bytes public/conviction-voting.png | Bin 0 -> 876129 bytes public/mycofi-mycelium.png | Bin 0 -> 1088887 bytes public/token-engineering-commons.png | Bin 0 -> 562227 bytes 10 files changed, 275 insertions(+), 6 deletions(-) create mode 100644 app/presentations/page.tsx create mode 100644 public/augmented-bonding-curve.png create mode 100644 public/bonding-curves.png create mode 100644 public/commons-stack.png create mode 100644 public/conviction-voting.png create mode 100644 public/mycofi-mycelium.png create mode 100644 public/token-engineering-commons.png diff --git a/app/layout.tsx b/app/layout.tsx index f15438b..1206e57 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -2,6 +2,7 @@ import type React from "react" import type { Metadata } from "next" import { Inter, Space_Mono } from "next/font/google" import { Analytics } from "@vercel/analytics/next" +import { Toaster } from "sonner" import "./globals.css" const inter = Inter({ @@ -48,6 +49,7 @@ export default function RootLayout({ {children} + diff --git a/app/presentations/page.tsx b/app/presentations/page.tsx new file mode 100644 index 0000000..e25c2b0 --- /dev/null +++ b/app/presentations/page.tsx @@ -0,0 +1,261 @@ +"use client" + +import { useEffect } from "react" +import { Link2, ExternalLink, ArrowLeft } from "lucide-react" +import { Card } from "@/components/ui/card" +import { CursorEffect } from "@/components/cursor-effect" +import { toast } from "sonner" + +const presentations = [ + { + id: "osmotic-governance", + title: "Osmotic Governance", + description: "Exploring the intersection of mycelium and emancipatory technologies", + embedUrl: "https://online.fliphtml5.com/phqos/xfym/", + venue: "Team Human with Douglas Rushkoff", + videoUrl: "https://www.teamhuman.fm/episodes/238-jeff-emmett", + videoLabel: "Listen to the full episode", + tags: ["Mycelium", "Governance", "Emancipatory Tech"], + }, + { + id: "exploring-mycofi", + title: "Exploring MycoFi", + description: "Mycelial design patterns for Web3 and beyond", + embedUrl: "https://online.fliphtml5.com/phqos/bqra/", + venue: "DevCon 7 in Bangkok", + videoUrl: "https://www.youtube.com/watch?v=0A4jXL5eBaI", + videoLabel: "Watch the full talk", + tags: ["MycoFi", "Web3", "Biomimicry"], + }, + { + id: "mycofi-cofi-gathering", + title: "MycoFi talk at CoFi Gathering", + description: "Mycelial design patterns for Web3 and beyond", + embedUrl: "https://online.fliphtml5.com/phqos/vwmt/", + venue: "Greenpill Network", + videoUrl: "https://www.youtube.com/watch?v=AFJFDajuCSg", + videoLabel: "Watch the full talk", + tags: ["MycoFi", "Greenpill", "CoFi"], + }, + { + id: "myco-mutualism", + title: "Myco-Mutualism", + description: "Exploring mutualistic relationships in mycelial networks and their applications to human systems", + embedUrl: "https://online.fliphtml5.com/phqos/caal/", + venue: "The Mutualist Society", + tags: ["Mutualism", "Mycelium", "Systems Design"], + }, + { + id: "psilocybernetics", + title: "Psilocybernetics: The Emergence of Institutional Neuroplasticity", + description: "Exploring the intersection of mycelium and cybernetic institutional design", + embedUrl: "https://online.fliphtml5.com/phqos/pnlz/", + venue: "General Forum for Ethereum Localism", + tags: ["Cybernetics", "Institutions", "Neuroplasticity"], + }, + { + id: "move-slow-fix-things", + title: "Move Slow & Fix Things: The Commons Stack Design Pattern", + description: "Design patterns for sustainable commons infrastructure", + embedUrl: "https://online.fliphtml5.com/phqos/bnnf/", + venue: "ReFi Unconf @ the Commons Hub Austria", + videoUrl: "https://www.youtube.com/live/i8qcg7FfpLM?si=onLcl8q5rz7cMViO&t=1362", + videoLabel: "Watch the full talk", + tags: ["Commons Stack", "ReFi", "Design Patterns"], + }, + { + id: "commons-stack-launch", + title: "Commons Stack Launch & Open Sourcing cadCAD", + description: "The launch of Commons Stack and the open sourcing of cadCAD for token engineering", + embedUrl: "https://online.fliphtml5.com/phqos/hxac/", + venue: "Token Engineering Global Gathering (TEGG)", + videoUrl: "https://youtu.be/qjdjX2m_p0Q?si=r2AXVnVyzCIxIOSc&t=20", + videoLabel: "Watch the full talk", + tags: ["Commons Stack", "cadCAD", "Token Engineering"], + }, + { + id: "conviction-voting", + title: "New Tools for Dynamic Collective Intelligence: Conviction Voting & Variations", + description: "Exploring innovative voting mechanisms for collective decision-making in decentralized systems", + embedUrl: "https://online.fliphtml5.com/phqos/fhos/", + venue: "Conviction Voting Presentation", + tags: ["Conviction Voting", "Governance", "Collective Intelligence"], + }, + { + id: "polycentric-governance", + title: "Exploring Polycentric Governance in Web3 Ecosystems", + description: "Understanding multi-level governance structures in decentralized networks", + embedUrl: "https://online.fliphtml5.com/phqos/zzoy/", + venue: "OpenWeb Hackathon", + videoUrl: "https://youtu.be/ZIWskNogafg?si=DmUbOQJaSRE1rdzq", + videoLabel: "Watch the full talk", + tags: ["Polycentric Governance", "Web3", "Ostrom"], + }, + { + id: "mycofi-myco-munnities", + title: "MycoFi for Myco-munnities", + description: "Exploring mycelial financial systems for community-based organizations", + embedUrl: "https://online.fliphtml5.com/phqos/xoea/", + venue: "CoFi Gathering in Liege", + tags: ["MycoFi", "Community Finance", "CoFi"], + }, + { + id: "community-resilience", + title: "Building Community Resilience in an Age of Crisis", + description: "Internet outages during crises can disrupt communication, education, and access to vital information. Preparing for such disruptions is essential for communities operating in challenging environments.", + embedUrl: "https://online.fliphtml5.com/phqos/afbp/", + venue: "re:publica conference, May 2025", + videoUrl: "https://www.youtube.com/watch?v=rTOLk7k9Ad8", + videoLabel: "Watch the full talk", + tags: ["Resilience", "Crisis Response", "Community Networks"], + }, +] + +function copyLink(id: string) { + const url = `${window.location.origin}/presentations#${id}` + navigator.clipboard.writeText(url).then(() => { + toast.success("Link copied to clipboard") + }) +} + +export default function PresentationsPage() { + useEffect(() => { + if (window.location.hash) { + const id = window.location.hash.slice(1) + const el = document.getElementById(id) + if (el) { + setTimeout(() => { + el.scrollIntoView({ behavior: "smooth", block: "start" }) + }, 100) + } + } + }, []) + + return ( + <> + +
+ {/* Animated background blobs */} +
+
+
+
+ + {/* Header */} +
+
+ + + Jeff Emmett + + + {"{ Presentations }"} + +
+
+ + {/* Hero */} +
+

Presentations

+

+ Research into the intersection of mycelium networks, emancipatory technologies, + and convivial tooling. Designing systems that support collective action and + community self-organization. +

+
+ + {/* Presentations grid */} +
+
+ {presentations.map((p) => ( + + + +
+
+
+