BPMN Kit vs. bpmn-js

bpmn-js is a mature, widely-used open-source toolkit from bpmn.io for rendering and interactively modeling BPMN 2.0 diagrams in the browser. BPMN Kit is a TypeScript SDK for generating, simulating, and deploying BPMN 2.0 diagrams from code. They target different jobs — here's how they compare.

BPMN Kitbpmn-js
Primary purposeFluent TypeScript builder that generates and executes BPMN 2.0 XML from codeToolkit for rendering and interactively modeling BPMN diagrams in the browser
RuntimeNode.js, browsers, Deno, Bun, edge — zero runtime dependencies in coreBrowser only (SVG/DOM-based rendering)
Generate a diagram from codeYes — `Bpmn.createProcess().startEvent()...build()` with auto-layout (Sugiyama algorithm)No built-in fluent builder; diagrams are typically authored via the GUI or by hand-editing the underlying diagram-js model
Auto-layoutBuilt in — no coordinate math requiredNot included; you position elements yourself or rely on a modeling UI
Simulation / execution`@bpmnkit/engine` — zero-dep simulation engine, no Camunda requiredNot included
Camunda 8 deployment`@bpmnkit/api` — 180-method typed REST clientNot included
DMN support`Dmn` builder in `@bpmnkit/core`Separate library (dmn-js)
AI / LLM-friendlyCompact intermediate format fits a diagram in one prompt; designed for AI agentsNot a design goal
Maturity & ecosystemNewer, smaller ecosystemMature, widely adopted, large plugin ecosystem (bpmn.io)

Frequently asked

Is BPMN Kit a replacement for bpmn-js?

Not exactly — they solve different problems. bpmn-js is a browser toolkit for rendering and interactively modeling BPMN diagrams. BPMN Kit is a TypeScript SDK for generating, simulating, and deploying BPMN diagrams from code, with zero runtime dependencies and no browser requirement. Some teams use BPMN Kit's canvas/editor packages for in-browser diagram display and bpmn-js for rich manual modeling — they are not mutually exclusive.

Can I generate a BPMN diagram programmatically with bpmn-js?

bpmn-js exposes a lower-level diagram-js model you can script against, but it does not provide a fluent builder API or automatic layout for generating a complete, valid BPMN 2.0 process from code the way @bpmnkit/core does.