A JointJS alternative where the “+” tier is MIT

JointJS's MPL-2.0 core is genuinely capable — all routers included — and JointJS+ is a mature commercial product. Teams reach for Grafloria when the features they need (editor chrome, SVG/PNG/PDF export, tree layout, command manager, stencils) sit in the ≈ $2,990-per-developer tier, with ≈ $1,490/year for updates.

When to stay with JointJS

You want a commercial vendor with support contracts and enterprise depth, or the MPL core already covers you and per-developer licensing is acceptable. It is the most mature codebase in this field — first released in 2010.

Why teams switch

GrafloriaJointJS / JointJS+
License / priceMIT — everything, $0MPL-2.0 core; JointJS+ ≈ $2,990/developer perpetual, updates ≈ $1,490/yr
Editor chrome (minimap, snap, toolbar…)IncludedJointJS+ tier
Exports (SVG/PNG/PDF)Included — PDF stays vectorJointJS+ tier
Smart routing + hand-editingThe avoid router re-routes around your waypoints instead of discarding themManhattan router recomputes the path; the segment tool's vertices fight it
Command manager / undoIncluded, ⌘Z zero-wiringJointJS+ tier
CollaborationCRDT in the engine, any transportDIY

The CAD-tool test

The question that sends JointJS evaluators here: can a smart orthogonal router coexist with hand-edited wire segments? In Grafloria a user-dragged bend becomes a persistent waypoint on the edge — serialized, undoable, and treated by the router as a constraint, not a casualty:

edges: [{
  source: 'r1', target: 'c1',
  type: 'orthogonal', router: 'avoid',
  points: [{ x: 340, y: 90 }],   // the user's bend — survives re-routing
}]

Pricing and feature cells reflect vendor pages and shipped type definitions as of July–August 2026 — always confirm on the vendor's site. Corrections welcome on GitHub; this page aims to stay honest, not to win.