flowchart.js is a flowchart DSL and SVG renderer that runs in the browser and terminal.
The tool solves the problem of visualizing process flows and decision trees by letting developers define flowcharts in a text-based domain-specific language rather than drawing them manually. Nodes and connections are defined separately, allowing nodes to be reused and connections to be modified independently. The DSL supports multiple node types including start, end, operation, input/output, subroutine, condition, and parallel nodes. Fine-grained styling can be applied directly within the DSL syntax, and nodes can optionally link to URLs. Connections between nodes are specified using directional operators, with support for explicit direction control (left, right, top, bottom).
The tool suits developers who need to document workflows, algorithms, or processes programmatically and want to version-control diagrams as text. It works well for projects where flowcharts need to be generated dynamically or embedded in web applications. The browser-based rendering requires Raphaël as a dependency and is available through CDN. A terminal-based rendering option is also available through a separate project.
Development activity shows consistent maintenance with bug fixes and feature additions applied regularly. The project maintains clear documentation through its homepage and example files. Community contributions are accepted and integrated into the codebase. The tool has remained stable in its core functionality while receiving updates to address issues and improve usability.