# Overview

OrbSearch is open-source search and discovery for commerce. Meilisearch retrieves; OrbSearch understands the query, applies the merchant's rules and explains every result.

## Build a storefront

Search, filters and product pages in React.

- [Your storefront](/docs/your-storefront)
- [Customize](/docs/customize)
- [Search and browse](/docs/search)

## Run it yourself

One machine, Docker Compose, your catalog.

- [Self-hosting](/docs/self-hosting)
- [Importing and mapping](/docs/importing)
- [Status](/docs/status)

## Shape results

Synonyms, pins and facets, published as a release.

- [Synonyms](/docs/synonyms)
- [Rules](/docs/rules)
- [Releases](/docs/releases)

## Connect an agent

Every page as Markdown, every endpoint in OpenAPI.

- [Agents](/docs/agents)
- [Management API](/docs/reference/management-api)
- [llms.txt](/docs/llms.txt)

## One search, and why

"graues Sofa" (grey sofa) names a category and a color. The answer says what OrbSearch understood, and its trace says why.

[Run it in the quickstart](/docs/quickstart)

```sh title="Terminal"
curl -s 'http://127.0.0.1:7800/v1/search?query=graues%20Sofa&debug=1' | jq '{
  resolution: .resolution | {category, filters},
  trace: [.trace.steps[].detections[]? | {(.words): .entry}] | add
}'
```

```json title="Answer: 200 · 6.9 ms · release b25a6aaa"
{
  "resolution": {
    "category": "wohnen/sofas",
    "filters": {
      "color": "grey"
    }
  },
  "trace": {
    "Sofa": "the title \"Sofas\" of the category wohnen/sofas",
    "graues": "the label \"Grau\" of the color grey"
  }
}
```
