adom-instapcb-quote
Generate InstaPCB draft quotes from gerbers + BOMs. Drop a customer's production-files zip in, get back a fully-priced, review-ready quote that plugs straight into the InstaPCB pricing calculator.
What it does
- Parses gerbers for board dimensions, layer count, SMT pad count (paste preferred, mask fallback with a review flag), and through-hole drill count. KiCad, Altium, and JLCPCB naming all supported.
- Parses BOMs format-agnostically (CSV/TSV/XLSX). Heuristic header detection + regex column mapping โ recognizes MPN, Qty, Refs, Mfr, Value, Footprint, Fitted, plus JLCPCB's
LCSCandCommentcolumns. - Classifies Adom internal parts โ rows with footprint
ADOM_MEDIUM_PINorADOM_MEDIUM_CONTACTget hardcoded prices ($0.20/pin, $0.05/contact), no feeder fee (through-hole mechanical). - Matches Adom-basic house parts against the team's shared reel catalog โ exact MPN first, then characteristic match (LED color+package, resistor value+package, cap value+package+material).
- Resolves LCSC โ MPN via
adom-jlcpcbfor rows that came in as JLCPCB codes. - Prices on Mouser via
adom-mouser. OOS or no-exact-match triggers a substitution search using the JLCPCB description (sanitized for Mouser's ASCII-only query API). - Classifies mount type per row (TH / SMT pre-loaded / SMT + feeder) so the feeder fee is accurate.
- Cross-checks pad counts โ BOM-derived (sum of pads_per_footprint ร refs) vs gerber-derived (paste or mask flashes). Deltas > 5 flag for review.
- Outputs calculator-ready JSON โ plugs into the InstaPCB pricing calculator via postMessage, or via copy-to-clipboard.
Architecture
any user container service-instapcb-quote
โโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ
adom-instapcb-quote build file.zip โโ
adom-instapcb-quote app โโผโโโถ HTTP /api/upload (port 8820)
adom-instapcb-quote health โโ + review UI + embedded calculator
+ shell-outs to adom-mouser / adom-jlcpcb
+ pipeline cache (LCSC + Mouser)
+ 2-min watchdog cron
โ
โผ
https://instapcb-quote-9bhgpbf2ck18.adom.cloud
Shared service URL: https://instapcb-quote-9bhgpbf2ck18.adom.cloud
The service runs on a dedicated default-light container; any Adom container can hit the public URL to generate a quote without installing anything locally. The watchdog cron self-updates from origin/main every 2 min, so pushing to main auto-deploys.
Install
git clone https://github.com/adom-inc/adom-instapcb-quote.git ~/apps/adom-instapcb-quote
cd ~/apps/adom-instapcb-quote && npm install
sudo ln -sf "$PWD/bin/adom-instapcb-quote" /usr/local/bin/adom-instapcb-quote
adom-instapcb-quote install
This installs the CLI, deploys ~/.claude/skills/adom-instapcb-quote/SKILL.md + ~/.claude/skills/adom-instapcb-quote-build/SKILL.md, and registers bash completions.
Use
# Open the webview tab
adom-instapcb-quote app
# Headless โ run the pipeline on files, get JSON
adom-instapcb-quote build gerbers.zip bom.csv --qty 10 --output quote.json
# Check a fixture
adom-instapcb-quote fixtures
adom-instapcb-quote build test/fixtures/Molecule_WS2812B_v1/*.zip test/fixtures/Molecule_WS2812B_v1/*.csv --mode cache
# Health check (local + shared service)
adom-instapcb-quote health
Source
Source at adom-inc/adom-instapcb-quote (private).
Built following the canonical adom-app-model: single private repo for both client + service code, shared service on its own default-light container, Tier B distribution โ install on demand from the wiki when a trigger phrase matches.