Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
fb433f6
feat: add Langfuse Academy section
Lotte-Verheyden Apr 2, 2026
9345579
refactor: organize academy pages into section subfolders
Lotte-Verheyden Apr 2, 2026
9326fff
fix: keep flat sidebar nav with subfolder file organization
Lotte-Verheyden Apr 2, 2026
745449c
refactor: restructure academy pages and expand evaluation content
Lotte-Verheyden Apr 7, 2026
5652048
refactor: restructure academy around continuous improvement loop
Lotte-Verheyden Apr 9, 2026
feae043
refactor: remove all academy content, keep section shell
Lotte-Verheyden Apr 27, 2026
c9626ed
merge: update branch with latest main
Lotte-Verheyden Apr 27, 2026
e9d3e91
fix: remove stray closing div from merge resolution
Lotte-Verheyden Apr 27, 2026
5d52d61
feat(academy): add all loop section content pages
Lotte-Verheyden Apr 27, 2026
3247ddf
fix: add key prop type to Arrow component
Lotte-Verheyden Apr 27, 2026
c873a8a
fix: remove unused ImprovementLoop component
Lotte-Verheyden Apr 27, 2026
5e7a3e8
feat(academy): rewrite tracing page content
Lotte-Verheyden Apr 27, 2026
34406d0
Merge remote-tracking branch 'origin/main' into langfuse-academy-rese…
Lotte-Verheyden Apr 29, 2026
66bf0c9
Rewrite on welcome to lf section (#2872)
annabellscha Apr 29, 2026
3206e9d
Merge remote-tracking branch 'origin/langfuse-academy-research' into …
Lotte-Verheyden Apr 29, 2026
3e7180d
mini edit
annabellscha Apr 29, 2026
398104b
swap image
annabellscha Apr 29, 2026
df015f0
add image to first page
annabellscha Apr 29, 2026
447b6bd
feat(academy): update images, add docs links, and rename nav sections
Lotte-Verheyden Apr 29, 2026
4efd58c
fix: resolve merge conflict, keep v4 loop image
Lotte-Verheyden Apr 29, 2026
87f8d56
fix(academy): update tracing intro copy
Lotte-Verheyden Apr 29, 2026
4aa3b45
feat(academy): rewrite datasets intro, fix loop page headings, add im…
Lotte-Verheyden Apr 29, 2026
6666f76
edit for monitoring page
annabellscha Apr 29, 2026
8824614
fix(academy): align sidebar page titles with section names
Lotte-Verheyden Apr 29, 2026
d5901d9
Merge remote-tracking branch 'origin/langfuse-academy-research' into …
Lotte-Verheyden Apr 29, 2026
24e3a8c
experimentation edits
annabellscha Apr 29, 2026
d655863
edits
annabellscha Apr 29, 2026
4b48ace
fix(academy): fix broken loop images on monitor and experiment pages
Lotte-Verheyden Apr 30, 2026
55850cf
fix(academy): remove TODO callout from tracing page
Lotte-Verheyden Apr 30, 2026
7b652df
refactor(academy): flatten step pages, remove nested nav structure
Lotte-Verheyden Apr 30, 2026
3889c2b
Merge branch 'main' into langfuse-academy-research
marcklingen Apr 30, 2026
9173992
notes
marcklingen Apr 30, 2026
d96feca
edits on Ai engineering loop
annabellscha May 4, 2026
7ac85ef
small corrections
annabellscha May 4, 2026
5e5f746
monitoring edits
annabellscha May 4, 2026
e297b8e
edits experiments page
annabellscha May 4, 2026
a264eae
typo
annabellscha May 4, 2026
4273e5e
change image
annabellscha May 4, 2026
dd50029
add interactive loopn diagram
annabellscha May 4, 2026
a07a191
edit typos
annabellscha May 4, 2026
baa0d4b
add academy to navigation bar
annabellscha May 4, 2026
7a2d965
add ref to error analysis blogpost
annabellscha May 4, 2026
e86b543
feat(academy): edit tracing, datasets, and evaluate pages
Lotte-Verheyden May 5, 2026
9178e1b
feedback on academy draft (#2885)
marcklingen May 5, 2026
9065524
fix: merge langfuse-academy-research feedback into iteration branch
Lotte-Verheyden May 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions app/academy/[[...slug]]/not-found.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import Link from "next/link";

export default function AcademyNotFound() {
return (
<div className="flex flex-col items-center justify-center gap-4 py-16 text-center">
<h1 className="text-2xl font-semibold">Page not found</h1>
<p className="text-fd-muted-foreground">
The academy page you're looking for doesn't exist or has moved.
</p>
<Link href="/academy" className="text-fd-primary hover:underline">
Back to Academy
</Link>
</div>
);
}
27 changes: 27 additions & 0 deletions app/academy/[[...slug]]/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import type { Metadata } from "next";
import { notFound } from "next/navigation";
import { academySource } from "@/lib/source";
import { DocsChromePage } from "@/components/DocsChromePage";
import { buildSectionMetadata } from "@/lib/mdx-page";

type PageProps = {
params: Promise<{ slug?: string[] }>;
};

export default async function AcademyPage({ params }: PageProps) {
const { slug = [] } = await params;
const page = academySource.getPage(slug);
if (!page) notFound();
return <DocsChromePage page={page} />;
}

export async function generateMetadata({ params }: PageProps): Promise<Metadata> {
const { slug = [] } = await params;
const page = academySource.getPage(slug);
if (!page) return { title: "Not Found" };
return buildSectionMetadata(page, "academy", "Academy", slug);
}

export function generateStaticParams() {
return academySource.generateParams();
}
10 changes: 10 additions & 0 deletions app/academy/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { academySource } from "@/lib/source";
import { SharedDocsLayout } from "@/components/layout";

export default function AcademyLayout({
children,
}: {
children: React.ReactNode;
}) {
return <SharedDocsLayout tree={academySource.getPageTree()}>{children}</SharedDocsLayout>;
}
1 change: 1 addition & 0 deletions components/DocsTocFooter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ const getGithubEditUrl = (path: string): string | null => {
integrations: "content/integrations",
"self-hosting": "content/self-hosting",
library: "content/library",
academy: "content/academy",
};

const contentDir = sectionToDir[section];
Expand Down
Loading
Loading