> ## Documentation Index
> Fetch the complete documentation index at: https://docs.buildwithtrace.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Trace Symbols

> Overview of the Trace Symbols platform — routes, the Symbol/Pin data model, categories, and how the pieces fit together.

**symbols.buildwithtrace.com** is a catalog, distribution hub, and community platform for
EDA **schematic symbols** — 30,943 symbols across 251 libraries (Trace + CERN). It is a
[thin client](/platforms/architecture): browsing is served from a committed JSON index, and
generation/persistence is proxied to the Trace backend.

## Routes

| Route                      | Type   | Purpose                                             |
| -------------------------- | ------ | --------------------------------------------------- |
| `/`                        | Server | Hero, search, stats, category grid, popular symbols |
| `/browse`                  | Client | Search + category filter over all symbols           |
| `/browse/[library]`        | Server | All symbols in one library                          |
| `/symbol/[id]`             | Server | Symbol detail: preview, pin table, copy/download    |
| `/generate`                | Client | AI symbol generator (auth)                          |
| `/contribute`              | Server | Upload + submit a `.kicad_sym`                      |
| `/community`               | Client | Community-shared generated symbols                  |
| `/my-symbols`              | Client | A user's saved symbols (auth)                       |
| `/login`, `/auth/callback` | —      | Shared Trace auth                                   |

## Data model

```ts theme={null}
interface Pin {
  number: string;
  name: string;
  type: "input" | "output" | "bidirectional" | "power_in" | "power_out"
      | "passive" | "tri_state" | "unspecified" | "open_collector"
      | "open_emitter" | "no_connect";
  description?: string;
}

interface Symbol {
  id: string;            // "Library:Name"
  name: string;
  library: string;
  category: string;
  description: string;
  keywords: string[];
  pins: Pin[];
  pinCount: number;
  datasheet?: string | null;
  footprint?: string | null;     // the symbol's mapped footprint name
  source?: "trace" | "CERN";
  package?: string;
  manufacturer?: string;
}
```

<Info>
  `footprint` and `footprint_filters` on a Symbol are **symbol metadata** (which PCB
  footprint(s) the symbol maps to) — not the same thing as the
  [Footprints platform](/platforms/footprints/overview).
</Info>

## Categories

Symbols are classified into \~16 categories (`power`, `mcu`, `analog`, `passive`,
`connector`, `logic`, `communication`, `sensor`, `display`, `ic`, `rf`, `memory`,
`battery`, …). For display, `power_symbol`, `graphical`, and `mechanical` are merged into
**"other"**, and the `other` filter expands back to all three on the server. Counts come
from `/api/categories` at runtime.

## Where to go next

<CardGroup cols={2}>
  <Card title="Browse & Search" icon="magnifying-glass" href="/platforms/symbols/browse-and-search" />

  <Card title="Generate" icon="wand-magic-sparkles" href="/platforms/symbols/generate" />

  <Card title="Contribute" icon="code-pull-request" href="/platforms/symbols/contribute" />

  <Card title="Clipboard & Download" icon="clipboard" href="/platforms/symbols/clipboard-and-download" />

  <Card title="Saved & Community" icon="users" href="/platforms/symbols/saved-and-community" />

  <Card title="API Reference" icon="code" href="/platforms/symbols/api-reference" />

  <Card title="Data Layer" icon="layer-group" href="/platforms/symbols/data-layer" />
</CardGroup>
