This guide is for building visual workflow applications with React. For backend-only workflows, see Core-Only Quick Start.
Prerequisites
- Node.js 18+ installed
- React 18+ project set up
- Basic React knowledge
Step 1: Install Packages
Step 2: Configure TypeScript
Add to yourtsconfig.json:
tsconfig.json
Step 3: Create Nodes
Create a few simple nodes:src/nodes/AddNode.ts
src/nodes/NumberInputNode.ts
src/nodes/DisplayNode.ts
src/nodes/index.ts
Step 4: Create Workflow Component
src/App.tsx
Step 5: Run Your App

Using the Visual Builder
Connect Nodes
Drag from output handles (right side) to input handles (left side) to create connections.
Example Workflow
Try building this simple calculator:- Add two Number Input nodes (set values to 5 and 3)
- Add one Add node
- Add one Display node
- Connect: Number Input 1 → Add (port A)
- Connect: Number Input 2 → Add (port B)
- Connect: Add (Result) → Display (Value)
- Click Execute - Console shows:
Result: 8
What You Get
Node Palette
Browse and add nodes by category with search
Visual Canvas
Drag, drop, and connect nodes visually
Property Panel
Edit node properties and configurations
Toolbar Actions
Execute, save, load, and clear workflows
Save & Load Workflows
The toolbar provides save/load functionality:Customize the Builder
Control which panels are visible:Next Steps
Build Your First App
Complete tutorial with custom nodes
Creating Custom Nodes
Learn to build powerful nodes
Workflow Builder Guide
Master the visual builder
Examples
See complete examples
Troubleshooting
Decorators not working?
Decorators not working?
Make sure
experimentalDecorators: true is in your tsconfig.json and you’ve imported 'reflect-metadata' at the top of your entry file.Nodes not showing in palette?
Nodes not showing in palette?
Ensure all node classes are passed to the
nodes prop and have the @defineNode decorator.Styles not loading?
Styles not loading?
Import React Flow styles:
import 'reactflow/dist/style.css' in your component.TypeScript errors?
TypeScript errors?
Verify
target: "ES2020" and lib: ["ES2020", "DOM"] in your tsconfig.json.