import Link from 'next/link' import { Github, Star, ArrowRight, Unlock, Layers, Globe2, ShieldCheck, Puzzle, Scale, Heart, Users, Mail, Linkedin, Youtube, } from 'lucide-react' import { HomeLayout } from 'fumadocs-ui/layouts/home' import { baseOptions } from '@/app/layout.config' import FooterMenu from '@/components/FooterMenu' import Discord from '@/components/icons/discord' import X from '@/components/icons/x' import type { Metadata } from 'next' export const metadata: Metadata = { title: 'About LibreChat', description: 'LibreChat is a free, open-source AI platform that brings together all your AI conversations in one unified, customizable interface.', } async function getGitHubData(): Promise<{ stars: number forks: number contributors: number }> { try { const [repoRes, contribRes] = await Promise.all([ fetch('https://api.github.com/repos/danny-avila/LibreChat', { next: { revalidate: 3600 }, }), fetch( 'https://api.github.com/repos/danny-avila/LibreChat/contributors?per_page=1&anon=true', { next: { revalidate: 3600 }, }, ), ]) const repoData = repoRes.ok ? await repoRes.json() : {} const stars = repoData.stargazers_count ?? 0 const forks = repoData.forks_count ?? 0 // GitHub returns total count in Link header for paginated responses let contributors = 0 if (contribRes.ok) { const linkHeader = contribRes.headers.get('link') if (linkHeader) { const match = linkHeader.match(/page=(\d+)>;\s*rel="last"/) contributors = match ? parseInt(match[1], 10) : 0 } } return { stars, forks, contributors } } catch { return { stars: 0, forks: 0, contributors: 0 } } } function formatNumber(num: number): string { if (num >= 1_000_000) return `${(num / 1_000_000).toFixed(1).replace(/\.0$/, '')}M` if (num >= 1_000) return `${(num / 1_000).toFixed(1).replace(/\.0$/, '')}k` return num.toString() } /* --------------------------------------------------------------------------- * Hero * --------------------------------------------------------------------------- */ function HeroSection() { return (

About LibreChat

Every AI, for Everyone

LibreChat is a free, open-source AI platform that brings together the best language models from every major provider into one unified, customizable interface. No vendor lock-in, no subscriptions, full control.

) } /* --------------------------------------------------------------------------- * Stats Bar * --------------------------------------------------------------------------- */ function StatsSection({ stars, forks, contributors, }: { stars: number forks: number contributors: number }) { const stats = [ { label: 'GitHub Stars', value: stars, icon: Star }, { label: 'Forks', value: forks, icon: Github }, { label: 'Contributors', value: contributors, icon: Users }, ] return (
{stats .filter((s) => s.value > 0) .map((stat) => { const Icon = stat.icon return (

{stat.label}

) })}
) } /* --------------------------------------------------------------------------- * Values / Why LibreChat * --------------------------------------------------------------------------- */ const values = [ { icon: Unlock, title: 'Open Source & Free', description: 'MIT licensed. No subscriptions, no restrictions. Use, modify, and distribute freely.', }, { icon: Layers, title: 'Multi-Provider', description: 'OpenAI, Anthropic, Google, Azure, AWS Bedrock, and dozens more — all in one place.', }, { icon: Puzzle, title: 'Extensible', description: 'MCP support, custom endpoints, plugins, and agents. Tailor it to your exact workflow.', }, { icon: Globe2, title: 'Multilingual', description: 'Interface available in 30+ languages with community-driven translations.', }, { icon: ShieldCheck, title: 'Enterprise Ready', description: 'SSO with OAuth, SAML, LDAP, two-factor auth, rate limiting, and moderation tools.', }, { icon: Scale, title: 'Self-Hosted', description: 'Deploy on your own infrastructure. Your data stays yours — full privacy and compliance.', }, ] function ValuesSection() { return (

Why LibreChat

Built for developers, teams, and enterprises who need control

{values.map((value) => { const Icon = value.icon return (
) })}
) } /* --------------------------------------------------------------------------- * Mission * --------------------------------------------------------------------------- */ function MissionSection() { return (

Our Mission

AI is transforming how we work, create, and communicate. But access to powerful AI tools shouldn't require vendor lock-in, opaque pricing, or surrendering your data.

LibreChat exists to democratize AI. We believe everyone should have a unified, customizable interface that works with any model provider — one they can self-host, audit, and extend without limits.

What started as a single developer's project has grown into a community of hundreds of contributors and thousands of organizations worldwide. From startups to Fortune 500 companies, universities to government agencies — LibreChat is the open-source foundation they build on.

) } /* --------------------------------------------------------------------------- * Contributors * --------------------------------------------------------------------------- */ function ContributorsSection() { return (

LibreChat exists thanks to every person who contributes code, documentation, translations, and ideas

{/* eslint-disable-next-line @next/next/no-img-element */} LibreChat contributors
) } /* --------------------------------------------------------------------------- * Community / Contact * --------------------------------------------------------------------------- */ const communityLinks = [ { icon: Github, title: 'GitHub Discussions', description: 'Ask questions, share ideas, report bugs', href: 'https://github.com/danny-avila/LibreChat/discussions', }, { icon: Discord, title: 'Discord', description: 'Chat with the community in real-time', href: 'https://discord.librechat.ai', }, { icon: Mail, title: 'Email', description: 'contact@librechat.ai', href: 'mailto:contact@librechat.ai', }, { icon: Linkedin, title: 'LinkedIn', description: 'Follow for updates and news', href: 'https://linkedin.librechat.ai', }, { icon: X, title: 'X (Twitter)', description: '@LibreChatAI', href: 'https://x.com/LibreChatAI', }, { icon: Youtube, title: 'YouTube', description: 'Tutorials and demos', href: 'https://www.youtube.com/@LibreChat', }, ] function CommunitySection() { return (

Get in Touch

Join the community or reach out directly

{communityLinks.map((link) => { const Icon = link.icon return (
{link.title} {link.description}
) })}
) } /* --------------------------------------------------------------------------- * License * --------------------------------------------------------------------------- */ function LicenseSection() { return (

LibreChat is released under the{' '} MIT License . Free to use, modify, and distribute.

) } /* --------------------------------------------------------------------------- * Sponsor CTA * --------------------------------------------------------------------------- */ function SponsorSection() { return (

Support the Project

LibreChat is maintained by a dedicated team and community of volunteers. Sponsorships help keep the project sustainable.

) } /* --------------------------------------------------------------------------- * Page * --------------------------------------------------------------------------- */ export default async function AboutPage() { const { stars, forks, contributors } = await getGitHubData() return (
) }