Skip to main content
Get started with CrystalFlow’s visual workflow builder in 5 minutes.
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 your tsconfig.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

Open your browser and you should see:
Workflow Builder

Using the Visual Builder

1

Add Nodes

Drag nodes from the left palette onto the canvas, or click to add at center.
2

Connect Nodes

Drag from output handles (right side) to input handles (left side) to create connections.
3

Configure Properties

Click a node to select it, then edit its properties in the right panel.
4

Execute Workflow

Click the ▶️ Execute button in the toolbar to run your workflow.
5

View Results

Check the browser console to see execution results.

Example Workflow

Try building this simple calculator:
  1. Add two Number Input nodes (set values to 5 and 3)
  2. Add one Add node
  3. Add one Display node
  4. Connect: Number Input 1 → Add (port A)
  5. Connect: Number Input 2 → Add (port B)
  6. Connect: Add (Result) → Display (Value)
  7. 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:
Load on mount:

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

Make sure experimentalDecorators: true is in your tsconfig.json and you’ve imported 'reflect-metadata' at the top of your entry file.
Ensure all node classes are passed to the nodes prop and have the @defineNode decorator.
Import React Flow styles: import 'reactflow/dist/style.css' in your component.
Verify target: "ES2020" and lib: ["ES2020", "DOM"] in your tsconfig.json.