Skip to content
The demo directory's home page — a search box, category chips and the first listings.

ZeroDirs

A directory site you finish in an afternoon and host for $0. Astro + Cloudflare Workers, source you own.

Every page of a ZeroDirs directory is rendered to a file at build time. There is no server rendering a listing page, no database read on the way to a visitor, and nothing to page you at 3am. On the demo dataset, 145 listings become 433 pages in about two seconds — 211 of those pages are programmatic SEO, and the build fails if any listing ends up with fewer than two inbound internal links.

Cloudflare serves those files from its asset layer without invoking a Worker, so traffic to a ZeroDirs site does not spend the Workers request quota. A Worker rides along for the handful of routes that need code — the submission form, the review queue, the Stripe webhook — and none of them is switched on until you switch it on.

Zero JavaScript, enforced

Every page but /search/ ships no client JavaScript at all — not “very little”, none. A build integration fails the build on an unexpected island or a <script src>, so the claim survives you changing the templates.

1.00 Lighthouse performance

Desktop and mobile, on all nine audited templates. pnpm lhci re-runs that audit against your own pages and your own data, so it is a claim you can re-verify after replacing everything in the site.

$0/month until roughly 3,500 listings

The ceiling is Cloudflare’s 20,000 static files per version, not bandwidth and not requests. Every build prints where you stand against it.

Built for agents

An AGENTS.md with machine-checked hard rules, a skill for each job you repeat, and this whole site available as llms.txt or one prompt per page.

/docs/llms.txt is the index, /docs/llms-full.txt is every page in one file, and /docs/llms-small.txt is the same with the code blocks stripped. Every page also has a Copy as prompt button that puts that one page on your clipboard framed as a task, and a Markdown link next to it that is the same text at a stable URL, fetchable without a browser.