import Link from "next/link"; import { speakers, speakerGroupLabels, speakerGroupOrder, type SpeakerGroup, } from "@/content/people"; import { site } from "@/content/site"; import { Section } from "@/components/layout/Section"; import { SpeakerCard } from "@/components/speakers/SpeakerCard"; import { Button } from "@/components/ui/button"; export function Speakers() { const grouped = speakerGroupOrder.reduce( (acc, group) => { const list = speakers.filter((s) => s.group === group); if (list.length) acc[group] = list; return acc; }, {} as Partial> ); return (

Lineup

Meet the voices of GRV Summit

Keynotes, panelists, judges, and opening speakers — {site.dates.label} at{" "} {site.venue.name}.

{(Object.entries(grouped) as [SpeakerGroup, typeof speakers][]).map( ([group, list]) => (

{speakerGroupLabels[group]}

{site.dates.label}

{list.map((speaker) => ( ))}
) )}
); }