Data model
OneLessTool is a capability graph, not a list of alternatives:
Tool ──< Plan (price, unit, billing, evidence)
└──< ToolCapability ── Capability (synonyms, outcomes, key dimensions)
fit · scores(1–5) · skill · plans · limitations · evidence
Workflow ── replaces Tool(s) · requires Tool(s) · covers Capability(ies)
steps · prompts · artifacts · risks · verification checklist · savings methodology
The canonical schema lives in src/lib/schema.ts (Zod) and the generated JSON Schemas are in the OpenAPI spec under components.schemas.
<a id="evidence"></a>
Evidence
verified— Checked against the cited primary source (usually the vendor's own page) on verifiedAt.editorial— OneLessTool's reasoned judgement (e.g. quality scores, fit). Not a vendor claim.estimate— A calculated or approximate figure; the methodology is stated alongside it.illustrative— An example scenario, not a measurement.ai_suggested— Generated by an AI model and not yet reviewed by a human.unverified— Believed accurate but not checked against a primary source recently.
verified requires at least one source URL and a verifiedAt date (enforced at build time). verifiedBy records whether a person (human:<name>) or an agent (agent:<id>) checked it.
Fit
native— A core, first-class feature of the product.strong— Handles it well, though it isn't the product's focus.partial— Covers common cases with notable gaps.workaround— Possible with effort; expect friction.
Scale
Records are one JSON file each under content/, compiled into a single bundle at build time. The engine is index-based (maps by slug, inverted search index), so thousands of tools and tens of thousands of capability mappings don't need an architectural change; past ~10k records the bundle can move to D1/Postgres behind the same Catalog interface.