Overview of Projects
tscircuit is split into many small packages and apps. Use this page to pick the right repository before opening an issue or pull request.
Where to Start
- New contributors should start with tscircuit/schematic-symbols, tscircuit/footprinter, or tscircuit/docs.
- UI contributors should look at tscircuit/tscircuit.com, tscircuit/runframe, tscircuit/pcb-viewer, or tscircuit/3d-viewer.
- Compiler and library contributors should look at tscircuit/core, tscircuit/circuit-json, tscircuit/props, or tscircuit/circuit-to-svg.
- Converter and automation contributors should look at the CLI and converter repositories listed below.
Core Libraries
| Repo | What it owns | Good contributions | Open issues |
|---|---|---|---|
| tscircuit/core | Converts React components into Circuit JSON, schematics, and PCBs | Element behavior, layout logic, bug fixes with tests | |
| tscircuit/circuit-json | Shared data format for circuits, boards, schematic elements, and manufacturing outputs | Schema changes, validation, type coverage | |
| tscircuit/props | TypeScript prop definitions for tscircuit React elements | Prop documentation, type fixes, new element props | |
| tscircuit/circuit-to-svg | Renders Circuit JSON as schematic and PCB SVGs | Snapshot fixes, renderer bugs, visual output improvements |
Developer Tools
| Repo | What it owns | Good contributions | Open issues |
|---|---|---|---|
| tscircuit/cli | The tsci command line tool for local development, package workflows, and exports | Command bugs, better errors, build and export workflows | |
| tscircuit/docs | Documentation, tutorials, guides, and API references | Missing docs, clearer examples, contribution guides | |
| tscircuit/autorouting | Autorouting algorithms, datasets, and benchmark problems | Routing algorithms, regression cases, benchmark improvements | |
| tscircuit/contribution-tracker | Tracks and summarizes tscircuit contributions and sponsorship signals | Scoring logic, contribution summaries, dashboard data fixes |
Web Apps and Viewers
| Repo | What it owns | Good contributions | Open issues |
|---|---|---|---|
| tscircuit/tscircuit.com | Main website, online editor, account flows, and package pages | Editor bugs, UI polish, dashboard workflows | |
| tscircuit/runframe | Embeddable React runtime for previewing and running tscircuit code | Preview bugs, iframe/runtime behavior, editor integration | |
| tscircuit/pcb-viewer | React PCB viewer used in docs, apps, and previews | PCB interaction bugs, rendering issues, viewer performance | |
| tscircuit/3d-viewer | 3D board and component previews | Model loading, camera behavior, 3D rendering performance | |
| tscircuit/autorouting.com | Web interface for autorouting experiments and debugging | Route visualization, job status UX, integration fixes |
Component Libraries and Converters
| Repo | What it owns | Good contributions | Open issues |
|---|---|---|---|
| tscircuit/schematic-symbols | Reusable schematic symbols | Add missing symbols, fix symbol metadata, improve examples | |
| tscircuit/footprinter | Generates PCB footprint strings and footprint geometry | Add missing footprints, parser fixes, snapshot coverage | |
| tscircuit/easyeda-converter | Converts EasyEDA and JLCPCB data into tscircuit-compatible output | Import bugs, footprint conversion, component mapping | |
| tscircuit/kicad-converter | Converts KiCad data for use in tscircuit workflows | KiCad import/export fixes, library conversion coverage | |
| tscircuit/eagle-xml-converter | Converts Eagle XML files for tscircuit-compatible workflows | Eagle import coverage, converter bugs, fixture tests | |
| tscircuit/dsn-converter | Converts Specctra DSN files into Circuit JSON | DSN parsing, autorouter import/export compatibility |
Choosing the Right Repo
| If you want to work on... | Start here |
|---|---|
| A broken or missing React element | tscircuit/core or tscircuit/props |
| Schematic or PCB SVG output | tscircuit/circuit-to-svg |
| The online editor or package pages | tscircuit/tscircuit.com |
Local commands like tsci dev, tsci build, or tsci export | tscircuit/cli |
| Embedded previews inside docs or external sites | tscircuit/runframe |
| PCB rendering or interaction | tscircuit/pcb-viewer |
| 3D rendering or model loading | tscircuit/3d-viewer |
| Autorouting experiments and route debugging | tscircuit/autorouting.com |
| Footprints and symbols | tscircuit/footprinter or tscircuit/schematic-symbols |
| Importing parts from EasyEDA, JLCPCB, or KiCad | tscircuit/easyeda-converter or tscircuit/kicad-converter |