ngx-graph served Angular teams well as a graph visualization library, but its last release was years ago and the repository is effectively unmaintained, while tens of thousands of projects still install it weekly. If you are choosing today — or maintaining an app stuck on it — Foblex Flow is the actively maintained Angular-native option, and it covers a wider job: not just rendering a graph, but letting users edit it.
If all you need is a static, auto-laid-out visualization and you never touch it again, a dead-but-working dependency may hold for a while. The moment users need to change the graph — or you need Angular 17+ support, signals, SSR, or bug fixes — you need a maintained editor library.
The models are close enough that migration is mechanical for most apps:
nodes / links arrays stay your source of truth — Foblex Flow never owns your data. Render them with @for instead of passing them to a component input.node template (ng-template #nodeTemplate) becomes a plain element with fNode and [fNodePosition] — with your full Angular component inside, not an SVG fragment. HTML instead of SVG is the biggest quality-of-life change: real inputs, buttons, pipes and directives inside nodes.link becomes <f-connection fSourceId fTargetId> with built-in path types (straight, segment, bezier), markers and labels.dagre in ngx-graph) maps to @foblex/f-dagre-layout or @foblex/f-elkjs-layout — run it on init or on demand, then keep user-made positions.(select)-style events map to fSelectionChange; panning/zooming to f-canvas + fZoom.What has no ngx-graph equivalent — and therefore needs no migration — is everything editors need: connection creation by drag/click/keyboard, groups, resize handles, alignment guides, virtualization for large scenes, and an accessibility layer.
Start with Get Started, see automatic arrangement in the Dagre layout example, and browse the examples gallery for the interactions ngx-graph never had.