why

Most "alternatives" sites are listicles. They rank tools by popularity, not by whether they actually replace the paid product for a specific workflow. They don't tell you the license obligations. They don't tell you what doesn't work. They don't tell you how to install anything.

opencatalog.sh is the opposite: a field manual. Each paid product page is a switch map — a grid of workflows × alternatives, with every cell grounded in a source you can click. Each alternative page lists install paths, maturity signals, and known gaps. Every record carries a freshness timestamp and a verification badge.

trust model

Every load-bearing fact carries a basis: probed (we checked the source directly), cited (we read the documentation), or claimed (asserted without independent verification).

A record is verified only if its license is grounded, at least one install path is probed or cited, and load-bearing workflow facts are not merely claimed. The validator enforces this mechanically — bun run validate fails the build if a verified record has a claimed-only license.

Every record carries generatedAt. Maturity signals carry probedAt and a derived stale flag. Stale probes are visible on the page — we do not hide decay.

for agents

The entire catalog is available as a static JSON envelope at /api.json and as a JSON Schema document at /api.schema.json. Schema version: 0.1.0.

Agents can fetch the envelope, validate against the schema, and reason about FOSS alternatives without scraping HTML. The JSON and the HTML are generated from the same curated records — there is no separate API model.

what is not here yet

At launch, opencatalog.sh is a curated seed. There is no public contribution UI, no raw-feed normalizer, no community submission flow. Those are post-launch. The curated records in curated/ are hand-written against a Zod schema and validated in CI.

Source-available tools (non-OSI licenses) are modeled as excluded, not silently omitted. When the raw-feed pipeline ships, uncurated records will appear with a visible uncurated badge — never mixed into verified results.