hero-b # Langfuse Docs Repo for [langfuse.com](https://langfuse.com). Built with [Fumadocs](https://fumadocs.vercel.app/) 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 →](https://langfuse.com/careers?utm_source=github&utm_medium=readme&utm_campaign=hiring&utm_content=langfuse-docs)** ## Local Development Pre-requisites: Node.js 22 (22.13+), pnpm v12.8.1 To use Node 22 (e.g. with [nvm](https://github.com/nvm-sh/nvm)): `nvm install 22` then `nvm use` (or `nvm use 22`). The repo includes an `.nvmrc` so `nvm use` picks 22 automatically. 1. Optional: Create env based on [.env.template](./.env.template) 2. Run `pnpm i` to install the dependencies. 3. Run `pnpm dev` to start the development server on localhost:3333 ## Formatting This repo uses [Prettier](https://prettier.io/) for formatting supported source and content files, including Markdown and MDX. - Run `pnpm run format` to format files. - Run `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. ## Python cookbooks 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: 1. Ensure you have [uv](https://docs.astral.sh/uv/) installed 2. Run `bash scripts/update_cookbook_docs.sh` (uv will automatically handle dependencies) 3. Commit the changed markdown files **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. ## Media ### Images We store all images in the `public/images/` directory. To use them in the markdown files, use the absolute path `/images/your-image.png`. ### Videos / Gifs 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` (`