soldermaskdocs

Exports and files

Everything a fab, an assembler, KiCad or a colleague needs is a file in the version directory, and every file is one click from the History tab or one request from the API.

DownloadWhat it is
gerbers.zipThe fab files only: Gerbers, drill, BOM and CPL. Nothing the app itself needs, so it is safe to send as-is.
standalone.htmlThe whole workbench with this board's data and 3D models inlined. Opens from a file with no server and no network beyond the CDN-hosted three.js and fonts. Chat and history are off in it.
<board>.kicad_pcbA KiCad board file you can open and edit; footprints point at models/<lcsc>.wrl next to it so KiCad's renderer draws the same parts.
<board>.kicad_schThe schematic, in KiCad 7's format (7, 8, 9 and 10 open it): every part as KiCad's own symbol with its LCSC code as a hidden field, power ports, net labels, wires and junctions, laid out as the workbench draws it. KiCad's netlist of it is the design's, net for net, and its ERC finds no errors — checked by kicad-cli on every project in the tree. See KiCad and 3D models.
<board>-F_Cu.gtl …Individual layers; see Fab files for the full list and what is in each.
<board>-BOM.csv, <board>-CPL.csvJLCPCB's assembly formats.
board.svgThe readable preview also used as the project thumbnail.
design.jsonThe model's design — what it asked for, before parts were resolved. Import it elsewhere to rebuild the board without a model.
board.jsonEverything the viewer draws: resolved parts with pad geometry, nets with pin functions, copper, vias, ERC, stock, generation metadata. See board.json.
meshes.json, models/*.wrlThe vendor 3D models for the parts on this board.

Files are served with a day of caching because a version never changes. Add ?dl=1 to force a download of anything the browser would otherwise display (SVG, JSON, HTML).

The whole project

Everything above is one version's files. The project itself — every version, the draft you have not built yet, the conversation, the labels, the notes and the saved variations — leaves as one zip and comes back as one project.

Where
ExportExport .zip on the disc of the home page, or Export project (.zip) at the top of the workbench's History tab. GET /api/projects/<slug>/export.zip; add ?chat=0 to leave the conversation out for a board that is going to someone else — the versions still carry the prompt that made each of them.
ImportOpen a file on the projects page, or drop the zip anywhere on it. The name field, if filled, renames the project on the way in; a slug already in use takes a suffix, the way two projects with one name always have. POST /api/projects/import.

The bundle is the project directory as it lies on disk (see Projects on disk), so unzip into projects/ is also an import and a directory zipped by hand is also a bundle — the wrapper folder and the desktop's __MACOSX/.DS_Store are set aside. What stays behind is the machine's own scratch: the .work directory the pipeline builds in and a proposal nobody has accepted.

Measured on 15 Sep 2026 on this machine: a 12-version project (21.7 MB unpacked, 326 files) exports as a 6.8 MB zip in 547 ms and imports in 71 ms; a 4-version one is 4.2 MB. The inspector and the 3D models are most of it. The route accepts up to 256 MB where the rest of the API stops at 8 MB.

A zip that is not a project is refused with the member or field it stopped at — a path outside the layout, a version the table names that the zip lacks (or the reverse), a board.json that is not JSON — and nothing is written: the zip is read in full first, unpacked beside the projects, and renamed into place only when it all held. A project written by a newer soldermask is refused as such (409), the same as opening one.

A design.json keeps its constraints. An exported design.json carries the pins, sides and rules of the version it came from. Imported into a project with nothing of its own in force, that block is kept and the reply says so (Kept the file's constraints: 1 pinned part, rules router=krt); imported into a project that already has its own, the project's are built to and the reply says the file's were set aside. Before 15 Sep 2026 the block was dropped silently either way and the board came back re-placed from scratch.

Before you order

Read Details → Not guaranteed and What is not guaranteed. The Gerbers are verified by reading them back with an independent library and the KiCad file is checked against the placement, but a footprint borrowed from a vendor, a pinout borrowed from a part family, or a part the model said it was unsure of is reported there and nowhere else.

On this page