Skip to main content
Contributing

Contributor Repository Map

tscircuit is split across many focused repositories. This map helps you decide where to open an issue or pull request when you want to improve a specific part of the ecosystem.

If you are new to tscircuit, start with Getting Started as a Contributor first, then use this page to choose the right repository for your change.

Start Here

GoalBest repositoryGood first contribution type
Add or fix a schematic symboltscircuit/schematic-symbolsAdd missing symbols, fix pin labels, improve tests
Add or fix a PCB footprint generatortscircuit/footprinterAdd footprint strings, fix dimensions, add examples
Improve the local developer workflowtscircuit/cliFix command output, improve errors, add CLI options
Improve the website or online editortscircuit/tscircuit.comFix UI bugs, improve editor flows, polish onboarding
Fix circuit compilation behaviortscircuit/coreAdd failing tests, fix generated Circuit JSON, improve React component behavior
Update component prop definitionstscircuit/propsAdd prop types, clarify component APIs, improve validation
Improve generated SVG outputtscircuit/circuit-to-svgFix schematic or PCB SVG rendering, add visual fixtures
Improve the data format itselftscircuit/circuit-jsonClarify schemas, add fields, improve type coverage

Core Circuit Model

Use these repositories when your change affects how circuits are represented, compiled, or validated.

RepositoryOwnsChoose this repo when
tscircuit/coreReact-to-circuit compilation, component behavior, board generationA circuit compiles incorrectly, a React component produces wrong output, or generated schematics/PCBs are structurally wrong
tscircuit/propsPublic prop definitions for tscircuit componentsA component accepts the wrong props, a prop is missing, or API documentation generated from props is incomplete
tscircuit/circuit-jsonThe shared data format used between toolsThe schema needs a new field, a type is unclear, or multiple tools disagree about valid Circuit JSON

Core changes usually need tests that show the exact input circuit and expected Circuit JSON output. If you are unsure whether a bug belongs in core or circuit-json, start from core when the problem appears while writing tscircuit code.

Symbols, Footprints, and Electronic Parts

Use these repositories when your change improves how real electronic parts are described or rendered.

RepositoryOwnsChoose this repo when
tscircuit/schematic-symbolsReusable schematic symbolsA symbol is missing, visually wrong, mislabeled, or has incorrect pin order
tscircuit/footprinterText-based footprint generationA footprint string should generate pads differently, support a new package, or reject invalid dimensions
tscircuit/easyeda-converterConverting EasyEDA/JLCPCB data into tscircuit formatsImported JLCPCB or EasyEDA parts produce incorrect tscircuit output
tscircuit/kicad-component-converterConverting KiCad componentsKiCad symbols or footprints do not convert cleanly into tscircuit-compatible data
tscircuit/jlcsearchSearching JLCPCB parts and metadataSearch results, part metadata, or JLCPCB integration behavior is wrong

These are often the best repositories for first contributions because fixes can be verified with small visual fixtures and examples.

Rendering and Viewers

Use these repositories when the underlying circuit data is correct, but the preview or exported visual output is wrong.

RepositoryOwnsChoose this repo when
tscircuit/circuit-to-svgSVG generation for schematics and PCBsCircuit JSON is correct, but the generated SVG is misplaced, missing labels, or visually incorrect
tscircuit/pcb-viewerInteractive PCB viewing React componentsA PCB preview interaction, layer display, zoom, or rendered board view is wrong
tscircuit/3d-viewer3D board previewsThe 3D model, camera, rendering, or component placement in 3D is wrong
tscircuit/runframeEmbedded runnable tscircuit previewsA page or app needs to run and preview tscircuit code inside a React component

For rendering bugs, include a minimal Circuit JSON fixture or tscircuit snippet plus a screenshot of the expected and actual output.

User-Facing Tools

Use these repositories when your change affects how users create, edit, preview, or share circuits.

RepositoryOwnsChoose this repo when
tscircuit/cliLocal commands such as project creation, development server, and package workflowsA local command fails, output is confusing, or project setup needs improvement
tscircuit/tscircuit.comMain website, online editor, dashboard, and hosted user experienceA website flow, editor interaction, account page, or hosted circuit experience needs work
tscircuit/runframeEmbeddable runtime preview frameA docs page, website, or external app needs a live tscircuit preview

If a bug appears both locally and on the website, check whether the same circuit fails in the CLI. If it does, the root cause is often in core, props, or a renderer. If it only fails on the website, start with tscircuit.com.

Importers, Exporters, and Autorouting

Use these repositories when your change is about moving between tscircuit and other electronics formats or tools.

RepositoryOwnsChoose this repo when
tscircuit/dsn-converterDSN format conversionDSN import or export output is wrong
tscircuit/easyeda-converterEasyEDA and JLCPCB conversionEasyEDA/JLCPCB source data converts incorrectly
tscircuit/kicad-component-converterKiCad conversionKiCad component data does not map correctly into tscircuit
tscircuit/autoroutingRouting algorithms and route generation experimentsTraces are routed poorly, a routing fixture fails, or an autorouter behavior needs improvement

Converter issues are easiest to review when the pull request includes the source file, the current converted output, and the expected converted output.

How to Choose the Right Repository

  1. Reproduce the problem with the smallest possible circuit or input file.
  2. Decide whether the issue is data, behavior, visual output, or user interface.
  3. Use the tables above to pick the repository that owns that layer.
  4. Search existing issues in that repository before opening a new one.
  5. Include a minimal reproduction, screenshots when visual, and the expected behavior.

When in doubt, open the issue where the problem first becomes visible to users and mention any lower-level repository you suspect. Maintainers can move the discussion, but a clear reproduction makes the report useful immediately.