🪢 Langfuse documentation -- Langfuse is the open source LLM Engineering Platform. Observability, evals, prompt management, playground and metrics to debug and improve LLM apps
240
stars
6,533
commits
MDX
primary language
Sep 11, 2026
updated
Repo for langfuse.com. Built with Fumadocs and Next.js App Router.
🧑💻 We're hiring
Langfuse is growing fast (we doubled the team in the last 6 months) - since January 2026 we're part of ClickHouse, we're hiring engineering hybrid across the EU. We hire engineers who love open source and great developer experiences. See open roles →
Pre-requisites: Node.js 22, pnpm v9.5.0
To use Node 22 (e.g. with nvm): nvm install 22 then nvm use (or nvm use 22). The repo includes an .nvmrc so nvm use picks 22 automatically.
pnpm i to install the dependencies.pnpm dev to start the development server on localhost:3333This repo uses Prettier for formatting supported source and content files, including Markdown and MDX.
pnpm run format to format files.pnpm run format:check to check formatting in CI mode.Markdown prose wrapping is preserved and embedded-language formatting is disabled in .prettierrc.json so formatting does not change linebreak-sensitive Markdown rendering or fenced code snippet contents.
All Jupyter notebooks are in the cookbook/ directory. For JS/TS notebooks we use Deno, see Readme in cookbook folder for more details.
To render them within the documentation site, we convert them to markdown using jupyter nbconvert, move them to the right path in the content/guides/cookbook/ directory where they are picked up by Fumadocs.
Steps after updating notebooks:
bash scripts/update_cookbook_docs.sh (uv will automatically handle dependencies)Note: All .md or .mdx files that contain "source: ⚠️ Jupyter Notebook" on top in content/guides/cookbook/ are automatically generated from Jupyter notebooks. Do not edit them manually — they will be overwritten. Always edit the Jupyter notebooks and run the conversion script.
We store all images in the public/images/ directory. To use them in the markdown files, use the absolute path /images/your-image.png.
We use a bucket on Cloudflare R2 to store all video. It is hosted on https://static.langfuse.com/docs-videos. Ping one of the maintainers to upload a video to the bucket and get the src.
To embed a video, use the Video component and set a title and fixed aspect ratio. Point src to the mp4 file in the bucket.
To embed a "gif", actually embed a video and use gifMode (<Video src="" gifMode />). This will look like a gif, but at a much smaller file size and higher quality.
Interested in stack of Q&A docs chatbot? Checkout the blog post for implementation details (all open source)
The docs site uses Inkeep for two separate embeds:
The docs site includes four interconnected features designed to make documentation accessible to LLMs and AI tools:
Markdown URL endpoints (.md suffix): Append .md to any URL (e.g., /docs.md) to get raw markdown. Built at compile time via scripts/copy_md_sources.js which copies all .mdx/.md files from content/ to public/md-src/ as static .md files with inlined MDX components.
Copy as Markdown button: UI button on docs pages that fetches the .md endpoint and copies to clipboard for pasting into ChatGPT/Claude/Cursor.
Export as PDF links: API endpoint /api/md-to-pdf that fetches markdown from .md URLs and converts to PDF using Puppeteer. Used on legal pages (terms, privacy, DPA, etc.).
MCP Server: Model Context Protocol server at /api/mcp with three tools:
searchLangfuseDocs: RAG search via Inkeep APIgetLangfuseDocsPage: Fetches specific page markdown from .md URLsgetLangfuseOverview: Returns llms.txt overviewAll three user-facing features (Copy, PDF, MCP) depend on the same foundation of pre-built static markdown files, making them fast, cacheable, and reliable. See RESEARCH-LLM-FEATURES.md for detailed implementation details.
Run pnpm run analyze to analyze the bundle size of the production build using @next/bundle-analyzer.
(top 30 of 154)
2,258 commits
1,718 commits
646 commits
304 commits
MDX
51.0%
Jupyter Notebook
29.8%
TypeScript
15.6%
JavaScript
2.4%
🪢 Langfuse documentation -- Langfuse is the open source LLM Engineering Platform. Observability, evals, prompt management, playground and metrics to debug and improve LLM apps
240
stars
6,533
commits
MDX
primary language
Sep 11, 2026
updated
Repo for langfuse.com. Built with Fumadocs and Next.js App Router.
🧑💻 We're hiring
Langfuse is growing fast (we doubled the team in the last 6 months) - since January 2026 we're part of ClickHouse, we're hiring engineering hybrid across the EU. We hire engineers who love open source and great developer experiences. See open roles →
Pre-requisites: Node.js 22, pnpm v9.5.0
To use Node 22 (e.g. with nvm): nvm install 22 then nvm use (or nvm use 22). The repo includes an .nvmrc so nvm use picks 22 automatically.
pnpm i to install the dependencies.pnpm dev to start the development server on localhost:3333This repo uses Prettier for formatting supported source and content files, including Markdown and MDX.
pnpm run format to format files.pnpm run format:check to check formatting in CI mode.Markdown prose wrapping is preserved and embedded-language formatting is disabled in .prettierrc.json so formatting does not change linebreak-sensitive Markdown rendering or fenced code snippet contents.
All Jupyter notebooks are in the cookbook/ directory. For JS/TS notebooks we use Deno, see Readme in cookbook folder for more details.
To render them within the documentation site, we convert them to markdown using jupyter nbconvert, move them to the right path in the content/guides/cookbook/ directory where they are picked up by Fumadocs.
Steps after updating notebooks:
bash scripts/update_cookbook_docs.sh (uv will automatically handle dependencies)Note: All .md or .mdx files that contain "source: ⚠️ Jupyter Notebook" on top in content/guides/cookbook/ are automatically generated from Jupyter notebooks. Do not edit them manually — they will be overwritten. Always edit the Jupyter notebooks and run the conversion script.
We store all images in the public/images/ directory. To use them in the markdown files, use the absolute path /images/your-image.png.
We use a bucket on Cloudflare R2 to store all video. It is hosted on https://static.langfuse.com/docs-videos. Ping one of the maintainers to upload a video to the bucket and get the src.
To embed a video, use the Video component and set a title and fixed aspect ratio. Point src to the mp4 file in the bucket.
To embed a "gif", actually embed a video and use gifMode (<Video src="" gifMode />). This will look like a gif, but at a much smaller file size and higher quality.
Interested in stack of Q&A docs chatbot? Checkout the blog post for implementation details (all open source)
The docs site uses Inkeep for two separate embeds:
The docs site includes four interconnected features designed to make documentation accessible to LLMs and AI tools:
Markdown URL endpoints (.md suffix): Append .md to any URL (e.g., /docs.md) to get raw markdown. Built at compile time via scripts/copy_md_sources.js which copies all .mdx/.md files from content/ to public/md-src/ as static .md files with inlined MDX components.
Copy as Markdown button: UI button on docs pages that fetches the .md endpoint and copies to clipboard for pasting into ChatGPT/Claude/Cursor.
Export as PDF links: API endpoint /api/md-to-pdf that fetches markdown from .md URLs and converts to PDF using Puppeteer. Used on legal pages (terms, privacy, DPA, etc.).
MCP Server: Model Context Protocol server at /api/mcp with three tools:
searchLangfuseDocs: RAG search via Inkeep APIgetLangfuseDocsPage: Fetches specific page markdown from .md URLsgetLangfuseOverview: Returns llms.txt overviewAll three user-facing features (Copy, PDF, MCP) depend on the same foundation of pre-built static markdown files, making them fast, cacheable, and reliable. See RESEARCH-LLM-FEATURES.md for detailed implementation details.
Run pnpm run analyze to analyze the bundle size of the production build using @next/bundle-analyzer.
(top 30 of 154)
2,258 commits
1,718 commits
646 commits
304 commits
MDX
51.0%
Jupyter Notebook
29.8%
TypeScript
15.6%
JavaScript
2.4%