API Reference

Comparison

A feature matrix — options (columns) × criteria (rows), with cells that are yes / no / partial or free text.

A Comparison is a feature matrix — options across the columns, criteria down the rows, and a cell at every intersection. A cell is a verdict (yes / no / partial) or free text. Humans read a tidy matrix with marks; the agent gets { kind:"comparison", options, criteria } where every cell is a typed verdict or text keyed by option id — never a rendered checkmark it has to recognise. So "which option supports X?" is a filter, not OCR.

Preview
superlore vs. a plain docs site
CriterionsuperlorePlain docsDocs + bolt-on MCP
MCP-native
Dual representation
Author once
Hostingyour Vercelyour Vercelyour Vercel

When to use it

Product comparisons, capability matrices, vendor evaluations, build-vs-buy tables. Because each cell is typed, an agent can answer "which options are partial on MCP-native?" directly from the data.

Props

Comparison

PropTypeDefaultDescription
optionsstring[]Column headers — the options compared
rows{ criterion, cells }[]One row per criterion
captionstringOptional caption; also the node title

Row{ criterion: string; cells: ComparisonCellInput[] }. Each cells array is positional: one entry per option, in options order. A cell is:

ValueRenders asIn the face
true{ verdict: "yes" }
false (or a missing cell){ verdict: "no" }
"partial"~{ verdict: "partial" }
any other stringthe text{ text: "…" }

What the agent sees

Options become ids; every cell is a typed verdict or text, keyed by option id — comparable without reading a glyph:

{
  "kind": "comparison",
  "id": "superlore-vs-a-plain-docs-site",
  "title": "superlore vs. a plain docs site",
  "options": [
    { "id": "superlore", "label": "superlore" },
    { "id": "plain-docs", "label": "Plain docs" },
    { "id": "docs-bolt-on-mcp", "label": "Docs + bolt-on MCP" }
  ],
  "criteria": [
    {
      "id": "mcp-native",
      "label": "MCP-native",
      "cells": {
        "superlore": { "verdict": "yes" },
        "plain-docs": { "verdict": "no" },
        "docs-bolt-on-mcp": { "verdict": "partial" }
      }
    },
    {
      "id": "dual-representation",
      "label": "Dual representation",
      "cells": {
        "superlore": { "verdict": "yes" },
        "plain-docs": { "verdict": "no" },
        "docs-bolt-on-mcp": { "verdict": "no" }
      }
    },
    {
      "id": "author-once",
      "label": "Author once",
      "cells": {
        "superlore": { "verdict": "yes" },
        "plain-docs": { "verdict": "yes" },
        "docs-bolt-on-mcp": { "verdict": "partial" }
      }
    },
    {
      "id": "hosting",
      "label": "Hosting",
      "cells": {
        "superlore": { "text": "your Vercel" },
        "plain-docs": { "text": "your Vercel" },
        "docs-bolt-on-mcp": { "text": "your Vercel" }
      }
    }
  ]
}

Cells keep their meaning

A partial is a real value, not a half-shaded glyph — the agent can rank options by how many criteria each fully meets, with no image interpretation.

On this page

Built withsuperlore