Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .github/ISSUE_TEMPLATE/ecosystem-submission.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Ecosystem Submission
description: Submit your app to the Livepeer ecosystem directory
title: "Add "
labels: ["ecosystem"]
body:
- type: markdown
attributes:
value: |
## Ecosystem App Submission
Thanks for building on Livepeer! Please fill in the details below so we can review and add your app to the ecosystem directory.

- type: input
id: app-name
attributes:
label: App Name
placeholder: "e.g., My Livepeer App"
validations:
required: true

- type: input
id: website
attributes:
label: Website URL
placeholder: "https://myapp.com"
validations:
required: true

- type: textarea
id: description
attributes:
label: Description
description: A short description of what your app does and how it uses Livepeer.
placeholder: "Our app uses Livepeer for..."
validations:
required: true

- type: textarea
id: categories
attributes:
label: Categories
description: "Select all that apply: AI Video, Streaming, Developer Tools"
placeholder: "AI Video, Streaming"
validations:
required: true

- type: input
id: contact
attributes:
label: Contact Email
description: We'll only use this to follow up on your submission.
placeholder: "you@example.com"
validations:
required: true

- type: textarea
id: logo
attributes:
label: Logo
description: Please drag and drop your app logo here (SVG or PNG, square, min 128x128px).
placeholder: "Drag and drop your logo image here..."
validations:
required: false

- type: textarea
id: additional
attributes:
label: Anything else?
description: Optional — anything we should know about your app or a category you think is missing.
validations:
required: false
24 changes: 24 additions & 0 deletions .github/workflows/check-ecosystem-urls.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Check Ecosystem URLs

on:
# Run on PRs that touch ecosystem data
pull_request:
paths:
- "data/ecosystem.json"
- "public/ecosystem/**"

# Weekly check — Mondays at 9am UTC
schedule:
- cron: "0 9 * * 1"

# Manual trigger
workflow_dispatch:

jobs:
check-urls:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Check ecosystem URLs
run: node scripts/check-ecosystem-urls.mjs
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,7 @@ brand_guidelines/
img/
*.pdf
.claude/
.codex
.vscode/
*.code-workspace
.playwright-mcp/
6 changes: 6 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"semi": true,
"singleQuote": false,
"tabWidth": 2,
"trailingComma": "es5"
}
130 changes: 87 additions & 43 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
**Stack:** Next.js 15, React 19, TypeScript, Tailwind CSS v4, Framer Motion 11. Package manager: npm. No test framework.

**Environment variables** (set in Vercel / `.env.local`):

- `MAILCHIMP_API_KEY` — Mailchimp API key (early access signups)
- `MAILCHIMP_AUDIENCE_ID` — Mailchimp audience/list ID
- `MAILCHIMP_TAG` — Mailchimp tag applied to new subscribers (default: "v2 Website Signups")
Expand All @@ -29,7 +30,7 @@

### `components/`

- **`home/`** — self-contained homepage sections. Render order in `app/page.tsx`: Hero, Capabilities, WhatIsLivepeer, WhyLivepeer, BuiltOnLivepeer, NetworkStats, DeveloperCTA, CommunityCTA. (`NetworkParticipants.tsx` exists but is not currently rendered.)
- **`home/`** — self-contained homepage sections. Render order in `app/page.tsx`: Hero, BuiltOnLivepeer, CommunityCTA. (`NetworkParticipants.tsx` exists but is not currently rendered.)
- **`layout/`** — Header, Footer. Header has headroom behavior on `/primer` (hides on scroll down, reveals on scroll up).
- **`ui/`** — shared primitives (Button, Card, Container, SectionHeader, Badge, ImageMask, GlowOverlay, EarlyAccessCTA, etc.). Reuse these; don't create new wrappers for the same purpose. Also contains canvas components: `GenerativeCanvas.tsx` (GLSL shader), `LiveNetwork.tsx` (Canvas 2D particle trails), `AiVideoHero.tsx` (Sobel edge detection on video texture). All canvas components follow `useEffect` + `useRef<HTMLCanvasElement>` + `requestAnimationFrame` + cleanup.
- **`blog/`** — blog listing page (`BlogListingClient`, `BlogCategoryFilter`, `BlogPostCard`) and post detail (`BlogPostHeader`, `BlogPostContent`).
Expand Down Expand Up @@ -80,6 +81,7 @@
The site's signature visual is a layered grid system that combines B&W video/imagery, geometric shapes, animated particle trails, and liquid glass effects. This creates an "outer space control room" aesthetic — technical, cinematic, and distinctly Livepeer.

**Layer stack (bottom to top):**

1. **Media layer** — B&W video or image with green tint, darkened (`ImageMask`)
2. **Tile grid** — 9-column square grid with 1px white borders, overlaid on the media
3. **Geometric shapes** — circles, crosshairs, and a starburst node positioned at grid intersections
Expand All @@ -101,6 +103,7 @@ The site's signature visual is a layered grid system that combines B&W video/ima
Full spec in `brand-tokens.md` — colors, typography, logo rules, greyscale ramp, gradients, graphic elements.

**Theme tokens** (`globals.css` `@theme`):

- Colors: `green`, `green-light`, `green-dark`, `green-bright`, `green-subtle`, `blue`, `blue-light`, `blue-bright`, `blue-dark`, `blue-subtle`, `dark`, `dark-lighter`, `dark-card`, `dark-border`
- Fonts: `--font-sans` (Favorit Pro — Light/Book/Regular/Medium/Bold), `--font-mono` (Favorit Mono — Regular/Medium/Bold)

Expand All @@ -114,70 +117,111 @@ Dark theme only — except `/primer`, which uses a light theme override with scr

## Messaging

### Positioning

- **Canonical headline:** "Open infrastructure for real-time AI video"
- **Tagline (footer):** "The world's open video infrastructure."
- Lead with AI video, not transcoding. Transcoding is a capability, not the identity.
- The network IS the product. Daydream, Livepeer Studio, Streamplace, Embody are built ON it — they are ecosystem proof, not Livepeer products.
- **Network vs. Gateway:** The Livepeer Network is the open protocol (orchestrators, delegators, staking, distributed GPU compute). The Livepeer Gateway is the developer-facing product layer on top — API keys, request routing, billing, SLA enforcement. "Build on Livepeer" = use the Gateway. "Run the network" = be an orchestrator/delegator.
- **Differentiation:** real-time, frame-by-frame AI inference on live video — not batch processing, not generic GPU compute. Centralized GPU clouds are optimized for batch/static and structurally disadvantaged here.
- **Three demand drivers:** AI-generated worlds/games, real-time video analysis, AI-mediated avatars/agents.
### Positioning (v2 Thesis — March 2026)

- **Thesis statement:** "Livepeer is the open network for GPU-powered video."
- **Canonical headline:** "The open network for GPU-powered video"
- **Tagline (footer):** "The open network for GPU-powered video."
- Lead with solutions (builds on the network), not raw protocol capabilities.
- The network provides GPU infrastructure. Solutions provide the product experience.
- **Three competitive variables (cost / capability / community):**
- **Cost:** 60–85% cheaper than centralized alternatives (AWS, RunPod, Fal). [FLAG: pending validation with Rick — do not scale to "10x" without confirmed data]
- **Capability:** Specialized for real-time, streaming video inference. Nine years of video processing optimization. BYOC flexibility for custom models and pipelines. No other network is built specifically for this.
- **Community:** The network is operated by independent orchestrators, expanded by builders building on builders, and open to permissionless participation. This is a structural property of the infrastructure — not a Discord server or governance forum. A centralized provider structurally cannot replicate this.
- Not a trilemma — cost, capability, and community interact.
- **External competitive frame:** Livepeer solutions (powered by community-operated GPU infrastructure) vs. centralized alternatives (AWS, RunPod, Fal, Replicate) for GPU-powered video. Name competitors explicitly — the target audience is comparison-shopping.
- **Internal only (not for website copy):** DePIN comparisons (Theta, Render, Akash). These are relevant for internal strategy but not for developer-facing positioning.
- **Narrative routing principle:** Every piece of external communication should route audiences to solutions on the network. The question the website answers: "What's being built on Livepeer, and how can I use it?"
- **Solutions on the network:** Daydream (real-time generative video), Frameworks (sovereign live streaming), Streamplace (decentralized social video), Embody (AI avatars). These are the ecosystem, not Livepeer products.
- **CTA pattern:** All CTAs point to Discord ("Build with Livepeer"). No email capture.

### Voice

- Confident, technical but accessible, no-nonsense.
- Lead with what the network does and why it matters. Use concrete numbers (10x cost reduction, <1s latency, 100K+ GPUs).
- Lead with what builders can do on the network and why it matters. Use concrete numbers where validated.
- Name competitors directly — credibility comes from honest comparison, not avoidance.
- Be honest about constraints. The network has ~100 AI-capable GPUs, estimated 90–95% uptime, no formal SLAs. Don't oversell what doesn't exist yet.
- Explain technical concepts simply on first reference.
- **Avoid:** "revolutionary," "game-changing," empty superlatives, hype language, "web3 bro" tone, lorem ipsum.
- **Avoid:** "revolutionary," "game-changing," empty superlatives, hype language, "web3 bro" tone, "decentralized" as a selling point, "the platform," lorem ipsum.

### Terminology

| Use | Don't use |
|-----|-----------|
| "the network" | "the platform," "the service" |
| "open infrastructure" | "decentralized infrastructure" (too web3-coded) |
| "GPU providers" (dev-facing) | "nodes" (too generic) |
| "orchestrators" (protocol/network context) | "miners," "validators" (wrong mental model) |
| "gateway" | "API endpoint" (gateway is the product concept) |
| "delegators" | "stakers" (delegators is the protocol term) |
| "frames," "streams" | "requests," "calls" (video-native language) |
| "inference" | "processing" (when referring to AI specifically) |
| "Livepeer Gateway" | "NaaP" (internal-only project name), "Livepeer platform" (too generic) |
| Use | Don't use |
| ------------------------------------------ | ----------------------------------------------------- |
| "the network" | "the platform," "the service" |
| "open network" | "decentralized infrastructure" (too web3-coded) |
| "solutions" | "builds" (internal only), "gateways," "tools," "DGEs" |
| "GPU providers" (dev-facing) | "nodes" (too generic) |
| "orchestrators" (protocol/network context) | "miners," "validators" (wrong mental model) |
| "inference" | "processing" (when referring to AI specifically) |
| "GPU-powered video" | "real-time AI video" (previous headline, now retired) |

### What the v2 thesis kills (do not use this framing)

- ~~"The network is the product."~~ → The network is infrastructure. Solutions are the products.
- ~~"Livepeer is a generalized GPU compute network."~~ → It's specialized. GPU-powered video.
- ~~"We need to attract developers to the raw protocol."~~ → Route audiences to solutions.
- ~~"Enterprise is the near-term market."~~ → The edges are.
- ~~"Centralized vs. decentralized."~~ → The tension is centralized-proprietary vs. community-operated/open.
- ~~"10x cost reduction."~~ → 60–85% cheaper. [FLAG: pending Rick validation]
- ~~"100K+ GPUs."~~ → ~100 AI-capable GPUs currently. Don't inflate supply numbers.

## Strategic Context

This website is a redesign of livepeer.org to reflect Livepeer's repositioning from decentralized video transcoding to **infrastructure purpose-built for real-time AI video**, guided by the **Cascade vision**. As of late 2025, 70%+ of network fees come from AI inference (not transcoding), with ~3x YoY fee growth — AI is already the primary economic driver. Core strengths: low-latency video pipelines, distributed GPU operator network, open stake-coordinated execution, permissionless protocol on public blockchain.
This website reflects Livepeer's v2 positioning as a specialized GPU network for real-time video inference. The thesis organizes everything around a three-layer stack: supply (GPUs contributed by orchestrators), protocol (routing that matches workloads to GPUs), and demand (builds that package network capabilities for their audiences).

### Livepeer Gateway (internally "NaaP")
### The Stack

"NaaP" is an **internal project name** for the canonical open-source gateway and developer platform. **Do not surface "NaaP" as user-facing terminology on the website.** The user-facing name is **Livepeer Gateway**.
```
┌─────────────────────────────────────────────┐
│ DEMAND (top) │
│ Builds. Products and businesses on the │
│ protocol that serve their own audiences. │
├─────────────────────────────────────────────┤
│ PROTOCOL (middle) │
│ Routing. Orchestrator discovery, job │
│ routing, staking, delegation, payments. │
├─────────────────────────────────────────────┤
│ SUPPLY (bottom) │
│ GPUs. Physical compute contributed by │
│ independent orchestrators. │
└─────────────────────────────────────────────┘
```

The 2026 focus is preparing the network for scalable demand. This platform is the developer-facing product layer — a "single pane of glass" for core network services. Stewarded by the Livepeer Foundation.
### Current Builds (the ecosystem)

**Product principles:** Observable (transparent network data, LLM/agent-readable), Performant (production-grade real-time execution), User-Centric (developers who drive demand).
- **Scope / Daydream** — Creative AI tools for real-time video. ~30-person creative technologist cohort. Demand R&D partner, not primary demand driver.
- **Frameworks (Marco)** — Live streaming infrastructure. Bare-metal video pipelines on the network.
- **Embody (George)** — Embodied AI avatars. ~70% dev time on integration infrastructure.
- **Streamplace (Eli)** — Open-source video infrastructure for decentralized social (AT Protocol).

**Priority personas:**
1. **App Developers** — build demand-generating apps. "Get an API key and go."
2. **Service Providers** — build plugins for app devs: billing, analytics, CDN.
3. **Orchestrators** — provide GPU compute by meeting SLAs.
### Target Audience: The Edges

### Daydream
The near-term audience is the edges — builders drawn to frontier, specialized infrastructure for emerging use cases. They tolerate constraints (reliability, polish) because cost, capability, or community alignment makes their work possible. This is not the enterprise market.

Flagship product and design partner. Translates the real-time AI video thesis into developer workflows and generates early production demand.
- **Scope**: open-source local tool for designing real-time AI video workflows (integrates with TouchDesigner, Unity, Unreal)
- **Daydream API**: remote inference on Livepeer GPU backends
- **Community Hub**: workflow discovery and collaboration
Three segments: creative technologists (enter through Scope), early-stage AI video builders (enter through whichever build fits), orchestrator-entrepreneurs (enter through the network itself).

### 2026 Roadmap Phases
### 2026 Foundation Priorities

1. **Now:** Drive network performance — observability, reliability, security; expand dev tooling; remove barriers to production use
2. **Next:** Accelerate network GTM — convert readiness into demand; design partners, onboarding, ecosystem support
3. **Beyond:** Scale enterprise adoption — higher demand, GPU supply expansion, enterprise-grade ops
1. Route audiences to builds — the ecosystem page is the website's primary routing surface
2. Validate edges audience motivations through builder discovery and audience research
3. Ship case studies proving cost, capability, and community claims before they become headlines
4. Grow the builder ecosystem — the network's demand story is the builds' story

### Website Design Direction

- **AI-first positioning** — lead with real-time AI video, not legacy transcoding
- **Specialized, not generic** — lead with video inference specialization, not "open infrastructure"
- **Brand source of truth:** Holographic Agency brand guidelines (see `brand-tokens.md`)
- **Design references:** Vercel, Linear, Stripe, Raycast — clean, developer-focused, premium feel
- **Target audience:** Developers building real-time AI/video applications
- **Primary audience:** Builders evaluating GPU infrastructure for real-time video AI applications
- **Ecosystem page is the primary routing surface** — every visitor should be able to answer "what's being built here and how do I use it?"
- **Honest about constraints.** Don't mock up product UI that doesn't exist. The CTA is "Build with Livepeer" (Discord) — match the copy to that reality.

### Open Flags

These claims require validation before shipping as headlines. Use [FLAG] markers in copy:

- 60–85% cost claim — needs Rick validation against current network pricing
- "Agents can discover and pay directly" — pending Rick's architecture confirmation
- Framework case study — blocked on Marco discovery conversation
- Specific GPU/node counts — verify current numbers before publishing
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ Open [http://localhost:3000](http://localhost:3000) in your browser.

## Scripts

| Command | Description |
| --------------- | ------------------------------------ |
| `npm run dev` | Start development server |
| `npm run build` | Create production build |
| `npm run start` | Serve production build |
| `npm run lint` | Run ESLint |
| Command | Description |
| --------------- | ------------------------ |
| `npm run dev` | Start development server |
| `npm run build` | Create production build |
| `npm run start` | Serve production build |
| `npm run lint` | Run ESLint |

## Project Structure

Expand Down
10 changes: 2 additions & 8 deletions app/api/early-access/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,7 @@ export async function POST(request: Request) {
const { email } = await request.json();

if (!email || typeof email !== "string") {
return NextResponse.json(
{ error: "Email is required" },
{ status: 400 }
);
return NextResponse.json({ error: "Email is required" }, { status: 400 });
}

// Add member to audience (or update if already exists)
Expand Down Expand Up @@ -50,9 +47,6 @@ export async function POST(request: Request) {
return NextResponse.json({ success: true });
} catch (error) {
console.error("Early access signup failed:", error);
return NextResponse.json(
{ error: "Failed to subscribe" },
{ status: 500 }
);
return NextResponse.json({ error: "Failed to subscribe" }, { status: 500 });
}
}
6 changes: 5 additions & 1 deletion app/blog/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ export const metadata: Metadata = {
},
};

export default function BlogLayout({ children }: { children: React.ReactNode }) {
export default function BlogLayout({
children,
}: {
children: React.ReactNode;
}) {
return children;
}
Loading
Loading