Repository navigation
Redesign livepeer.org - #126
Conversation
Next.js 16 on webpack with the .wgsl loader, React 19, Tailwind v4, the shadcn registry wiring for @livepeer-ui, pnpm pinned through corepack, and the redirects that keep old addresses working (locale prefixes, retired pages, old blog paths, /docs). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The pre-redesign site: components/home, legacy, blog, ecosystem and layout, the old PascalCase ui visuals, the five /use-cases pages (now redirects), Favorit fonts, unused images and planning notes. Nothing here is replaced in place; the new pages follow in their own commits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Livepeer UI registry theme as the only token layer: globals.css, Inter (self-hosted) and Geist Mono, the registry primitives in components/ui, the vendored ElevenLabs conversation parts, and the design guidelines served at /brand/guidelines and /design.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Notion readers behind the roadmap, blog, funding ladder, updates, changelog entries, guides and legal pages, over plain fetch, with the markdown fallbacks chosen in lib/register.ts. Health, targets and periods are derived here. Includes the revalidate and webhook endpoints and the routes that serve uploaded media and covers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Root layout with the skip link and canonical, error and not-found pages, header and footer with their menus, the Discord invite route, and the sitemap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
/agent: the hero films, the range of outputs, and the install card. Every video is the Agent's own output. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
/compute with the GPU rack hero and requirements, and /token. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The markdown-driven ecosystem catalogue, its detail and submit pages, and the link check workflow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
/roadmap with its record pages, health, past-target counts, grouping and facets; /roadmap/reporting; people and organization pages; and the markdown fallback content and portraits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Notion-backed blog (index, categories, posts, feed) and the generated changelog (per-period entries, roundup.json, feed). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
/foundation, /contribute with the funding ladder and contribution graph, and /brand with the brand kit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Terms of Service and Privacy Policy, published from Notion when ready. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The primer, kept intact and unlinked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Open Graph and Twitter cards for every route, drawn by lib/og.tsx. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CLAUDE.md and README updated for the redesign. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
The site header's dark glass and buttons sat over the primer's Chapters button and read as another site's chrome on its cyan ground. The primer now shows the wordmark home on the left, in its own ink, and Chapters on the right. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
At Mehrdad's ask, the site reports to the team's PostHog project. It runs only where NEXT_PUBLIC_POSTHOG_PROJECT_TOKEN is set, so a clone and local dev send nothing, and goes straight to PostHog's US host: the proxy PostHog recommends needs skipTrailingSlashRedirect, a site-wide change not worth making at launch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 Changes recommended
Analytics-policy discrepancies, an incorrect shipment date, and misleading setup documentation should be resolved before approval.
5 open findings
PostHog tracking conflicts with privacy and stated analytics scope · New CI uses Node 20 instead of the repository’s pinned Node 22 · New Changelog shipment date conflicts with commitment history · New Notion integration sharing instructions omit required databases · New Contributor instructions omit the supported Notion media upload path · New
What changed in this PR
This PR comprehensively redesigns livepeer.org around the Livepeer UI design system, adds Notion-backed publishing surfaces, and reorganizes the site around Agent, compute, roadmap, changelog, and contribution workflows.
Changes:
- Replaces legacy styling and components with semantic design-system primitives.
- Adds Notion-backed roadmap, blog, legal, guide, funding, and changelog content.
- Introduces redesigned routes, redirects, analytics, fallback content, and social cards.
| File | Description |
|---|---|
wgsl-env.d.ts |
Adds WGSL import types. |
tsconfig.json |
Updates JSX and generated-type settings. |
scripts/build-brand-kit.mjs |
Updates fonts and community URL. |
public/organizations/raidguild-symbol.svg |
Adds RaidGuild artwork. |
public/images/blog/builder-spotlight-frameworks.svg |
Removes obsolete blog artwork. |
public/images/blog/ai-x-open-media-forum.svg |
Removes obsolete blog artwork. |
public/ecosystem/streamplace.svg |
Adds Streamplace mark. |
public/ecosystem/livepeer-agent.svg |
Adds padded Agent mark. |
package.json |
Adds redesigned-site dependencies. |
lib/utils.ts |
Adds class-name merging helper. |
lib/useCountUp.ts |
Removes legacy count-up hook. |
lib/use-prefers-reduced-motion.ts |
Adds hydration-safe motion preference hook. |
lib/media-signature.ts |
Signs Notion media identifiers. |
lib/guides.ts |
Adds guide fallback reader. |
lib/entries.ts |
Adds changelog-entry fallback reader. |
lib/design-guidelines.ts |
Reads and renders local design guidelines. |
lib/constants.ts |
Removes legacy navigation constants. |
instrumentation-client.ts |
Initializes optional PostHog analytics. |
content/updates/README.md |
Documents update fallback content. |
content/updates/2026-09-10-network-readiness-retro.md |
Adds network-readiness retrospective. |
content/updates/2026-09-05-agent-product-launch.md |
Adds Agent launch update. |
content/updates/2026-08-27-agent-product-launch.md |
Adds Agent launch risk update. |
content/updates/2026-08-19-network-readiness.md |
Adds network-readiness update. |
content/updates/2026-07-28-agent-product-launch.md |
Adds Agent launch update. |
content/updates/2026-07-22-network-readiness.md |
Adds network-readiness update. |
content/updates/2026-07-15-validating-livepeer-2-0.md |
Adds protocol validation update. |
content/roadmap/validating-livepeer-2-0-upgrades.md |
Adds protocol roadmap record. |
content/roadmap/retroactive-grants.md |
Adds grants roadmap record. |
content/roadmap/network-readiness-for-livepeer-agent.md |
Adds Agent readiness record. |
content/roadmap/live-runner-go-sdk.md |
Adds SDK roadmap record. |
content/roadmap/lip-118-delegated-reward-calling.md |
Adds LIP-118 record. |
content/roadmap/explorer-maintenance.md |
Adds Explorer record. |
content/roadmap/documentation-v2.md |
Adds documentation record. |
content/roadmap/delegator-ux-analysis.md |
Adds delegator analysis record. |
content/roadmap/agent-product-launch.md |
Adds Agent launch record. |
content/roadmap/_placeholder-stake-elected-validators.md |
Adds planned validator work. |
content/roadmap/_placeholder-playbook-library.md |
Adds planned playbook work. |
content/roadmap/_placeholder-non-gpu-capabilities.md |
Adds planned capability work. |
content/roadmap/_placeholder-capability-discovery.md |
Adds planned discovery API. |
content/roadmap/_placeholder-burn-mint-equilibrium.md |
Adds planned BME work. |
content/people/tom-whitfield.md |
Adds person fallback record. |
content/people/steph-alinsug.md |
Adds person fallback record. |
content/people/rich-ogrady.md |
Adds person fallback record. |
content/people/README.md |
Documents people fallback content. |
content/people/qiang-han.md |
Adds person fallback record. |
content/people/peter-lindqvist.md |
Adds person fallback record. |
content/people/mei-tanaka.md |
Adds person fallback record. |
content/people/mehrdad-sadeghi.md |
Adds person fallback record. |
content/people/elena-vargas.md |
Adds person fallback record. |
content/people/doug-petkanics.md |
Adds person profile and biography. |
content/people/anjali-raman.md |
Adds person fallback record. |
content/people/andre-okafor.md |
Adds person fallback record. |
content/organizations/README.md |
Documents organization fallbacks. |
content/organizations/raidguild.md |
Adds RaidGuild record. |
content/organizations/protocol-r-d-spe.md |
Adds Protocol R&D SPE record. |
content/organizations/network-engineering-spe.md |
Adds Network Engineering SPE record. |
content/organizations/livepeer-treasury.md |
Adds Treasury record. |
content/organizations/livepeer-inc.md |
Adds Livepeer Inc record. |
content/organizations/livepeer-foundation.md |
Adds Foundation record. |
content/organizations/elite-code-solutions.md |
Adds company record. |
content/legal/terms-of-service.md |
Adds draft legal fallback. |
content/legal/privacy-policy.md |
Adds draft privacy fallback. |
content/guides/README.md |
Documents guide fallbacks. |
content/ecosystem/streamplace.md |
Updates Streamplace logo metadata. |
content/ecosystem/livepeer-studio.md |
Removes retired Studio listing. |
content/ecosystem/embody.md |
Corrects project attribution. |
content/ecosystem-template.md |
Expands ecosystem submission schema. |
content/contribute/treasury-proposal.md |
Adds funding-path fallback. |
content/contribute/rfps.md |
Adds RFP funding path. |
content/contribute/retroactive-grants.md |
Adds retroactive-grant path. |
content/contribute/README.md |
Documents funding fallbacks. |
content/contribute/direct-grants.md |
Adds direct-grant path. |
content/contribute/bounties.md |
Adds bounty path. |
content/changelog/README.md |
Documents changelog entries. |
content/changelog/2026-08.md |
Publishes August fallback entry. |
content/changelog/2026-07.md |
Publishes July fallback entry. |
content/changelog/2026-05.md |
Publishes May fallback entry. |
content/blog/why-delegation-still-matters-in-a-low-inflation-environment.md |
Recategorizes and replaces cover. |
content/blog/using-the-livepeer-community-treasury.md |
Updates cover and Discord URL. |
content/blog/README.md |
Documents blog fallback workflow. |
content/blog/q1-2026-messari-state-of-livepeer.md |
Replaces post cover. |
content/blog/onchain-builders-streamplace.md |
Recategorizes and updates links. |
content/blog/livepeer-incorporated-and-realtime-ai.md |
Recategorizes and updates links. |
content/blog/livepeer-2-0-video-agent-platform.md |
Recategorizes and updates cover. |
content/blog/introducing-the-livepeer-foundation.md |
Recategorizes and updates links. |
content/blog/introducing-livepeer-cascade-a-vision-for-livepeers-future-in-the-age-of-real-time-ai-video.md |
Recategorizes and updates links. |
content/blog/builder-spotlight-mike-zupper.md |
Recategorizes and replaces cover. |
content/blog/builder-spotlight-frameworks.md |
Recategorizes and replaces cover. |
content/blog/ai-x-open-media-forum.md |
Replaces post cover. |
content/blog/a-real-time-update-to-the-livepeer-network-vision.md |
Recategorizes and replaces cover. |
components/ui/textarea.tsx |
Adds design-system textarea. |
components/ui/separator.tsx |
Adds Base UI separator. |
components/ui/section-rule.tsx |
Adds section-boundary rule. |
components/ui/PageHero.tsx |
Removes legacy page hero. |
components/ui/label.tsx |
Adds label primitive. |
components/ui/input.tsx |
Adds Base UI input. |
components/ui/GlowOverlay.tsx |
Removes legacy glow component. |
components/ui/external-arrow.tsx |
Adds external-link icon. |
components/ui/CyclingWords.tsx |
Removes legacy cycling text. |
components/ui/Container.tsx |
Removes legacy container. |
components/ui/checkbox.tsx |
Adds Base UI checkbox. |
components/ui/Card.tsx |
Removes legacy card. |
components/ui/Button.tsx |
Removes legacy button. |
components/ui/Badge.tsx |
Removes legacy badge. |
components/ui/badge.tsx |
Adds design-system badge. |
components/ui/avatar.tsx |
Adds Radix avatar wrapper. |
components/primer/PrimerContent.tsx |
Updates primer branding and Discord link. |
components/livepeer-ui/reveal-post.tsx |
Opens fragment-targeted activity rows. |
components/livepeer-ui/keep-hyphenated.tsx |
Prevents awkward headline breaks. |
components/livepeer-ui/home-heading.ts |
Centralizes home heading scale. |
components/livepeer-ui/guide-record.tsx |
Renders guide records. |
components/home/WhatIsLivepeer.tsx |
Removes legacy home section. |
components/home/DeveloperCTA.tsx |
Removes legacy home CTA. |
components/copy-button.tsx |
Adds clipboard control. |
components/canvas-theme.ts |
Exposes theme colors to canvases. |
components/blog/BlogPostHeader.tsx |
Removes legacy post header. |
components/blog/BlogPostContent.tsx |
Removes legacy post content wrapper. |
components/blog/BlogPostCard.tsx |
Removes legacy post card. |
components/blog/BlogListingClient.tsx |
Removes legacy listing client. |
components/blog/BlogCategoryFilter.tsx |
Removes legacy category filter. |
components.json |
Configures shadcn registry. |
app/use-cases/synthetic-data-generation/page.tsx |
Removes retired use-case page. |
app/use-cases/real-time-video-analysis/page.tsx |
Removes retired use-case page. |
app/use-cases/live-transcoding-and-streaming/page.tsx |
Removes retired use-case page. |
app/use-cases/composable-ai-pipelines/page.tsx |
Removes retired use-case page. |
app/use-cases/ai-avatars-and-agents/page.tsx |
Removes retired use-case page. |
app/token/twitter-image.tsx |
Adds Token Twitter card. |
app/token/opengraph-image.tsx |
Adds Token Open Graph card. |
app/terms-of-service/twitter-image.tsx |
Adds Terms Twitter card. |
app/terms-of-service/page.tsx |
Adds Notion-backed Terms page. |
app/terms-of-service/opengraph-image.tsx |
Adds Terms Open Graph card. |
app/roadmap/twitter-image.tsx |
Adds Roadmap Twitter card. |
app/roadmap/reporting/twitter-image.tsx |
Adds reporting Twitter card. |
app/roadmap/reporting/opengraph-image.tsx |
Adds reporting Open Graph card. |
app/roadmap/opengraph-image.tsx |
Adds Roadmap Open Graph card. |
app/roadmap/layout.tsx |
Adds modal route slot. |
app/roadmap/@modal/default.tsx |
Adds empty modal fallback. |
app/roadmap/@modal/(..)people/[slug]/page.tsx |
Adds intercepted person panel. |
app/roadmap/@modal/(..)organizations/[slug]/page.tsx |
Adds intercepted organization panel. |
app/roadmap/[slug]/twitter-image.tsx |
Adds record Twitter cards. |
app/roadmap/[slug]/opengraph-image.tsx |
Adds record Open Graph cards. |
app/privacy-policy/twitter-image.tsx |
Adds Privacy Twitter card. |
app/privacy-policy/page.tsx |
Adds Notion-backed Privacy page. |
app/privacy-policy/opengraph-image.tsx |
Adds Privacy Open Graph card. |
app/primer/twitter-image.tsx |
Adds Primer Twitter card. |
app/primer/opengraph-image.tsx |
Migrates Primer card to Inter. |
app/primer/layout.tsx |
Updates Primer metadata title. |
app/people/[slug]/twitter-image.tsx |
Adds person Twitter cards. |
app/people/[slug]/opengraph-image.tsx |
Adds person Open Graph cards. |
app/organizations/[slug]/twitter-image.tsx |
Adds organization Twitter cards. |
app/organizations/[slug]/opengraph-image.tsx |
Adds organization Open Graph cards. |
app/not-found.tsx |
Redesigns 404 page and metadata. |
app/global-error.tsx |
Adds root-level failure UI. |
app/foundation/twitter-image.tsx |
Adds Foundation Twitter card. |
app/foundation/layout.tsx |
Enables both themes and updates metadata. |
app/foundation/ForceDarkTheme.tsx |
Removes forced dark theme. |
app/error.tsx |
Adds route-level error UI. |
app/ecosystem/twitter-image.tsx |
Adds Ecosystem Twitter card. |
app/ecosystem/submit/twitter-image.tsx |
Adds submission Twitter card. |
app/ecosystem/submit/opengraph-image.tsx |
Adds submission Open Graph card. |
app/ecosystem/opengraph-image.tsx |
Adds Ecosystem Open Graph card. |
app/ecosystem/[slug]/twitter-image.tsx |
Adds project Twitter cards. |
app/ecosystem/[slug]/page.tsx |
Migrates ecosystem detail rendering. |
app/ecosystem/[slug]/opengraph-image.tsx |
Adds project Open Graph cards. |
app/discord/route.ts |
Adds live Discord redirect. |
app/design.md/route.ts |
Serves raw design guidelines. |
app/contribute/twitter-image.tsx |
Adds Contribute Twitter card. |
app/contribute/opengraph-image.tsx |
Adds Contribute Open Graph card. |
app/compute/twitter-image.tsx |
Adds Compute Twitter card. |
app/compute/opengraph-image.tsx |
Adds Compute Open Graph card. |
app/changelog/twitter-image.tsx |
Adds Changelog Twitter card. |
app/changelog/page.tsx |
Adds generated changelog index. |
app/changelog/opengraph-image.tsx |
Adds Changelog Open Graph card. |
app/changelog/layout.tsx |
Adds changelog metadata and feed link. |
app/changelog/[period]/twitter-image.tsx |
Adds period Twitter cards. |
app/changelog/[period]/opengraph-image.tsx |
Adds period Open Graph cards. |
app/brand/twitter-image.tsx |
Adds Brand Twitter card. |
app/brand/opengraph-image.tsx |
Adds Brand Open Graph card. |
app/brand/layout.tsx |
Updates Brand metadata title. |
app/brand/guidelines/twitter-image.tsx |
Adds guidelines Twitter card. |
app/brand/guidelines/opengraph-image.tsx |
Adds guidelines Open Graph card. |
app/blog/twitter-image.tsx |
Adds Blog Twitter card. |
app/blog/page.tsx |
Migrates blog to Notion-backed listing. |
app/blog/listing.ts |
Shares blog listing configuration. |
app/blog/layout.tsx |
Adds canonical and feed metadata. |
app/blog/category/[slug]/twitter-image.tsx |
Adds category Twitter cards. |
app/blog/category/[slug]/opengraph-image.tsx |
Adds category Open Graph cards. |
app/blog/[slug]/twitter-image.tsx |
Adds post Twitter cards. |
app/blog/[slug]/opengraph-image.tsx |
Adds post Open Graph cards. |
app/api/notion-surfaces.ts |
Centralizes Notion revalidation paths. |
app/agent/twitter-image.tsx |
Adds Agent Twitter card. |
app/agent/opengraph-image.tsx |
Adds Agent Open Graph card. |
.gitignore |
Ignores environment files safely. |
.github/workflows/check-ecosystem-urls.yml |
Updates ecosystem URL CI workflow. |
.env.example |
Documents new service configuration. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Six invented contributors (Andre Okafor, Anjali Raman, Elena Vargas, Mei Tanaka, Peter Lindqvist, Tom Whitfield) were credited on roadmap commitments, including shipped ones, with generated portraits. They are already gone from the Notion people table; this removes them from the in-repo fallback too, along with their credits and portraits. Steph Alinsug and Qiang Han lose their stand-in portraits and render as monograms, matching Notion. placeholder-1/2/3.jpg are deleted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Ecosystem link check runs on Node 22, the project's runtime (.nvmrc). - The markdown copy of Network readiness ships on 2026-09-09, the day its retrospective says everything landed, not 2026-08-20 while routing was still pending. - .env.example: the Notion token reaches every Notion-backed surface, so it is shared with the Livepeer.org content page, not two databases. - Blog README: media can be uploaded into a post's Notion page; committing it here is the other way, for art posts share. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 Changes recommended
The uploaded-cover endpoint can expose draft artwork and allows unauthenticated requests to consume the shared Notion rate limit.
2 open findings
5 resolved since last review
PostHog tracking conflicts with privacy and stated analytics scope Changelog shipment date conflicts with commitment history CI uses Node 20 instead of the repository’s pinned Node 22 Contributor instructions omit the supported Notion media upload path Notion integration sharing instructions omit required databases
🧠 Review effort: Balanced



A full redesign of livepeer.org.
What changes
Positioning. The site now presents Livepeer as the open inference network for AI video. It leads with Livepeer Agent for creators, and gives GPU providers their own path as the other side of the network.
Design. Rebuilt on the Livepeer UI design system (Peace Node's registry): one set of tokens, Inter and Geist Mono, and light and dark themes that are both first-class. The old site's components, styles and fonts are removed.
Pages. The site is reorganised around these pages:
//agent/compute/token/ecosystem/foundation/blog/roadmap/changelog/contribute/brand/people/…,/organizations/…/terms-of-service,/privacy-policyContent. Page copy lives in the repo. Content that many people update on their own schedule lives in Notion and reaches the site within a minute, without a deploy: the roadmap and its updates, blog posts, funding paths, changelog entries and the legal pages. Without a Notion token the site builds from markdown copies in
content/.Old addresses. Retired pages, old locale prefixes,
/docsand old blog paths redirect to their new homes (next.config.ts).Analytics. Vercel Web Analytics, which sets no cookies, and PostHog, which reports to the team's PostHog project and keeps a visitor identifier in a cookie and local storage. PostHog runs only where
NEXT_PUBLIC_POSTHOG_PROJECT_TOKENis set (production). The Privacy Policy describes both. Google Analytics and Hotjar are removed.How to review
The work is in 16 commits grouped by theme, so it can be read one area at a time. Each commit's message says what's in it. Only the last commit builds on its own, because the themes depend on each other.
next.config.tsglobals.css, fonts,components/ui, the design guidelineslib/notion.ts,lib/register.ts, derived health and periods, the API routes🤖 Generated with Claude Code