One test cut KiCad's load time from about 10 seconds to roughly 1 second after a custom Binaryen pass, letting designers open full projects in a browser almost instantly. That improvement is part of Emergence Engineering's port of KiCad to WebAssembly, published as an early demo on Hacker News. Designers can open and edit full KiCad projects in the browser and upload their own board files. The build runs best in Firefox, with Chrome described as good and Safari as working. The release is explicitly early and buggy, and the team sketched a commercial model with a free tier plus a paid plan for larger or closed projects, optional paid AI integration, self-hosting and enterprise features.
The browser build delivers a GUI that behaves much like the desktop app, because the team compiled KiCad with Emscripten and replaced native canvas code with WebGL that speaks KiCad's Graphics Abstraction Layer.
Viktor described weeks of debugging to emulate the original OpenGL canvas and to tame multithreaded features using Emscripten's Pthreads support. The team also ran into a long-standing incompatibility between Asyncify and native exceptions in Binaryen; writing a custom Binaryen pass cut the bundle size by an estimated 30-40 percent and reduced load time in one test from about 10 seconds to roughly 1 second.
Moving Open CASCADE into a lazily loaded WASM module reduced the main bundle from about 180 MB to 130 MB, with a 24 MB brotli-compressed payload reported for the lazy chunk. This port required changes spread across the KiCad core: roughly 150 changed files were listed, primarily build scripts and some code edits, with the stated goal of keeping as close to mainline KiCad as possible so the patches can be merged back later. The post details low-level engineering trade-offs, including decisions about lazy-loading heavy components, the cost of higher optimization levels for WASM and practical limits of current toolchains when suspending compiled C++ execution to interoperate with JavaScript.
Users can load, pan and edit boards in the browser now. Firefox is cited as the best-supported browser, Chrome is described as good and Safari as working. The release is explicitly an early result, the author calling it "MVP~ish" and warning of remaining bugs.
The Hacker News post also sketched a commercial stance. The team said there will be a free tier and a paid offering targeted at larger or closed projects priced around $30 per month, plus optional paid AI integration, self-hosting and enterprise features and native and mobile options. There was no firm release schedule or region-limited rollout date; the announcement is framed as a public demo and a step toward a broader release and productization.
Parallel Python tooling for KiCad workflows is active and complements the browser approach. The kicad-tools project on PyPI publishes standalone Python libraries and CLI tools to parse, analyse and modify KiCad schematic and PCB files, outputting machine-readable JSON and offering features such as an autorouter, DRC hooks and a live demo gallery of example boards.
Separately, kicad-cruncher provides a cross-platform CLI that builds KiCad-native design review bundles, project-local library bundles and PCB SVG and STEP artifacts, and it produces enriched review outputs and manufacturing-ready files for downstream checks. Those projects serve programmatic, CI and automation use cases that a browser editor doesn't replace, such as headless parsing, batch checks and production file generation without running the KiCad GUI.
The team's next steps are to focus on a formal release, publish technical blog posts documenting the port work and submit changes upstream to Binaryen, KiCad and wxWidgets with the aim of merging as much as possible into mainline projects. Originally reported by news.ycombinator.com.
This article was created with AI assistance.