> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livepeer.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Community Guidelines

> How we show up for each other - standards, conduct, and contribution norms for the Livepeer community.

export const Image = ({src, alt = "", caption, icon, hint, fullwidth = true, className = "", style = {}, ...rest}) => {
  icon = icon ? icon : "arrow-turn-down-right";
  return <Frame caption={caption} hint={hint} className={className} style={style} {...rest}>
      <img src={src} alt={alt} style={{
    width: fullwidth ? "100%" : undefined
  }} />
    </Frame>;
};

export const DisplayCard = ({icon, title, style, background = 'var(--lp-color-bg-card)', children, className = "", ...rest}) => {
  if (!title) {
    console.warn("[DisplayCard] Missing required prop: title");
    return null;
  }
  const cardStyle = {
    display: 'flex',
    flexDirection: 'column',
    height: 'calc(100% - 1rem)',
    border: '1px solid var(--lp-color-accent)',
    borderRadius: '8px',
    padding: "var(--lp-spacing-4)",
    marginBottom: "var(--lp-spacing-4)",
    backgroundColor: 'var(--lp-color-bg-page)',
    gap: "var(--lp-spacing-4)"
  };
  const titleStyle = {
    display: 'flex',
    alignItems: 'center',
    gap: "var(--lp-spacing-2)",
    marginBottom: '0',
    color: 'var(--lp-color-text-primary)',
    fontSize: '1rem',
    fontWeight: 600,
    ...style
  };
  const bodyStyle = {
    display: 'flex',
    flexDirection: 'column',
    backgroundColor: background,
    borderRadius: '8px',
    flex: 1,
    padding: "var(--lp-spacing-2)",
    margin: 0
  };
  return <div className={className} style={cardStyle} {...rest}>
      <div style={titleStyle}>
        <Icon icon={icon} size={20} color="var(--lp-color-accent)" />
        {title}
      </div>
      <div style={bodyStyle}>{children}</div>
    </div>;
};

export const CustomDivider = ({color = "var(--lp-color-border-default)", middleText = "", spacing = "default", style = {}, className = "", ...rest}) => {
  const spacingPresets = {
    default: {
      margin: "24px 0"
    },
    overlap: {
      margin: "-1rem 0 -1rem 0"
    },
    tight: {
      margin: "0 0 -1rem 0"
    },
    section: {
      margin: "0 0 -2rem 0"
    },
    sectionOverlap: {
      margin: "-1rem 0 -2rem 0"
    },
    deepOverlap: {
      margin: "-1rem 0 -1.5rem 0"
    }
  };
  const spacingStyle = spacingPresets[spacing] || spacingPresets.default;
  return <div role="separator" aria-orientation="horizontal" className={className} style={{
    display: "flex",
    alignItems: "center",
    ...spacingStyle,
    fontSize: style?.fontSize || "16px",
    height: "fit-content",
    ...style
  }} {...rest}>
      <span style={{
    marginRight: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
      </span>
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      {middleText && <>
          <Icon icon="circle" size={2} />
          <span style={{
    margin: "0 8px",
    fontWeight: "bold",
    color: color,
    opacity: 0.7
  }}>
            {middleText}
          </span>
          <Icon icon="circle" size={2} />
        </>}
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      <span style={{
    marginLeft: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <span style={{
    display: "inline-block",
    transform: "scaleX(-1)"
  }}>
          <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
        </span>
      </span>
    </div>;
};

export const FlexContainer = ({children, direction = "row", gap = "var(--lp-spacing-4)", align = "flex-start", justify = "flex-start", wrap = false, marginTop = "", marginBottom = "", margin = "", padding = "", style = {}, className = "", ...rest}) => {
  return <div className={className} style={{
    display: "flex",
    flexDirection: direction,
    gap: gap,
    alignItems: align,
    justifyContent: justify,
    flexWrap: wrap ? "wrap" : "nowrap",
    ...margin ? {
      margin
    } : {},
    ...padding ? {
      padding
    } : {},
    ...marginTop ? {
      marginTop
    } : {},
    ...marginBottom ? {
      marginBottom
    } : {},
    ...style
  }} {...rest}>
      {children}
    </div>;
};

export const BorderedBox = ({children, variant = "default", padding = "var(--lp-spacing-4)", borderRadius = "var(--lp-spacing-px-8)", margin = "", accentBar = "", style = {}, className = "", ...rest}) => {
  const variants = {
    default: {
      border: "1px solid var(--lp-color-border-default)",
      backgroundColor: "var(--lp-color-bg-card)"
    },
    accent: {
      border: "1px solid var(--lp-color-accent)",
      backgroundColor: "var(--lp-color-bg-card)"
    },
    muted: {
      border: "1px solid var(--lp-color-border-default)",
      backgroundColor: "transparent"
    }
  };
  const accentBarColors = {
    accent: "var(--lp-color-accent)",
    positive: "var(--green-9)"
  };
  return <div data-docs-bordered-box="" data-accent-bar={accentBarColors[accentBar] ? "" : undefined} className={className} style={{
    ...variants[variant],
    padding: padding,
    borderRadius: borderRadius,
    ...margin ? {
      margin
    } : {},
    ...accentBarColors[accentBar] ? {
      position: "relative",
      '--accent-bar-color': accentBarColors[accentBar]
    } : {},
    ...style
  }} {...rest}>
      {children}
    </div>;
};

<Note>
  For Discord-specific moderation rules and community expectations, see the
  [Rules & Moderation of Livepeer Discord](https://forum.livepeer.org/t/rules-moderation-of-livepeer-discord/2640)
  thread on the Livepeer Forum (November 2024).
</Note>

<Image src="https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExNjgxanlyczB0NW05M2xlYWEwdDg1N20zanowNGxmdzNnbWZ2bHQwdyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/Ae7SI3LoPYj8Q/giphy.gif" alt="Livepeer Community GIF" caption="_**Innovation thrives when we can have open, respectful, and inclusive conversations.**_" />

<CustomDivider />

Livepeer is an open, decentralised network - and the community that runs it is one of its most important infrastructure layers.
These guidelines apply everywhere we gather: Discord, the Forum, GitHub, Telegram, in-person events, and any other Livepeer-adjacent spaces.
They exist to help everyone - newcomers and long-time contributors alike - feel safe, respected, and able to do their best work.

<br />

<BorderedBox variant="accent" padding="16px 20px">
  **TL;DR** - Be constructive. Be kind. Assume good faith. Engage with ideas, not people. Contribute to the conversation even when you disagree.
  All community spaces are governed by these guidelines, and violations may result in removal.
</BorderedBox>

<br />

<CustomDivider />

## Our Values

The Livepeer Network is built on the belief that open infrastructure should benefit everyone - governed by the public, for the public.
The same spirit extends to our community culture.

<Columns cols={2}>
  <DisplayCard icon="door-open" title="Openness">
    We welcome contributors of all backgrounds - developers, operators, Delegators, researchers, and curious newcomers. The barrier to participation should be low, and the culture should make it lower.
  </DisplayCard>

  <DisplayCard icon="eye" title="Transparency">
    Decisions, proposals, and processes should be visible to all stakeholders. We discuss things in the open, document outcomes, and make our reasoning legible.
  </DisplayCard>

  <DisplayCard icon="comments" title="Constructive Dissent">
    Disagreement is healthy. We distinguish between criticising ideas (encouraged) and criticising people (not acceptable). Push back on proposals with reasoning, not dismissal.
  </DisplayCard>

  <DisplayCard icon="handshake" title="Assumed Good Faith">
    When a message is ambiguous, interpret it charitably. Most community members are trying to help, learn, or solve a problem - meet them there before assuming bad intent.
  </DisplayCard>

  <DisplayCard icon="users" title="Shared Ownership">
    The network belongs to its participants. That means community members share responsibility for keeping spaces healthy - beyond moderators.
  </DisplayCard>

  <DisplayCard icon="arrow-trend-up" title="Continuous Improvement">
    Whether it's a protocol upgrade or a contribution workflow, we look for ways to improve. If something isn't working, say so - and ideally bring a suggestion.
  </DisplayCard>
</Columns>

<br />

<CustomDivider />

## Code of Conduct

These standards apply to all Livepeer community spaces - online and in-person.
They are adapted from the [Contributor Covenant](https://www.contributor-covenant.org/) and the Livepeer Forum community guidelines.

### ✅ What We Expect

<BorderedBox variant="default" padding="16px 20px">
  * **Be respectful** - Treat community members with the same respect you would want in return, even when disagreeing.
  * **Be inclusive** - Welcome people regardless of background, experience level, technical expertise, nationality, gender, sexual orientation, disability, or personal appearance.
  * **Be constructive** - Frame criticism around ideas, implementations, and proposals - not the people behind them.
  * **Stay on topic** - Keep conversations relevant to their context. Avoid derailing threads or cross-posting the same topic in multiple channels.
  * **Credit others** - Acknowledge the work and ideas of others. Don't post content that belongs to someone else without permission.
  * **Assume good intent** - Especially in written communication, tone is easily misread. Give people the benefit of the doubt before escalating.
  * **Help newcomers** - Everyone was new once. A welcoming response to a basic question costs little and means a lot.
</BorderedBox>

### ❌ What Is Not Acceptable

<BorderedBox variant="warning" padding="16px 20px">
  The following behaviours are unacceptable in all Livepeer community spaces:

  * **Harassment** - Including targeted comments, threats, intimidation, unwanted contact, or any form of stalking.
  * **Discrimination** - Offensive or derogatory comments based on race, ethnicity, gender, sexual orientation, religion, disability, nationality, or similar characteristics.
  * **Personal attacks** - Ad hominem responses, name-calling, or responding to tone instead of content.
  * **Sexual content** - Gratuitous, explicit, or off-topic sexual language or imagery.
  * **Spam and vandalism** - Posting irrelevant links, promotional content, or deliberately disrupting discussions.
  * **Doxxing** - Exposing or threatening to expose someone's private personal information without consent.
  * **Impersonation** - Pretending to be another community member, team member, or Livepeer Foundation staff.
  * **Bad faith use of moderation** - Filing reports as retaliation instead of to address genuine violations.
</BorderedBox>

<Note>
  Technical skill, seniority, or contribution history do not entitle anyone to lower standards of behaviour.
  All community members - including maintainers and Foundation staff - are held to the same conduct standards.
</Note>

<br />

<CustomDivider />

## Community Spaces

Livepeer's community is distributed across multiple platforms. Each has its own norms and purpose - these guidelines apply to all of them.

<Columns cols={2}>
  <Card title="Discord" icon="discord" href="https://discord.gg/livepeer" arrow>
    **Primary real-time hub.** General chat, technical support, governance discussion, and ecosystem announcements.
    Use the right channel for your topic. Keep #general friendly and accessible. Long technical threads belong in dedicated channels.
  </Card>

  <Card title="Livepeer Forum" icon="comments" href="https://forum.livepeer.org" arrow>
    **For longer-form discussion.** Governance proposals, RFPs, ecosystem updates, and structured debates live here.
    Topics should be well-formed. Don't start a topic in the wrong category, and don't cross-post.
  </Card>

  <Card title="GitHub" icon="github" href="https://github.com/livepeer" arrow>
    **For code, issues, and PRs.** Bug reports, feature proposals, documentation contributions, and protocol development.
    Keep issues clear and reproducible. Treat reviewers and maintainers with respect - their time is limited.
  </Card>

  <Card title="Telegram (Official)" icon="telegram" href="https://t.me/livepeerorg" arrow>
    **Quick updates and announcements.** The official Livepeer Telegram is a good place to stay informed and ask quick questions.
  </Card>

  <Card title="Reddit (Community-run)" icon="reddit" href="https://www.reddit.com/r/livepeer/" arrow>
    **Unofficial community forum.** Run by community members, not the Foundation. Great for general discussion and sharing ecosystem projects.
  </Card>

  <Card title="Community Hub" icon="globe" href="https://www.livepeer.org/community-hub" arrow>
    **Ecosystem overview.** Governance proposals, network updates, bounties, and community tools - all in one place.
  </Card>
</Columns>

### Channel-Specific Norms

<BorderedBox variant="accent" padding="0 16px">
  <ResponseField name="Discord: #general" type="channel">
    Keep it light and welcoming. It's often the first place newcomers land. Avoid technical rabbit holes - point people to the right channel instead.
  </ResponseField>

  <ResponseField name="Discord: Support channels" type="channel">
    Lead with what you've already tried. Include relevant specs (OS, version, config). Don't expect instant responses - community members help in their own time.
  </ResponseField>

  <ResponseField name="Forum: Governance" type="channel">
    Proposals should be well-researched and structured. Share drafts early for feedback. Engage with dissenting views before moving to a vote.
  </ResponseField>

  <ResponseField name="GitHub: Issues" type="channel">
    Fill out issue templates fully. A good bug report includes: what you expected, what happened, and how to reproduce it. Incomplete issues may be closed without action.
  </ResponseField>

  <ResponseField name="GitHub: PRs" type="channel">
    Keep PRs focused. One logical change per PR. Respond to review feedback promptly. Don't force-push to a branch under active review.
  </ResponseField>
</BorderedBox>

<br />

<CustomDivider />

## Contributing to Livepeer

Livepeer thrives on community contributions. You don't need to write code to make an impact.

<Columns cols={3}>
  <DisplayCard icon="code" title="Code" href="https://github.com/livepeer" arrow>
    Open a discussion or issue before building large features. Follow repo-specific contributing guides - each repo has a `CONTRIBUTING.md`.
  </DisplayCard>

  <DisplayCard icon="book" title="Documentation" href="/v2/community/contribute/contribute" arrow>
    Found something outdated, missing, or confusing? Docs contributions are always welcome. See the Documentation Contribution Guide.
  </DisplayCard>

  <DisplayCard icon="ballot-check" title="Governance" href="https://explorer.livepeer.org/voting" arrow>
    Participate in governance by voting on proposals, commenting on RFPs, or drafting improvement proposals on the forum.
  </DisplayCard>

  <DisplayCard icon="life-ring" title="Community Support" href="https://discord.gg/livepeer" arrow>
    Help answer questions in Discord or the Forum. Helping others onboard is one of the highest-value contributions you can make.
  </DisplayCard>

  <DisplayCard icon="bug" title="Bug Reports" href="https://github.com/livepeer" arrow>
    Found a bug? Open an issue on the relevant GitHub repository with full reproduction steps.
  </DisplayCard>

  <DisplayCard icon="lightbulb" title="Ideas & Feedback" href="https://forum.livepeer.org" arrow>
    Share ideas on the Forum. Even if your idea doesn't ship, it feeds into community thinking about what the network needs.
  </DisplayCard>
</Columns>

### Contribution Principles

<BorderedBox variant="default" padding="16px 20px">
  These apply across all Livepeer repositories and contribution types:

  * **Read before you build** - Check existing issues and discussions before starting work on something large. A quick "is anyone working on this?" can save everyone time.
  * **Keep PRs focused** - One logical change per pull request. Smaller, well-scoped PRs are easier to review and merge.
  * **Write readable commit messages** - Use the [Conventional Commits](https://www.conventionalcommits.org/) format where repos require it (e.g. `fix:`, `feat:`, `docs:`).
  * **Document your changes** - If your change affects behaviour, update the relevant docs. New features without documentation are incomplete features.
  * **Be patient with reviews** - Maintainers are often working across multiple repositories. Expect responses within 7 days; ping the thread if you haven't heard back.
  * **Accept that PRs can be declined** - Maintainers may decline contributions that don't fit the project's direction. This isn't personal - they'll explain why and suggest alternatives where possible.
  * **Rebase, don't merge** - Most Livepeer repos prefer a linear commit history. Use `git rebase` instead of merge commits when updating your branch.
</BorderedBox>

<Tip>
  Not sure where to start? Check out open issues labelled `good first issue` or `help wanted` across the [Livepeer GitHub organisation](https://github.com/livepeer).
  You can also ask in the `#contributors` channel on Discord.
</Tip>

<br />

<CustomDivider />

## Participating in Governance

Livepeer is a community-governed network. Every LPT holder - whether delegating or operating directly - has a voice in how it evolves.

<BorderedBox variant="accent" padding="16px 20px">
  **Core governance principles from the Livepeer founding statement:**

  * **Transparency** - Governance processes should be visible and documented. Every stakeholder should understand how decisions get made.
  * **Consensus pathways** - There should always be a clear path for the community to reach consensus on proposals.
  * **Right to dissent** - If you disagree with a decision, you have the right to voice it - and ultimately the right to exit the network (fork, liquidate, or transition).
  * **Incentivised participation** - Active participation by the full stakeholder set is what makes the network work. Governance is part of that.
</BorderedBox>

<br />

<Columns cols={2}>
  <Card title="View Active Proposals" icon="ballot-check" href="https://explorer.livepeer.org/voting" arrow>
    Vote on live governance proposals using the Livepeer Explorer.
  </Card>

  <Card title="Governance Discussions" icon="comments" href="https://forum.livepeer.org" arrow>
    Read, comment on, and draft proposals on the Forum before they go to a vote.
  </Card>
</Columns>

<br />

<CustomDivider />

## Reporting a Problem

If you experience or witness behaviour that violates these guidelines, here's what to do:

### Step 1 - If It's Safe To Do So

Ask the person to stop. Sometimes people don't realise their behaviour is affecting others. A calm, direct response can resolve things without escalation.

### Step 2 - Flag or Report

<Columns cols={2}>
  <DisplayCard icon="discord" title="Discord" href="https://discord.gg/livepeer" arrow>
    Use Discord's built-in **Flag** or **Report** function on any message. Moderators are notified and will review.
  </DisplayCard>

  <DisplayCard icon="comments" title="Forum" href="https://forum.livepeer.org" arrow>
    Use the **Flag** button on any post. If enough flags accrue, action is taken automatically or by a moderator.
  </DisplayCard>
</Columns>

<DisplayCard icon="github" title="GitHub" href="https://github.com/livepeer" horizontal arrow>
  Use GitHub's **Report Content** function or reach out to repo maintainers directly via a private message.
</DisplayCard>

### Step 3 - Escalation

For urgent issues or situations that can't be resolved through platform tools, contact the Livepeer Foundation directly via the [community hub](https://www.livepeer.org/community-hub).

### What Happens Next

<BorderedBox variant="default" padding="16px 20px">
  Moderators and maintainers reserve the right to take the following actions based on severity and context:

  | Severity              | Action                                          |
  | --------------------- | ----------------------------------------------- |
  | Minor / First offence | Private warning with explanation                |
  | Repeated or moderate  | Temporary mute, suspension, or PR/issue closure |
  | Severe or sustained   | Permanent removal from community spaces         |

  All reports are taken seriously. Retaliation against someone for filing a report is itself a violation of these guidelines.
</BorderedBox>

<Warning>
  Moderators do not preview new posts. They rely on the community to flag problems. **If you see something, flag it.**
</Warning>

<br />

<CustomDivider />

## Related Pages & External Links

<Columns cols={2}>
  <Card title="Contribute to Livepeer" icon="code-branch" href="/v2/community/contribute/contribute" arrow>
    All the ways to contribute - code, docs, community, governance, and more.
  </Card>

  <Card title="Forums & Discussions" icon="comments" href="/v2/community/connect/connect-channels" arrow>
    Where to ask questions and connect with the community.
  </Card>

  <Card title="Livepeer Wiki - CONTRIBUTING.md" icon="github" href="https://github.com/livepeer/wiki/blob/master/CONTRIBUTING.md" arrow>
    The official contributing guide for the Livepeer wiki repository.
  </Card>

  <Card title="Livepeer Community Hub" icon="globe" href="https://www.livepeer.org/community-hub" arrow>
    Governance proposals, bounties, events, and ecosystem tools in one place.
  </Card>

  <Card title="Livepeer Forum FAQ" icon="circle-question" href="https://forum.livepeer.org/faq" arrow>
    The Livepeer Forum community standards and discussion norms.
  </Card>

  <Card title="Contributor Covenant" icon="handshake" href="https://www.contributor-covenant.org/" arrow>
    The open-source code of conduct standard these guidelines draw from.
  </Card>
</Columns>

<br />

<Note>
  These guidelines are a living document. If you have suggestions for improving them, open a discussion on the [Livepeer Forum](https://forum.livepeer.org) or submit a PR to the docs repository.
  Last reviewed: March 2026.
</Note>
