export const dynamic = 'force-dynamic'; import Link from "next/link"; import { pb, COUNTRY_LABELS, COUNTRY_FLAGS } from "@/lib/pb"; async function getStats() { try { const [kz, diplo, gesehen] = await Promise.all([ pb.collection("kennzeichen").getList(1, 1, { filter: "active=true" }), pb.collection("diplomatenkennzeichen").getList(1, 1), pb.collection("gesehen").getList(1, 1), ]); return { kennzeichen: kz.totalItems, diplomaten: diplo.totalItems, gesehen: gesehen.totalItems, }; } catch { return { kennzeichen: 0, diplomaten: 0, gesehen: 0 }; } } async function getLasteSeen() { try { return pb.collection("gesehen").getList(1, 5, { sort: "-datum" }); } catch { return null; } } export default async function Home() { const [stats, latest] = await Promise.all([getStats(), getLasteSeen()]); const countries = Object.entries(COUNTRY_LABELS).slice(0, 12); return (
{/* Hero */}
Open Data · Eigensammlung

Kennzeichen.
Gesammelt, dokumentiert,
geteilt.

Persönliche Datenbank europäischer Kfz-Kennzeichen — mit Sonderformen, Diplomatenkennzeichen und allem was sich nicht einfach einordnen lässt.

Datenbank → Blog lesen
{/* Stats */}
{[ { label: "Kennzeichen", value: stats.kennzeichen.toLocaleString("de") }, { label: "Diplomaten­kz.", value: stats.diplomaten.toLocaleString("de") }, { label: "Gesehen", value: stats.gesehen.toLocaleString("de") }, ].map((s) => (
{s.value}
{s.label}
))}
{/* Länder */}

Länder in der Datenbank

{countries.map(([key, label]) => ( {COUNTRY_FLAGS[key] ?? "🌍"} {label} ))} Alle anzeigen →
{/* Zuletzt gesehen */} {latest && latest.items.length > 0 && (

Zuletzt gesehen

{latest.items.map((item: any) => (
{item.kennzeichen_code && {item.kennzeichen_code}}
{item.kennzeichen_name || "—"} {COUNTRY_FLAGS[item.land] ?? ""}
{new Date(item.datum).toLocaleDateString("de-DE")}
))}
Gesamte Sammlung →
)}
); }