import Link from "next/link"; import { LiveFeed } from "@/components/live-feed"; import { LiveStrip } from "@/components/live-strip"; import { CoverageRail } from "@/components/coverage-rail"; import { AnomalyRail, BreakingRail, ClustersPanel, SilentRail, TrendingPanel } from "@/components/rail"; import { EventRow } from "@/components/event-row"; import { Empty, Panel } from "@/components/ui"; import { api } from "@/lib/api"; import { agoIso } from "@/lib/format"; export const dynamic = "force-dynamic"; /** * Homepage (spec §64, §94): hero line · live system strip · live feed · right rail (breaking now, * trending, anomalous) · lower area (clusters, silent changes, infrastructure pulse). One coherent * data surface; the product sells the product. */ export default async function HomePage() { const [stats, events, trending, clusters, breaking, explore, infra] = await Promise.all([ api.stats(), api.events({ limit: 60 }), api.trending(24, 10), api.clusters(30, 48), api.breakingDesk(), api.explore(), api.events({ limit: 8, group: "reliability", after: agoIso(12 * 3600e3) }), ]); return ( <>

The Web is changing. We are watching.

WebSensor continuously watches the public web for meaningful changes, preserving evidence and connecting signals into real-world events.

live →}> {infra.items.length ? infra.items.slice(0, 6).map((e) => ) : No outage, incident or maintenance signal in the last 12 h.}
); }