import Link from "next/link"; import { homeData } from "@/lib/public/queries"; import { SearchBox } from "@/components/search-box"; import { ToolCard } from "@/components/tool-card"; import { fmtDate } from "@/lib/utils"; import { ArrowRight, Sparkles, ShieldCheck, Layers, BookMarked } from "lucide-react"; export const revalidate = 300; const PATHS = [ { href: "/tools?exec=local&category=ai", title: "Run AI locally", text: "Inference engines and model tooling that work on Apple Silicon and your own servers." }, { href: "/tools?category=research", title: "Write and publish research", text: "Discovery, references, LaTeX, reproducible documents and dissemination." }, { href: "/tools?category=market-data-apis&category=sec-filings&category=hf-finance-research", title: "Financial data for research", text: "Market data, fundamentals, filings and the engines that process them." }, { href: "/tools?source=open-source&selfhost=1", title: "Self-host everything", text: "Open-source infrastructure you can run on your own hardware." }, ]; export default async function Home() { const { stats, featured, recent, tree, collections } = await homeData().catch(() => ({ stats: { tools: 0, deep: 0, categories: 0, vendors: 0, collections: 0, lastVerified: null }, featured: [], recent: [], tree: [], collections: [] })); return ( <>

Tool Atlas · curated, cited, verified

An encyclopedia of the software, AI systems and research tools that matter.

Every entry is written from primary sources, states its license and pricing model without guesswork, lists real limitations, and shows when its links were last checked.

{[["Tools", stats.tools], ["In-depth entries", stats.deep], ["Categories", stats.categories], ["Collections", stats.collections]].map(([k, v]) => (
{k}
{v as number}
))}

Browse

By discipline

All categories
{tree.map((c) => (

{c.name}

{c.count}

{c.description}

{c.children.slice(0, 4).map((x) => x.name).join(" · ")}

))}
{featured.length > 0 && (

Featured

Editor's selection

All in-depth entries
{featured.map((t) => )}
)}

Discovery paths

Start from a goal

{PATHS.map((p) =>

{p.title}

{p.text}

)}
{collections.length > 0 && (

Collections

Curated stacks

All collections
{collections.slice(0, 6).map((c) => (

{c.title}

{c.description}

{c.count} tools · {c.preview.map((p) => p.name).join(", ")}

))}
)} {recent.length > 0 && (

Recently verified

Links checked {stats.lastVerified ? fmtDate(stats.lastVerified) : "soon"}

{recent.map((t) => )}
)} ); }