frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: KiCad in the Browser

https://demo.pcbjam.com/
24•ViktorEE•2h ago
KiCad, a PCB EDA suite is now working in a browser, you can try it at the link, there's a demo project or you can bring your own. Firefox is best, Chrome is good, Safari is "working".

We’re Emergence Engineering, a dev shop from Hungary, mostly working with rich text editors, CRDTs. PCBJam started as my (Viktor, CTO, ex-electrical engineer) hobby project but as time went on I put more and more energy into it, and a product started shaping up in my head, in the last few months we’ve started to focus on this project a bit more, and this is the first MVP~ish result.

This project is a ton of fun, ton of learning, ton of improvements over improvements:

- I thought there must be ways to emulate the PCB canvas OpenGL code on the web. And yes, there are a lot of ways, all of them very buggy. Turns out it’s faster to just write WebGL code that works with KiCad’s Graphics Abstraction Layer if you add the right intermediate debugging steps. I (with Claude) implemented the features and compared them to native at every step, then the app loaded up the first time and just worked. I spent weeks hunting weird emulation bugs before that.

- There was an old wxWidgets web port as a starting point that helped a lot, bringing it up to the level KiCad needed is a long (and still ongoing) task. Thanks ahilss!

- Pthreads on the web: with Emscripten it’s possible to port multithreaded apps (used by DRC, software 3D renderer). A lot of Emscripten features (Asyncify, Pthreads, native exceptions) are in a war with each other, but it’s possible.

- Asyncify with native exceptions: Asyncify (used to make the WASM code suspend then call into the JS land, emulating blocking C++ calls by rewriting the WASM directly) is not compatible with native exceptions, even on the latest Binaryen version it can’t suspend inside catch arms. If you write a new Binaryen pass then it can, making the bundle 30-40% smaller and the app load in a second instead of 10.

- Optimizing bundle size is a fun game. We just moved Open CASCADE into a separate lazy-loaded WASM module, moving from 180 to 130 MB (24 MB brotli), still on -O1. -O2 / -Oz etc will be more work than it looks.

And a ton more problems like these above on a daily basis.

A few months ago I had a barely loading laggy pcbnew that crashed when you looked at it wrong, now we have the whole application working. I should say with quite a few bugs still, but now it feels pretty close to native.

There’s a lot of built up knowledge / code that we want to release as blogposts, mainline our changes to Binaryen / KiCad / wxWidgets, but I want to focus on the release first. Our wxWidgets port is quite close to the core, the KiCad is ~150 changed core files (mostly build scripts, some code changes too). The goal is to keep as close to the mainline as possible, and merge eventually.

We’ll have a free tier for sure and something around $30/mo for bigger/closed projects, optional paid AI integration / self hosting / enterprise features / native & mobile version down the line.

The goal is to build a product on top of KiCad (collaboration, AI integration, sharing, integrations), kind of like what Red Hat did with Linux back then. We’re heads down making it functional and have the first version up in a ~month or so.

And of course we’re standing on the shoulders of the people who made KiCad & wxWidgets and we want to give back and contribute as much as possible, if you have an idea on how to do that best let me know, I released a few moderately successful open source projects, but I’ve never been a contributor. All of the front-end code is GPL (it has to be) and you can run this project if you want.

You can find the sources at: https://github.com/emergence-engineering/pcbjam.

Our company site is at: https://emergence-engineering.com/

Our crappy LP is at: https://www.pcbjam.com/

Comments

ViktorEE•2h ago
Happy to answer any questions & feel free to reach out ( email in my profile )!
JKCalhoun•1h ago
I like all the utility you have already built in.

My selfish suggestion would be to add support to populate the part numbers for all the components from LCSC's database. JLCPCB wants these numbers in order to assemble a PCB.

(Currently I use a JLCPCB plug-in to do this in KiCAD.)

ViktorEE•1h ago
thanks! one thing we did not port is the plugin system: it's quite hard to run python on the web ( AFAIK pyodide is not enough here ) and I've heard that it will be deprecated in the next version.

The KiCad editor's state is accessible from the web app, we'll do some kind of plugin system like Figma's or just implement these functions as an overlay. We'll see, thanks for the tip!

thenthenthen•55m ago
Small suggestion, it would be nice to see the total size of the download during the first load (sry I am on a slow metered connection).
ViktorEE•53m ago
Yea, I'll add it in the next deploy. Thanks! Right now it's about ~30 MB for the big app ( 2 editors + footprint + symbol ).
ViktorEE•
24m ago
To open a demo board click "Open" in the Projects/Demo board section then "Open in PCB Editor" at demo.kicad_pcb in Files.

Next time I'll make a smoother demo...

brokensegue•8m ago
Is this at all related to kicanvas.org
ViktorEE•5m ago
Nope, not at all. This is the original KiCad sources with some modifications to make it run in a browser. As far as I know kicanvas renders PCBs, we can do the whole workflow ( create a schematic => pcb => DRC checks, exports etc ).

Phosh 0.56.0

https://phosh.mobi/releases/rel-0.56.0/
62•edward•1h ago•10 comments

Organic Maps

https://organicmaps.app/
10•tosh•18m ago•2 comments

Introduction to Compilers and Language Design

https://dthain.github.io/books/compiler/
68•AlexeyBrin•2h ago•5 comments

Airplane Boneyards List and Map

https://airplaneboneyards.com/airplane-boneyards-list-and-map.htm
14•hyperific•22h ago•1 comments

If you're a button, you have one job

https://unsung.aresluna.org/if-youre-a-button-you-have-one-job/
367•nozzlegear•12h ago•179 comments

Shadcn/UI now defaults to Base UI instead of Radix

https://ui.shadcn.com/docs/changelog
207•dabinat•9h ago•89 comments

Medieval-style fortifications are back in the Sahel

https://www.economist.com/middle-east-and-africa/2026/06/25/medieval-style-fortifications-are-bac...
17•andsoitis•4d ago•8 comments

Show HN: KiCad in the Browser

https://demo.pcbjam.com/
24•ViktorEE•2h ago•8 comments

Cannabis Users Face Substantially Higher Risk of Heart Attack (2025)

https://www.acc.org/about-acc/press-releases/2025/03/17/15/35/cannabis-users-face-substantially-h...
50•RickJWagner•2h ago•34 comments

Pandoc Lua Filters

https://pandoc.org/lua-filters.html
99•ankitg12•2d ago•8 comments

Knowledge Should Not Be Gated

https://www.formaly.io/blog/knowledge-should-not-be-gated
49•nezhar•6h ago•27 comments

Fast Software, the Best Software (2019)

https://craigmod.com/essays/fast_software/
73•ustad•7h ago•35 comments

Trust your compiler: Modern C++

https://categorica.io/blog/2026.06.29_trust_your_compiler/
32•foxhill•4d ago•11 comments

Claude Design System Prompt

https://github.com/Trystan-SA/claude-design-system-prompt
81•handfuloflight•5h ago•20 comments

Jellyfish can heal wounds in minutes. Scientists want their secrets

https://www.mbl.edu/news/jellyfish-can-heal-wounds-minutes-scientists-want-their-secrets
160•hhs•15h ago•36 comments

Megawatts by Microwave

https://computer.rip/2026-07-04-microwave-and-power.html
48•eternauta3k•8h ago•4 comments

Pi square is nearly 10

https://mihai.page/pi-square-is-10/
27•freediver•3h ago•20 comments

Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

https://github.com/ammaarreshi/Generals-Mac-iOS-iPad/tree/main
610•asronline•18h ago•257 comments

Moby Dick Workout (2022)

https://www.hogbaysoftware.com/posts/moby-dick-workout/
65•helloplanets•10h ago•24 comments

Artful Cats: Feline-Inspired Art and Artifacts

https://www.si.edu/spotlight/art-cats
63•jruohonen•3d ago•5 comments

Meta's Un-Stable Signature

https://hackerfactor.com/blog/index.php?/archives/1098-Metas-Un-Stable-Signature.html
114•ementally•3d ago•16 comments

Functional Programming in hica

https://www.hica.dev/docs/functional-programming/
33•cladamski79•3d ago•8 comments

Atomic Force Microscope [video]

https://www.youtube.com/watch?v=DyIQkqBXhS0
95•mhb•2d ago•10 comments

The Log is the Agent

https://arxiv.org/abs/2605.21997
71•iacguy•11h ago•20 comments

What ORMs have taught me: just learn SQL (2014)

https://wozniak.ca/blog/2014/08/03/1/index.html
233•ciconia•4d ago•269 comments

“Beyond the limit”: Satellites and mirrors in space pose threat to the night sky

https://www.eso.org/public/news/eso2607/
174•Breadmaker•21h ago•271 comments

About the Digital Art

https://www.tricivenola.com/about-the-digital-art/
22•NaOH•3d ago•5 comments

Return of the Nigerian Prince Redux: Beware Book Club and Book Review Scams (2025)

https://writerbeware.blog/2025/09/19/return-of-the-nigerian-prince-redux-beware-book-club-and-boo...
68•Anon84•14h ago•23 comments

GPT-5.5 Codex reasoning-token clustering may be leading to degraded performance

https://github.com/openai/codex/issues/30364
326•maille•16h ago•124 comments

My ASN Journey series (2024)

https://www.animmouse.com/p/my-asn-journey/
32•antonalekseev•10h ago•14 comments