---
title: Product Ops
description: How we run product operations at Langfuse.
---

# Product Ops

We maintain an increasingly large product surface area with a small team.
Processes matter in order to fix important bugs fast, and ship highly requested improvements for customers.

## Overview

For product engineering, we use:

- Linear for internal ticketing and collaboration via comments / RFCs
- Pylon for managing support across all channels (in-app, GitHub Discussions Support, Shared Slack Channels, Shared MS Teams Channels, Shared Email inboxes)
- GitHub
  - Issues for bug reports and near term improvements -> use via Linear (no separate inbox)
  - Discussions for feature requests -> use via Pylon (no separate inbox)
  - PR Reviews -> use via Linear PRs (no separate inbox)

We do not use:

- Our individual email inboxes

## Workflow Integration

The following diagram shows how bug reports and feature requests are handled:

```mermaid
graph LR
    A["GitHub Issues (Bug Reports)"] -->|Automatically added to triage via native integration. Respond/resolve/deduplicate from Linear| H[Linear Issues]

    C[GitHub Ideas Discussions] --> D[Pylon Tickets]
    E[GitHub Support Discussions] --> D[Pylon Tickets]

    I[Slack Channels] --> D[Pylon Tickets]
    L[MS Teams Channels] --> D[Pylon Tickets]
    J[Group Email Inboxes] --> D[Pylon Tickets]
    K[In-app Support] --> D[Pylon Tickets]

    D -->|"Link to Linear issue via Customer Request. Create Linear issue if none exists yet. Close the loop when done."| G[Linear Customer Requests]

    G --> H[Linear Issues]

    subgraph "GitHub"
        A
        C
        E
    end

    subgraph "Private Support"
        I
        L
        J
        K
    end

    subgraph "Pylon"
        D
    end

    subgraph "Linear"
        G
        H
    end
```

<!-- agent-instructions -->

---

## Agent Instructions

This page is part of the [Langfuse](https://langfuse.com) documentation, published as plain Markdown for AI agents. Every page is available as Markdown by appending `.md` to its URL, or by sending an `Accept: text/markdown` header. This page: `https://langfuse.com/handbook/product-engineering/how-we-work/product-ops.md`.

### Querying these docs

If the answer is not on this page, query the documentation instead of guessing:

- **Semantic search** across all Langfuse docs, returning an answer with the relevant pages and excerpts. Ask a specific, self-contained question:

  ```bash
  curl -sG "https://langfuse.com/api/search-docs" --data-urlencode "query=How do I trace a LangGraph agent?"
  ```

- **Index of every page**: <https://langfuse.com/llms.txt>, with per-section indexes [llms-docs.txt](https://langfuse.com/llms-docs.txt), [llms-integrations.txt](https://langfuse.com/llms-integrations.txt), and [llms-self-hosting.txt](https://langfuse.com/llms-self-hosting.txt).

### Before writing Langfuse code

- **Install the [Langfuse Agent Skill](https://langfuse.com/docs/api-and-data-platform/features/agent-skill).** It encodes Langfuse's own best practices for instrumentation, prompt management, and evaluation, and materially improves results.
- **Read [What does a good trace look like?](https://langfuse.com/docs/observability/best-practices.md)** before instrumenting an application.
- **Verify endpoints, parameters, and response fields** against the [API reference](https://api.reference.langfuse.com) instead of inferring them from code examples.
- **Use the [Langfuse CLI](https://langfuse.com/docs/api-and-data-platform/features/cli)** (`npx langfuse-cli api <resource> <action>`) to read or write traces, prompts, datasets, and scores from the terminal.

Found an error in these docs? Please open an issue at <https://github.com/langfuse/langfuse-docs/issues>.
