A lightweight, dependency-free JavaScript library for creating interactive node-based flow editors in the browser.
Drawflow is a lightweight JavaScript library for creating interactive node-based flow editors in web applications. It allows developers to build visual interfaces where users can drag, connect, and configure nodes to represent data flows, workflows, or logic diagrams without external dependencies.
Frontend developers and UI engineers building applications that require visual flow editing, such as workflow automation tools, data pipeline designers, or educational programming environments.
Developers choose Drawflow for its simplicity, zero dependencies, and framework-agnostic core, which can be easily integrated into existing projects or extended with Vue components for more complex node types.
Simple flow library 🖥️🖱️
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Drawflow is built with vanilla JavaScript, requiring no external libraries, which keeps bundle sizes minimal and integration straightforward, as highlighted in the 'Vanilla javascript (No dependencies)' feature.
It offers built-in support for Vue 2, Vue 3, and Nuxt, allowing developers to use Vue components as nodes, with clear examples provided in the README for setup.
With just a few lines of code, developers can instantiate a flow editor, making it ideal for rapid development, as demonstrated in the 'Running' section with minimal setup.
The library includes touch-friendly features like pinch-to-zoom and long-press, ensuring usability on mobile devices, which is explicitly listed under 'Mobile support'.
While it supports Vue well, Drawflow lacks native integration for popular frameworks like React or Angular, forcing teams to build custom wrappers for non-Vue projects.
TypeScript definitions are not included in the core package; developers must install an external @types/drawflow package, which can lead to versioning issues and delayed updates, as noted in the README.
Despite a theme generator, styling nodes and connections requires significant CSS work, as the library provides minimal pre-styled components, making it less suitable for teams wanting drop-in aesthetics.