spb/llmindex Public
The discriminative, contamination-resistant, fully transparent LLM ranking — updated live.
TypeScript 77.9%
TeX 15.2%
Python 3.7%
SQL 1.4%
JavaScript 1.1%
Shell 0.5%
1/**2 * llmindex.io — home: hero + live global leaderboard + efficiency frontier3 * Author: Simon-Pierre Boucher4 * Contact: contact@spboucher.ai5 * License: Proprietary — © Simon-Pierre Boucher, all rights reserved6 */7import Link from 'next/link';8import { DOMAINS, INDEX_VERSION } from '@llmindex/scoring';9import { LiveLeaderboard, type ApiEntry, type ApiRun } from '@/components/LiveLeaderboard';10import { EfficiencyLive, HomeStats, type EffPoint } from '@/components/EfficiencyLive';11import { getEfficiencyData, getLeaderboard } from '@/lib/data';1213export const revalidate = 300;1415export default async function HomePage() {16 const [data, efficiency] = await Promise.all([getLeaderboard('global'), getEfficiencyData()]);1718 const initialRun: ApiRun | null = data19 ? {20 id: data.run.id,21 kind: data.run.kind,22 status: data.run.status,23 created_at: new Date(data.run.createdAt).toISOString(),24 notes: data.run.notes,25 }26 : null;27 const initialEntries: ApiEntry[] = (data?.entries ?? []).map((e) => ({28 rank: e.rank,29 model: e.slug,30 name: e.name,31 provider: e.provider,32 score: e.score,33 score_low: e.scoreLow,34 score_high: e.scoreHigh,35 }));36 const initialEfficiency: EffPoint[] = efficiency.map((p) => ({37 model: p.slug,38 name: p.name,39 score: p.score,40 cost_per_1k_items: p.costPer1kItems,41 on_frontier: p.onFrontier,42 }));4344 return (45 <div className="space-y-10 sm:space-y-14">46 <section className="space-y-4">47 <h1 className="max-w-3xl text-3xl font-bold leading-tight tracking-tight text-zinc-900 sm:text-4xl">48 The{' '}49 <span className="bg-gradient-to-r from-emerald-600 to-cyan-500 bg-clip-text text-transparent">50 discriminative51 </span>{' '}52 LLM index53 </h1>54 <p className="max-w-3xl text-sm leading-relaxed text-zinc-600 sm:text-base">55 IRT-scored, contamination-resistant rankings on dynamically generated items — with56 confidence intervals, consistency, calibration, and an efficiency frontier. No saturated57 benchmarks, no leaked test sets. Results stream in live as each model finishes its58 evaluation.59 </p>60 <HomeStats61 initialCount={initialEntries.length}62 domains={DOMAINS.length}63 version={INDEX_VERSION}64 />65 <div className="flex flex-wrap gap-2 pt-1">66 {DOMAINS.map((d) => (67 <Link68 key={d}69 href={`/leaderboard/${d}`}70 className="rounded-full border border-zinc-300 px-3 py-1 text-xs capitalize text-zinc-700 transition-colors hover:border-emerald-400 hover:text-emerald-600"71 >72 {d.replaceAll('_', ' ')}73 </Link>74 ))}75 </div>76 </section>7778 <section>79 <LiveLeaderboard80 initialRun={initialRun}81 initialEntries={initialEntries}82 indexVersion={data?.run.indexVersion ?? INDEX_VERSION}83 />84 </section>8586 <EfficiencyLive initial={initialEfficiency} />87 </div>88 );89}90