How Grafloria compares
React Flow, JointJS+, GoJS, ngx-vflow, and Mermaid are excellent, mature projects — this page is not here to knock them. It answers the first question everyone asks: what ships in the box, and what do I buy, build, or bolt on? Every cell was compiled from the projects' public documentation, pricing pages, and source; if anything below is out of date, open an issue and we'll correct it.
| Grafloria | React Flow | JointJS / JointJS+ | GoJS | ngx-vflow | Mermaid | |
|---|---|---|---|---|---|---|
| License | MIT — every featureno commercial tier exists | MIT libraryPro subscription funds it | MPL-2.0 coreJointJS+ commercial | Commercialper-app + per-domain | MITpaid source-code templates | MIT coreSaaS editor on top |
| Frameworks | Angular · React · Vue · web componentone engine under all four | React onlysibling project for Svelte; no Angular | Plain JSintegration guides; React wrapper | Plain JSofficial React & Angular wrappers | Angular onlysignal-native | Any (static SVG)embedded by GitHub, GitLab, Notion |
| Interactive editing drag · connect · select · edit |
✓ | ✓ | ✓full editor chrome in JointJS+ | ✓ | ✓ | —renders text to static SVG; click hooks only |
| Obstacle-avoiding edge routing | ✓orthogonal routing that never crosses its own nodes — proven by a 480-placement sweep in CI — plus jump-overs (arc / gap / bridge) and port escape stubs | —default edges cross nodes; maintainers list orthogonal routing as not planned | ✓manhattan router with avoidance, in the free core | ✓AvoidsNodes routing mode | paid4 stock curves free; obstacle-avoiding “Smart Curves” is a paid template | partialdelegated to the layout engine (ELK gives orthogonal routes) |
| Auto-layout built in | ✓layered (ELK), tree, force, grid, compound containers — runs off-thread in a Worker, lazy-loaded | examples / DIYdocs: no in-house layout; wire dagre or elkjs yourself | partialdirected-graph free; Tree/Grid layouts in JointJS+ | ✓5 built-in + 10 extension layouts | —none built in; dagre wiring is a paid template | ✓its crown jewel — zero-effort, per-diagram engines |
| Undo / redo | ✓command-based; one gesture = one step | examples / DIY | paidCommandManager in JointJS+ | ✓ | — | n/athe text is the model |
| Editor chrome minimap · snap & grid · marquee · clipboard · helper lines |
✓all of it, MIT — plus cascading paste and a keyboard-complete canvas | partialminimap/controls free; copy-paste & helper lines are Pro examples | paidStencil, Halo, Toolbar, Inspector in JointJS+ | ✓ | partialminimap, resizer, selection box free | — |
| Real-time collaboration CRDT sync · live cursors · comments |
✓per-property CRDT in the engine — any transport, serverless cross-tab works out of the box | paid / DIYyjs wiring is a Pro example | DIYevent stream makes wiring feasible | DIYincremental-JSON diffs + your transport | — | SaaSmulti-user editing lives in Mermaid Chart |
| Accessibility | ✓keyboard-complete canvas, live-region graph narration, axe-audited in CI | ✓genuinely good: focus, arrow keys, ARIA — credit where due | —largely unaddressed | ✓opt-in focus-navigation subsystem | — | partialSVG title/desc semantics on static output |
| Export — SVG · PNG · PDF | ✓true vectors, server-side, byte-identical renders | examples / DIYthird-party screenshotting; server-side is a Pro example | paidSVG/PNG/PDF export in JointJS+ | partialPNG/SVG in-browser | —declined for core pending a plugin system | ✓SVG native; CLI renders PNG/PDF |
| Diagram-as-text | ✓Mermaid-compatible text in and out of the live canvas, with a lossless sidecar for positions | — | — | — | — | ✓the standard itself — what LLMs emit natively |
| Headless — runs in Node, no DOM | ✓same renders on server and client | browser-firstv12 adds SSR for initial paint | browser-firstasync render outside the DOM exists | browser-first | browser-first | partialCLI drives headless Chromium |
| Dashboards kit — drag-and-pack grid | ✓tabs, live re-packing, KPI/chart/table widgets, undo | — | — | — | — | — |
| UML & ER kits | ✓class compartments, entity tables, PK/FK badges — interactive | — | paidshape libraries in JointJS+ | samples | — | ✓class & ER grammars — static |
| Demos executed as CI tests | ✓104 live demos drive the engine with real pointer events and fail the build if they break — plus 220+ pixel-diffed visual goldens | — | — | — | — | — |
What the alternatives cost
Figures from vendor pricing pages, July 2026 — always confirm on their sites before buying. The pattern they show: the editor features are where the market puts its price tags. Grafloria ships all of them MIT.
Grafloria
- No per-developer, per-app, or per-domain fees
- Routing, collab, exports, kits — all in the box
- Full source; no lock-in
React Flow
- Library is MIT; Pro buys closed-source examples (undo, copy-paste, helper lines, collab…) + support
- React only
JointJS+
- Editor chrome, exports, Tree layout live in the paid tier
- MPL-2.0 core is genuinely capable (all routers free)
GoJS
- Deepest built-in editor machinery in the commercial field
- Famously good vendor support
ngx-vflow
- The hard parts — obstacle-avoiding curves, dagre layout — are the paid templates
- Solo maintainer
Mermaid
- Library and CLI fully MIT
- SaaS sells the visual editor, AI, and collaboration layer
Honest guidance
Pick React Flow when…
you're all-in on React and want the largest community in this space. Its extensibility and accessibility are genuinely first-rate; you'll assemble routing, layout, undo, and collab from examples — many of them in the paid Pro tier.
Pick JointJS+ or GoJS when…
you need a commercial vendor with support contracts and enterprise depth. Both are mature, well-engineered products — priced accordingly, per developer or per application.
Pick ngx-vflow or Mermaid when…
you want a lightweight Angular flow canvas and can live without undo, layout, and export (ngx-vflow) — or you need diagrams in docs and READMEs, not an editor: Mermaid owns docs-as-code, and Grafloria speaks its text format for exactly that reason.
Pick Grafloria when…
you want the whole table in one MIT box: commercial-grade routing, built-in collab without a sync stack, server-side vector export, dashboards and UML/ER kits — native in Angular, React, or Vue. And every claim is a live demo, not a bullet point.
Compiled in good faith from public documentation, pricing pages, and published source, July 2026. These projects evolve quickly and this table may lag them — corrections are welcome via GitHub issues. React Flow, JointJS, JointJS+, GoJS, ngx-vflow, Mermaid, and Mermaid Chart are trademarks of their respective owners; their appearance here is comparative reference only, and no affiliation or endorsement is implied. Prices are approximate, may vary by region and seat count, and belong to their vendors' pages — treat theirs as authoritative.