A flexible, high-performance node-based flow editor for Flutter applications, inspired by React Flow. This monorepo contains the core library and demo application.
This repository is organized as a Dart workspace with the following packages:
The core Flutter package providing the node-based flow editor functionality.
Features:
- High-performance reactive rendering with MobX
- Type-safe node data with generics
- Fully customizable themes for nodes, connections, and ports
- Flexible port system with multiple shapes and positions
- Annotations (sticky notes, markers, groups)
- Built-in minimap for navigation
- Comprehensive keyboard shortcuts
- Multiple connection styles (bezier, smoothstep, straight, step)
- Read-only viewer mode
- JSON serialization for saving/loading flows
- Auto-layout algorithms (grid, hierarchical, alignment, distribution)
Installation:
dependencies:
vyuh_node_flow: ^0.2.5A comprehensive demo application showcasing all features of the Vyuh Node Flow editor.
Includes:
- Interactive workbench with full editor controls
- Multiple example workflows (manufacturing, healthcare, IoT, etc.)
- Theme customization controls
- Layout and alignment tools
- Connection validation examples
- Annotation demonstrations
Try it online: 🚀 Live Demo
- Flutter SDK 3.32.0 or higher
- Dart SDK 3.9.0 or higher
This project uses Melos for workspace management.
-
Clone the repository:
git clone https://github.com/vyuh-tech/vyuh_node_flow.git cd vyuh_node_flow -
Install dependencies:
dart pub get
-
Bootstrap the workspace:
dart run melos bootstrap
-
Run the demo:
cd packages/demo flutter run -d chrome
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by the Vyuh Team
