@@ -10,7 +10,6 @@ import {
1010} from "nextra-theme-docs" ;
1111import { Logo } from "@/components/logo" ;
1212import { useRouter } from "next/router" ;
13- import Link from "next/link" ;
1413import { MainContentWrapper } from "./components/MainContentWrapper" ;
1514import { Frame } from "./components/Frame" ;
1615import { GithubMenuBadge } from "./components/GitHubBadge" ;
@@ -19,32 +18,134 @@ import { COOKBOOK_ROUTE_MAPPING } from "./lib/cookbook_route_mapping";
1918import { GeistSans } from "geist/font/sans" ;
2019import IconDiscord from "./components/icons/discord" ;
2120
22- const footerNav = [
21+ const footerMenu = [
2322 {
24- name : "Schedule Demo" ,
25- href : "/schedule-demo" ,
23+ heading : "Platform" ,
24+ items : [
25+ {
26+ name : "LLM Tracing" ,
27+ href : "/docs/tracing/overview" ,
28+ } ,
29+ {
30+ name : "Prompt Management" ,
31+ href : "/docs/prompts/get-started" ,
32+ } ,
33+ {
34+ name : "Evaluation" ,
35+ href : "/docs/scores/overview" ,
36+ } ,
37+ {
38+ name : "Datasets" ,
39+ href : "/docs/datasets/overview" ,
40+ } ,
41+ {
42+ name : "Metrics" ,
43+ href : "/docs/analytics" ,
44+ } ,
45+ ] ,
2646 } ,
27- { name : "Careers" , href : "/careers" } ,
2847 {
29- name : "Status" ,
30- href : "https://status.langfuse.com" ,
48+ heading : "Integrations" ,
49+ items : [
50+ {
51+ name : "Python SDK" ,
52+ href : "/docs/sdk/python" ,
53+ } ,
54+ {
55+ name : "JS/TS SDK" ,
56+ href : "/docs/sdk/typescript" ,
57+ } ,
58+ {
59+ name : "OpenAI SDK" ,
60+ href : "/docs/integrations/openai/get-started" ,
61+ } ,
62+ {
63+ name : "Langchain" ,
64+ href : "/docs/integrations/langchain/tracing" ,
65+ } ,
66+ {
67+ name : "Llama-Index" ,
68+ href : "/docs/integrations/llama-index/get-started" ,
69+ } ,
70+ {
71+ name : "Litellm" ,
72+ href : "/docs/integrations/litellm" ,
73+ } ,
74+ {
75+ name : "Flowise" ,
76+ href : "/docs/integrations/flowise" ,
77+ } ,
78+ {
79+ name : "Langflow" ,
80+ href : "/docs/integrations/langflow" ,
81+ } ,
82+ {
83+ name : "API" ,
84+ href : "https://api.reference.langfuse.com/" ,
85+ } ,
86+ ] ,
3187 } ,
3288 {
33- name : "OSS Friends" ,
34- href : "/oss-friends" ,
89+ heading : "Resources" ,
90+ items : [
91+ { name : "Documentation" , href : "/docs" } ,
92+ {
93+ name : "Changelog" ,
94+ href : "/changelog" ,
95+ } ,
96+ {
97+ name : "Interactive Demo" ,
98+ href : "/demo" ,
99+ } ,
100+ {
101+ name : "Pricing" ,
102+ href : "/pricing" ,
103+ } ,
104+ {
105+ name : "Status" ,
106+ href : "https://status.langfuse.com" ,
107+ } ,
108+ {
109+ name : "Self-hosting" ,
110+ href : "/docs/deployment/self-host" ,
111+ } ,
112+ {
113+ name : "Open Source" ,
114+ href : "/docs/open-source" ,
115+ } ,
116+ ] ,
35117 } ,
36- ] ;
37-
38- const footerLegalNav = [
39- { name : "Security" , href : "/security" } ,
40- { name : "Imprint" , href : "/imprint" } ,
41118 {
42- name : "Terms" ,
43- href : "/tos" ,
119+ heading : "About" ,
120+ items : [
121+ { name : "Blog" , href : "/blog" } ,
122+ { name : "Careers" , href : "/careers" } ,
123+ { name : "Contact" , href : "mailto:support@langfuse.com" } ,
124+ {
125+ name : "Schedule Demo" ,
126+ href : "/schedule-demo" ,
127+ } ,
128+ {
129+ name : "OSS Friends" ,
130+ href : "/oss-friends" ,
131+ } ,
132+ ] ,
44133 } ,
134+
45135 {
46- name : "Privacy" ,
47- href : "/privacy" ,
136+ heading : "Legal" ,
137+ items : [
138+ { name : "Security" , href : "/security" } ,
139+ { name : "Imprint" , href : "/imprint" } ,
140+ {
141+ name : "Terms" ,
142+ href : "/tos" ,
143+ } ,
144+ {
145+ name : "Privacy" ,
146+ href : "/privacy" ,
147+ } ,
148+ ] ,
48149 } ,
49150] ;
50151
@@ -104,42 +205,32 @@ const config: DocsThemeConfig = {
104205 docsRepositoryBase : "https://github.com/langfuse/langfuse-docs/tree/main" ,
105206 footer : {
106207 text : (
107- < div className = "flex md:justify-between md:flex-row flex-col items-center flex-1 flex-wrap gap-2 text-sm" >
108- < div className = "md:order-last flex flex-col lg:flex-row gap-y-1 gap-x-4" >
109- < div className = "flex flex-wrap gap-x-4 gap-y-1 justify-center md:justify-end" >
110- { footerNav . map ( ( nav ) => (
111- < Link
112- key = { nav . name }
113- href = { nav . href }
114- className = "inline rounded-none leading-6 text-primary/80 hover:text-primary whitespace-nowrap"
115- >
116- { nav . name }
117- </ Link >
118- ) ) }
119- </ div >
120- < div className = "flex flex-wrap gap-x-4 gap-y-1 justify-center md:justify-end" >
121- { footerLegalNav . map ( ( nav ) => (
122- < Link
123- key = { nav . name }
124- href = { nav . href }
125- className = "inline rounded-none leading-6 text-primary/80 hover:text-primary whitespace-nowrap"
126- >
127- { nav . name }
128- </ Link >
129- ) ) }
130- < a
131- href = "#"
132- onClick = { ( ) => ( window as any ) . displayPreferenceModal ( ) }
133- className = "inline rounded-none leading-6 text-primary/80 hover:text-primary"
134- id = "termly-consent-preferences"
135- >
136- Cookie Preferences
137- </ a >
138- </ div >
208+ < div className = "w-full" >
209+ < div className = "grid grid-cols-2 md:grid-cols-5 text-base gap-y-8 gap-x-2" >
210+ { footerMenu . map ( ( menu ) => (
211+ < div key = { menu . heading } >
212+ < p className = "pb-2 font-mono font-bold text-primary" >
213+ { menu . heading }
214+ </ p >
215+ < ul className = "flex flex-col gap-2" >
216+ { menu . items . map ( ( item ) => (
217+ < li key = { item . name } >
218+ < a
219+ href = { item . href }
220+ className = "text-sm leading-tight hover:text-primary/80"
221+ >
222+ { item . name }
223+ </ a >
224+ </ li >
225+ ) ) }
226+ </ ul >
227+ </ div >
228+ ) ) }
229+ < div />
230+ </ div >
231+ < div className = "my-8 font-mono text-sm" >
232+ © 2022-{ new Date ( ) . getFullYear ( ) } Finto Technologies
139233 </ div >
140- < span className = "text-primary/80" >
141- MIT { new Date ( ) . getFullYear ( ) } © Finto Technologies GmbH
142- </ span >
143234 </ div >
144235 ) ,
145236 } ,
0 commit comments