Freelance blog post - PostHog vs Langfuse#18134
Conversation
Deploy preview
|
|
Vale prose linter → found 3 errors, 99 warnings, 1 suggestions in your markdown Full report → Copy the linter results into an LLM to batch-fix issues. Linter being weird? Update the rules!
|
| Line | Severity | Message | Rule |
|---|---|---|---|
| 2:20 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 14:28 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 20:124 | warning | Capitalize 'Logs' for PostHog's product. Use 'logs' for the general industry concept. | PostHogBase.ProductNames |
| 22:24 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 26:6 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 26:164 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 28:146 | warning | Capitalize 'Product Analytics' for PostHog's product. Use 'product analytics' for the general industry concept. | PostHogBase.ProductNames |
| 28:187 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. | PostHogBase.ProductNames |
| 28:222 | warning | Capitalize 'Feature Flags' for PostHog's product. Use 'feature flags' for the general industry concept. | PostHogBase.ProductNames |
| 28:255 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 28:284 | warning | Capitalize 'Error Tracking' for PostHog's product. Use 'error tracking' for the general industry concept. | PostHogBase.ProductNames |
| 28:319 | warning | Capitalize 'Surveys' for PostHog's product. Use 'surveys' for the general industry concept. | PostHogBase.ProductNames |
| 34:316 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. | PostHogBase.ProductNames |
| 40:74 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 42:14 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 42:276 | warning | 'Frequentist' is a possible misspelling. | PostHogBase.Spelling |
| 55:4 | warning | 'Comparing PostHog and Langfuse' heading should be in sentence case, and product names should be capitalized. | PostHogBase.SentenceCase |
| 55:26 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 59:63 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 83:19 | warning | 'Langfuse's' is a possible misspelling. | PostHogBase.Spelling |
| 87:1 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 87:274 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 106:71 | warning | Capitalize 'Workflows' for PostHog's product. Use 'workflows' for the general industry concept. | PostHogBase.ProductNames |
| 106:173 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 110:74 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 110:124 | warning | Capitalize 'Workflows' for PostHog's product. Use 'workflows' for the general industry concept. | PostHogBase.ProductNames |
| 114:39 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 130:41 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 130:91 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 151:138 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 153:268 | warning | Capitalize 'Product Analytics' for PostHog's product. Use 'product analytics' for the general industry concept. | PostHogBase.ProductNames |
| 157:32 | warning | Capitalize 'Workflows' for PostHog's product. Use 'workflows' for the general industry concept. | PostHogBase.ProductNames |
| 157:49 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 157:114 | warning | Capitalize 'Product Analytics' for PostHog's product. Use 'product analytics' for the general industry concept. | PostHogBase.ProductNames |
| 157:133 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. | PostHogBase.ProductNames |
| 157:149 | warning | Capitalize 'Feature Flags' for PostHog's product. Use 'feature flags' for the general industry concept. | PostHogBase.ProductNames |
| 157:164 | warning | Capitalize 'Experimentation' for PostHog's product. Use 'experimentation' for the general industry concept. | PostHogBase.ProductNames |
| 185:30 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 187:27 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 199:4 | warning | 'When to choose PostHog vs Langfuse' heading should be in sentence case, and product names should be capitalized. | PostHogBase.SentenceCase |
| 199:30 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 207:84 | warning | Capitalize 'Error Tracking' for PostHog's product. Use 'error tracking' for the general industry concept. | PostHogBase.ProductNames |
| 208:42 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. | PostHogBase.ProductNames |
| 208:58 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 210:5 | warning | 'Choose Langfuse for AI observability if:' heading should be in sentence case, and product names should be capitalized. | PostHogBase.SentenceCase |
| 210:12 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 213:83 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 214:80 | warning | Capitalize 'Workflows' for PostHog's product. Use 'workflows' for the general industry concept. | PostHogBase.ProductNames |
| 214:138 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 223:37 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. | PostHogBase.ProductNames |
| 223:53 | warning | Capitalize 'Feature Flags' for PostHog's product. Use 'feature flags' for the general industry concept. | PostHogBase.ProductNames |
| 223:72 | warning | Capitalize 'Error Tracking' for PostHog's product. Use 'error tracking' for the general industry concept. | PostHogBase.ProductNames |
| 223:297 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 227:5 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 227:133 | warning | 'Langfuse's' is a possible misspelling. | PostHogBase.Spelling |
| 231:128 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 231:180 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 233:33 | warning | 'LLMOps' is a possible misspelling. | PostHogBase.Spelling |
| 235:16 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 240:57 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 242:3 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 242:239 | warning | Capitalize 'Product Analytics' for PostHog's product. Use 'product analytics' for the general industry concept. | PostHogBase.ProductNames |
| 242:280 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. | PostHogBase.ProductNames |
| 242:315 | warning | Capitalize 'Feature Flags' for PostHog's product. Use 'feature flags' for the general industry concept. | PostHogBase.ProductNames |
| 242:348 | warning | Capitalize 'Experiments' for PostHog's product. Use 'experiments' for the general industry concept. | PostHogBase.ProductNames |
| 242:377 | warning | Capitalize 'Error Tracking' for PostHog's product. Use 'error tracking' for the general industry concept. | PostHogBase.ProductNames |
| 244:49 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
| 244:81 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 244:118 | warning | Capitalize 'Workflows' for PostHog's product. Use 'workflows' for the general industry concept. | PostHogBase.ProductNames |
| 249:24 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 251:138 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 258:30 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 260:181 | warning | Capitalize 'Product Analytics' for PostHog's product. Use 'product analytics' for the general industry concept. | PostHogBase.ProductNames |
| 260:200 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. | PostHogBase.ProductNames |
| 260:223 | warning | Capitalize 'Error Tracking' for PostHog's product. Use 'error tracking' for the general industry concept. | PostHogBase.ProductNames |
| 260:255 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 265:32 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 267:130 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 276:42 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 278:1 | suggestion | Avoid hedging. Be opinionated instead of saying 'It depends'. | PostHogEditorial.Hedging |
| 278:76 | warning | Use the Oxford comma before 'and' or 'or' in a list of three or more items. | PostHogBase.OxfordComma |
| 278:99 | warning | 'Braintrust' is a possible misspelling. | PostHogBase.Spelling |
| 280:52 | warning | Capitalize 'Product Analytics' for PostHog's product. Use 'product analytics' for the general industry concept. | PostHogBase.ProductNames |
| 280:120 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 289:3 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 304:3 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 311:13 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 313:3 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 315:20 | warning | Use 'GitHub' instead of 'github'. | Vale.Terms |
| 315:39 | warning | Use 'PostHog' instead of 'posthog'. | Vale.Terms |
| 316:3 | warning | 'Langfuse's' is a possible misspelling. | PostHogBase.Spelling |
| 316:21 | warning | Use 'GitHub' instead of 'github'. | Vale.Terms |
| 321:37 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 323:16 | warning | 'Langfuse's' is a possible misspelling. | PostHogBase.Spelling |
| 330:286 | warning | 'Langfuse's' is a possible misspelling. | PostHogBase.Spelling |
| 332:263 | warning | 'Langfuse' is a possible misspelling. | PostHogBase.Spelling |
| 339:78 | warning | 'Langfuse's' is a possible misspelling. | PostHogBase.Spelling |
| 344:17 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'session replay' for the general industry concept. | PostHogBase.ProductNames |
| 346:1 | warning | Capitalize 'Session Replay' for PostHog's product. Use 'Session replay' for the general industry concept. | PostHogBase.ProductNames |
| 346:218 | warning | Capitalize 'Logs' for PostHog's product. Use 'logs' for the general industry concept. | PostHogBase.ProductNames |
| 351:17 | warning | Capitalize 'Feature Flags' for PostHog's product. Use 'feature flags' for the general industry concept. | PostHogBase.ProductNames |
| 353:1 | warning | Capitalize 'Feature Flags' for PostHog's product. Use 'Feature flags' for the general industry concept. | PostHogBase.ProductNames |
| 353:220 | error | Hi, Andy here... use an en dash ( – ) with spaces. On Mac, holding down the Option and hyphen key will give you an en dash. | PostHogBase.EnDash |
Bundle reportTotal JS (gzip)6.29 MiB (+1.4 KiB / +0.0%) Largest changed named chunks
Eager graph (static-import closure per entrypoint)
Largest modules in the
|
| Module | Size |
|---|---|
css ./node_modules/.pnpm/css-loader@5.2.7_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[1]!./node_modules/.pnpm/postcss-loader@4.3.0_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[2]!./src/styles/global.css |
708.0 KiB |
./src/components/Stickers/Stickers.tsx |
696.4 KiB |
./.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/31a094f140f119e73085d847ae81b99b.js + 2 modules |
584.2 KiB |
./node_modules/.pnpm/@radix-ui+react-icons@1.3.2_react@18.3.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js |
481.4 KiB |
./node_modules/.pnpm/@codemirror+view@6.38.2/node_modules/@codemirror/view/dist/index.js |
458.1 KiB |
./node_modules/.pnpm/rehype-raw@7.0.0/node_modules/rehype-raw/lib/index.js + 29 modules |
395.1 KiB |
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.cjs.js |
364.8 KiB |
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
354.8 KiB |
./src/hooks/useCustomers.tsx + 54 modules |
353.9 KiB |
./node_modules/.pnpm/react-markdown@8.0.7_@types+react@16.14.66_react@18.3.1/node_modules/react-markdown/lib/react-markdown.js + 88 modules |
351.4 KiB |
./node_modules/.pnpm/cloudinary-core@2.14.0_lodash@4.17.21/node_modules/cloudinary-core/cloudinary-core.js |
281.9 KiB |
./src/components/ProductComparisonTable/index.tsx + 116 modules |
273.3 KiB |
./node_modules/.pnpm/@codesandbox+sandpack-react@2.20.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@codesandbox/sandpack-react/dist/index.mjs |
266.6 KiB |
./node_modules/.pnpm/d3@7.9.0/node_modules/d3/src/index.js + 208 modules |
247.4 KiB |
./src/components/Pricing/PricingSlider/Slider.tsx + 87 modules |
239.9 KiB |
Eager-graph budgets are report-only until a baseline is established. Sizes are gzip of public/**/*.js; eager size is webpack module source bytes.
Co-authored-by: Ian Vanagas <34755028+ivanagas@users.noreply.github.com>
Co-authored-by: Ian Vanagas <34755028+ivanagas@users.noreply.github.com>
Co-authored-by: Ian Vanagas <34755028+ivanagas@users.noreply.github.com>
Co-authored-by: Ian Vanagas <34755028+ivanagas@users.noreply.github.com>
Co-authored-by: Ian Vanagas <34755028+ivanagas@users.noreply.github.com>
…hub.com/PostHog/posthog.com into freelance-posthog-vs-langfuse-blog-post
…hub.com/PostHog/posthog.com into freelance-posthog-vs-langfuse-blog-post
…hub.com/PostHog/posthog.com into freelance-posthog-vs-langfuse-blog-post
ivanagas
left a comment
There was a problem hiding this comment.
Looking good, thanks for all your work on this one :)
|
|
||
| "It works in the playground" is the "it works on my machine" of AI development. Everything's great, until it isn't. | ||
|
|
||
| A real user types something you never tested, your agent takes a hard left turn, and suddenly you're scrolling through raw logs trying to reconstruct what happened. |
There was a problem hiding this comment.
| A real user types something you never tested, your agent takes a hard left turn, and suddenly you're scrolling through raw logs trying to reconstruct what happened. | |
| A real user types something you never tested, your agent takes a hard left turn, and suddenly you're scrolling through logs trying to reconstruct what happened. |
There was a problem hiding this comment.
overall nice though, thanks!
|
|
||
| ### Prompt management | ||
|
|
||
| Langfuse built prompt management as a core pillar from day one. However, PostHog is playing catch-up with a [Prompt Management](/docs/prompt-management) tool (currently in beta). But while it already covers versioning, runtime fetching, and A/B testing of prompt versions, Langfuse is still further along with features like labels, playground testing, and composable prompts. |
There was a problem hiding this comment.
core pillar and day one are both cliche, so lets just have one of them
| Langfuse built prompt management as a core pillar from day one. However, PostHog is playing catch-up with a [Prompt Management](/docs/prompt-management) tool (currently in beta). But while it already covers versioning, runtime fetching, and A/B testing of prompt versions, Langfuse is still further along with features like labels, playground testing, and composable prompts. | |
| Langfuse had prompt management from day one. However, PostHog is playing catch-up with a [Prompt Management](/docs/prompt-management) tool (currently in beta). While PostHog's tool already covers versioning, runtime fetching, and A/B testing of prompt versions, Langfuse is still further along with features like labels, playground testing, and composable prompts. |
| /> | ||
| </p> | ||
|
|
||
| **Worth noting:** Right now, PostHog's prompt management handles core workflows like creating versioned prompts for fetching them at runtime with caching and fallback. But Langfuse still has deeper features, such as environment-based deployment labels and composable prompt chains. If you really need in-depth metrics *just for LLM* features, Langfuse is the stronger pick. |
There was a problem hiding this comment.
I think this duplicates a lot of what's said in the sentence above. The in-depth metrics bit maybe doesn't even make sense to include here.
| **Worth noting:** Right now, PostHog's prompt management handles core workflows like creating versioned prompts for fetching them at runtime with caching and fallback. But Langfuse still has deeper features, such as environment-based deployment labels and composable prompt chains. If you really need in-depth metrics *just for LLM* features, Langfuse is the stronger pick. |
|
|
||
| ### Evals and datasets | ||
|
|
||
| Both tools score outputs with LLM-as-a-judge and custom code evaluators. Langfuse goes further into pre-deployment quality workflows: annotation queues for scoring specific parts of a trace, curated datasets, and experiment runs across them. |
There was a problem hiding this comment.
| Both tools score outputs with LLM-as-a-judge and custom code evaluators. Langfuse goes further into pre-deployment quality workflows: annotation queues for scoring specific parts of a trace, curated datasets, and experiment runs across them. | |
| Both tools can score outputs with LLM-as-a-judge and custom code evaluators. Langfuse goes further into pre-deployment quality workflows: annotation queues for scoring specific parts of a trace, curated datasets, and experiment runs across them. |
|
|
||
| PostHog has whole-trace human reviews rather than span-level annotations, and dataset-based eval runs are on the roadmap. | ||
|
|
||
| For pre-deployment quality assurance, Langfuse is the stronger pick right now. |
There was a problem hiding this comment.
Let's let people decide that themselves 😅
| For pre-deployment quality assurance, Langfuse is the stronger pick right now. |
|
|
||
| A real user types something you never tested, your agent takes a hard left turn, and suddenly you're scrolling through raw logs trying to reconstruct what happened. | ||
|
|
||
| Both [PostHog](/) and [Langfuse](/blog/best-langfuse-alternatives) exist for this exact moment. They both show you [what your LLMs are actually doing](blog/what-is-ai-observability) in production – traces, token costs, latency, the works. |
There was a problem hiding this comment.
| Both [PostHog](/) and [Langfuse](/blog/best-langfuse-alternatives) exist for this exact moment. They both show you [what your LLMs are actually doing](blog/what-is-ai-observability) in production – traces, token costs, latency, the works. | |
| Both [PostHog](/) and [Langfuse](/blog/best-langfuse-alternatives) exist for this exact moment. They both show you [what your LLMs are actually doing](/blog/what-is-ai-observability) in production – traces, token costs, latency, the works. |
|
|
||
| 1. **Langfuse** is a dedicated [AI observability](/blog/what-is-ai-observability) platform with deep tracing, prompt management, evaluation pipelines, and dataset experiments. It's open source (MIT licensed), self-hostable, and built for teams that want to own every layer of their AI stack. It was acquired by ClickHouse in January 2026. | ||
|
|
||
| 2. **PostHog** is a developer platform for building self-driving products. [AI observability](/ai-observability) is one of many tools alongside [product analytics](/product-analytics), [session replay](/session-replay), [feature flags](/feature-flags), [experiments](/experiments), [error tracking](/error-tracking), [surveys](/surveys), and more. It's built for AI-pilled teams who want discover issues wherever they exist, make improvements fast, and evaluate that they actually work. |
There was a problem hiding this comment.
| 2. **PostHog** is a developer platform for building self-driving products. [AI observability](/ai-observability) is one of many tools alongside [product analytics](/product-analytics), [session replay](/session-replay), [feature flags](/feature-flags), [experiments](/experiments), [error tracking](/error-tracking), [surveys](/surveys), and more. It's built for AI-pilled teams who want discover issues wherever they exist, make improvements fast, and evaluate that they actually work. | |
| 2. **PostHog** is a developer platform for building self-driving products. [AI observability](/ai-observability) is one of many tools alongside [product analytics](/product-analytics), [session replay](/session-replay), [feature flags](/feature-flags), [experiments](/experiments), [error tracking](/error-tracking), [surveys](/surveys), and more. It's built for AI-pilled teams who want to discover issues wherever they exist, make improvements fast, and evaluate that they actually work. |
|
|
||
| ### 2. We let you A/B test prompts and AI features on real users | ||
|
|
||
| Although both have prompt playgrounds, PostHog goes further with [prompt experiments (beta)](/docs/prompt-management/prompt-experiments) let you pit two or more versions of a prompt against each other. It splits users between them [via a feature flag](/docs/feature-flags) and reports cost, latency, eval pass rate, and usage analytics per variant, with a confidence interval against the control. |
There was a problem hiding this comment.
| Although both have prompt playgrounds, PostHog goes further with [prompt experiments (beta)](/docs/prompt-management/prompt-experiments) let you pit two or more versions of a prompt against each other. It splits users between them [via a feature flag](/docs/feature-flags) and reports cost, latency, eval pass rate, and usage analytics per variant, with a confidence interval against the control. | |
| Although both have prompt playgrounds, PostHog goes further with [prompt experiments (beta)](/docs/prompt-management/prompt-experiments) that let you pit two or more versions of a prompt against each other. It splits users between them [via a feature flag](/docs/feature-flags) and reports cost, latency, eval pass rate, and usage analytics per variant, with a confidence interval against the control. |
| <details> | ||
| <summary>How do feature flags make AI rollouts safer?</summary> | ||
|
|
||
| Feature flags let you roll out new AI features, prompts, or model versions gradually. You can release to a small percentage of users, monitor traces and product metrics, and roll back instantly if something looks wrong — without redeploying code. |
There was a problem hiding this comment.
| Feature flags let you roll out new AI features, prompts, or model versions gradually. You can release to a small percentage of users, monitor traces and product metrics, and roll back instantly if something looks wrong — without redeploying code. | |
| Feature flags let you roll out new AI features, prompts, or model versions gradually. You can release to a small percentage of users, monitor traces and product metrics, and roll back instantly if something looks wrong – without redeploying code. |
|
|
||
| - **PostHog or Langfuse** – You can use Langfuse for the LLM engineering team's inner loop (prompt iteration, evals, dataset management, quality assurance). And add PostHog for the product team so that they can measure business outcomes after shipping the feature. They solve different problems for different people in the organization, | ||
|
|
||
| ## Frequently asked questions |
There was a problem hiding this comment.
A good FAQ might be PostHog events vs Langfuse units.
Here's Claude:
Good question — it's the crux of why the comparison is tricky. Here's the distinction:
Langfuse units
A unit is any single record Langfuse stores, of three types:
Units = Traces + Observations + Scores
- Trace — the top-level container for one request (e.g. one chatbot turn). 1 per request.
- Observation — every step inside the trace: each LLM call (generation), each retrieval/function step (span), each event. A trace with 3 LLM calls + 2 retrieval steps = 5 observations.
- Score — an evaluation attached to a trace/observation: LLM-as-judge results, human annotations, experiment scores.
So the trace itself is billed as its own unit, plus everything in it, plus every eval you run on it. That's why one trace ≈ ~7 units in their example (1 trace + ~6 observations + a fraction of a score).
PostHog events
PostHog bills per event, and every captured item is a separate $ai_* event:
$ai_generation— one LLM call (the primary/most common event)$ai_span— an operation within a trace (retrieval, function call)$ai_trace— the trace-level record$ai_embedding— a vectorization call
There's no separate "score" event type the way Langfuse has — evals in PostHog aren't billed as a distinct ingestion unit in the same way.
The practical differences
| Langfuse unit | PostHog event | |
|---|---|---|
| Trace container | billed (1 unit) | billed ($ai_trace) |
| Each LLM call | billed (observation) | billed ($ai_generation) |
| Each span/step | billed (observation) | billed ($ai_span) |
| Evals / annotations | billed (score) | not a billed ingestion unit |
| Rate | $8 per 100k | $6 per 100k ($0.00006 each) |
Bottom line: the two count instrumentation items almost identically (trace + every observation/span), so for the same app they land at roughly the same volume — which is why applying the same ~7× multiplier to both is fair. The two real divergences are:
- Scores. If you run lots of evals/annotations, Langfuse's unit count climbs faster than PostHog's event count, because those are billable units in Langfuse but not billable events in PostHog.
- Instrumentation depth. If you only wrap LLM calls and skip spans, both drop — but PostHog can drop further if you don't emit the trace/span wrapper events.
So "units" and "events" are conceptually the same idea (one billed record per captured thing), differing mainly in what counts as billable (Langfuse adds scores) and the per-item price ($8 vs $6 per 100k).
Changes
Comparison article for PostHog vs Langfuse (freelance submission)