> ## 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.

# Component Platforms

> Developer documentation for the Trace Symbols and Trace Footprints platforms — browse, search, generate, contribute, and integrate EDA component libraries.

Trace runs two public component platforms that share one backend, one auth system, and
one database — but serve different halves of an EDA component:

<CardGroup cols={2}>
  <Card title="Trace Symbols" icon="diagram-project" href="/platforms/symbols/overview">
    **symbols.buildwithtrace.com** — 30,000+ schematic symbols across 251 libraries.
    Browse, search, copy/download `.kicad_sym`, generate with AI, and contribute.
  </Card>

  <Card title="Trace Footprints" icon="microchip" href="/platforms/footprints/overview">
    **footprints.buildwithtrace.com** — \~24,690 PCB footprints across \~214 libraries
    (Trace + CERN). Browse by library, copy/download `.kicad_mod`, generate with AI.
  </Card>
</CardGroup>

## What they have in common

Both are **thin Next.js 16 clients**. They hold no AI logic, model prompts, or layout
engines — every generation, save, contribution, comment, and rating request is proxied to
the Trace backend at `https://api.buildwithtrace.com`. Browsing and search are served from
pre-built static JSON indexes committed into each repo.

<CardGroup cols={3}>
  <Card title="Architecture" icon="sitemap" href="/platforms/architecture">
    Thin-client proxy model, the shared `generated_components` table, and where each
    responsibility lives.
  </Card>

  <Card title="Authentication" icon="lock" href="/platforms/authentication">
    Shared Trace JWT auth — token storage, login, refresh, and `fetchWithAuth`.
  </Card>

  <Card title="Data pipeline" icon="database" href="/platforms/data-pipeline">
    The offline Python sync + indexers that build the catalog JSON.
  </Card>

  <Card title="Deployment" icon="cloud" href="/platforms/deployment">
    Environment variables, standalone output, domains, and security headers.
  </Card>
</CardGroup>

## How they differ

|                      | Trace Symbols                            | Trace Footprints                        |
| -------------------- | ---------------------------------------- | --------------------------------------- |
| Unit                 | Schematic **symbol** (pins)              | PCB **footprint** (pads)                |
| File format          | `.kicad_sym`                             | `.kicad_mod`                            |
| Organized by         | Library **and** category                 | Library only (no categories)            |
| Sources              | Trace + CERN symbols                     | Trace + CERN footprints                 |
| Static index         | `data/symbols_index.json`                | `data/footprints_index.json`            |
| Generation endpoint  | `/api/v3/components/generate/symbol`     | `/api/v3/components/generate/footprint` |
| Contribution accepts | `.kicad_sym` (+ `.kicad_mod`, `.SchDoc`) | `.kicad_mod` only                       |
| Saved-items route    | `/my-symbols`                            | `/my-footprints`                        |

<Info>
  Both platforms write to the **same** Supabase table, `public.generated_components`,
  distinguished by a `type` column (`"symbol"` | `"footprint"`). There is no separate
  footprints database and no migration is required to run either site.
</Info>

## Tech stack

Next.js 16 (App Router) · React 19 · TypeScript · Tailwind CSS v4 · standalone output.
Server Components + Client Components + API route handlers under `src/app/api/`.
