Skip to content
OneLessTool

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.