Workflow Core Designer is a modern visual drag-and-drop workflow editor and monitor built for the .NET WorkflowCore engine.
Why I built this: I've been using WorkflowCore for a while and always struggled with writing large JSON/YAML definitions by hand and debugging running processes from raw logs. There was no convenient visual tool to design workflows and see what's happening at runtime — so I decided to build one myself. While the original author continues developing the amazing backend engine, I'm focusing on this frontend to make our lives easier. Author: [Determinate] Repository: [https://github.com/determinate/wf-core-designer]
We are now in Public Beta (v0.1.0-beta)! The designer now supports full bidirectional JSON & YAML Import/Export, automatic DAG Auto-Layout, resilient node handling for unknown custom C# step types, and live backend publishing.
- 📥 Bi-directional JSON & YAML Import — Drag & drop or paste existing
WorkflowCore.DSLJSON/YAML definitions into the canvas. - 🛡️ Resilient Step Rendering — Nodes never crash or break on missing/unknown types or custom C# step classes (
MyApp.Steps.CustomStep, MyApp). - ⚡ DAG Auto-Layout Engine — Automatically arrange imported or complex workflows hierarchically with 1 click.
- 📤 Export to JSON & YAML — Download
.jsonor.yamlfiles, copy raw DSL directly to clipboard, or preview syntax. - ⚙️ Workflow Metadata & Properties — Manage Workflow ID, Version, DataType, Description, ErrorBehavior, RetryInterval, CancelConditions, and custom JSON inputs/outputs.
- 📡 Live Backend Publishing — Directly post workflow definitions to your .NET backend API (
POST /api/workflows). - 📊 Workflow Monitoring & Journals — Track execution state and step logs in real time.
- Node.js v18 or newer
git clone https://github.com/determinate/wf-core-designer.git
cd wf-core-designer
npm install
npm run dev
Open http://localhost:3000 in your browser.
If your .NET backend has custom step classes (e.g., SendEmailStep, CallExternalApiStep), you can use them in two ways:
- Drag an Action node onto the canvas.
- Click on it to open the Properties panel.
- In the Step Type (C# Class) field, enter the fully qualified .NET class name:
MyApp.Steps.SendEmailStep, MyApp- The exported JSON will include this value in the
StepTypefield, and WorkflowCore will resolve it automatically.
- Open
src/components/Sidebar.tsx. - Find the
NODE_TYPESarray. - Add your custom activity:
{
category: 'Action',
label: 'Send Email',
description: 'Sends an email notification',
icon: Mail, // import from lucide-react
color: '#3b82f6',
},The designer can fetch workflow definitions from your backend and publish new ones:
- Open the Dashboard (
http://localhost:3000/). - Enter your backend URL in the settings field (e.g.,
http://localhost:5000). - The app will call
GET /api/workflowsto list existing workflows. - In the designer, click Publish to send the workflow JSON via
POST /api/workflows.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/workflows |
Returns a JSON array of workflow definitions |
POST |
/api/workflows |
Accepts a WorkflowCore DSL JSON body, registers the workflow |
This tool is built for the community, and I would love your help to make it robust! If you want to support the development of this project, you can do so by:
- 🐛 Opening Issues when you find a bug or a generated JSON mismatch.
- 🛠 Submitting Pull Requests to add new features or fix UI glitches.
- ⭐ Starring the repository and sharing it with other .NET developers.
- 📧 Reaching out via email: evrey2696@gmail.com
MIT — use it, fork it, build on top of it.