Skip to content

Design, execute, and export workflows visually — a drag-and-drop pipeline builder for .NET 8

License

Notifications You must be signed in to change notification settings

mcandiri/FlowForge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FlowForge

Design, execute, and export workflows visually -- a drag-and-drop pipeline builder for .NET.

.NET 8 CI Tests License: MIT


Demo

git clone https://github.com/mcandiri/FlowForge.git
cd FlowForge
dotnet run --project src/FlowForge.Web

Open http://localhost:5000 in your browser.

Drag nodes onto the canvas, wire them together, hit Run, and watch the execution trace light up in real time.


Features

  • Visual Designer -- Drag-and-drop canvas with snap-to-grid, auto-layout, and live connection drawing.
  • 10+ Node Types -- HTTP requests, conditions, loops, delays, code blocks, email, database queries, and more.
  • Real-Time Execution -- Execute workflows directly in the browser and watch each node highlight as it runs.
  • C# Code Export -- Generate clean, copy-pasteable C# code from any workflow.
  • JSON Import / Export -- Save, share, and version-control your workflows as JSON files.
  • Demo Templates -- Five ready-made templates to explore patterns like data pipelines, notifications, loops, error handling, and approval flows.

Node Types

Icon Node Category Description
🔔 Webhook Trigger Trigger Entry point -- starts a workflow from an HTTP webhook
🌐 HTTP Request Action GET / POST / PUT / DELETE with mock-mode support
📝 Logger Action Log messages with variable interpolation
📧 Email Sender Action Send email notifications (demo mode logs instead)
💻 Code Block Action Execute arbitrary C# expressions at runtime
📦 Set Variable Action Store a value in the workflow context
🗄️ Database Query Action Run SQL queries (mock result sets in demo mode)
🔀 Condition Control If / else branching on expressions
Delay Control Pause execution for N milliseconds
🔁 Loop Control Iterate over a collection variable
🔄 Retry Control Retry a failed step up to N times
🔃 Transform Data Map and reshape data with variable templates

Architecture

FlowForge.sln
  src/
    FlowForge.Core/          Core engine, nodes, models, export, templates
      Engine/                 WorkflowEngine, ExecutionContext, NodeExecutor
      Models/                 Workflow, FlowNode, FlowEdge, NodeConfig, NodePort
      Nodes/                  IFlowNode interface + all built-in node implementations
        Actions/              HttpRequest, Logger, EmailSender, CodeBlock, SetVariable, DatabaseQuery
        Control/              Condition, Delay, Loop, Retry
        Data/                 Transform
        Triggers/             WebhookTrigger
      Export/                 JsonExporter, CSharpCodeGenerator
      Templates/              ITemplateProvider, BuiltInTemplateProvider
      Extensions/             ServiceCollectionExtensions (DI registration)
    FlowForge.Web/            Blazor Server front-end
  tests/
    FlowForge.Core.Tests/     xUnit + FluentAssertions + Moq
    FlowForge.Web.Tests/

How it works:

  1. The Visual Designer (Blazor) lets you place FlowNode objects on a canvas and connect them via FlowEdge objects.
  2. Pressing Run sends the Workflow graph to the WorkflowEngine.
  3. The engine walks the graph topologically, starting from nodes with no incoming edges.
  4. Each node is resolved via NodeRegistry and executed through IFlowNode.ExecuteAsync.
  5. Condition nodes route to true or false ports; loop nodes iterate and re-visit body nodes.
  6. Execution traces stream back to the UI via IProgress<ExecutionTrace> for real-time feedback.

Born From Production

"We needed an internal tool to let non-developers build data pipelines and approval workflows without writing code every time. FlowForge started as that tool -- and grew into something we think others can use too."


What FlowForge Is NOT

FlowForge Enterprise BPM No-Code Platforms
Target .NET developers & small teams Large enterprises Non-technical users
Deployment Self-hosted, single binary Cloud / on-prem clusters SaaS only
Customisation Add C# nodes in minutes XML/BPMN config files Limited plugins
Cost Free & open source $$$$ per seat $$$ per month
Overhead Zero external dependencies Message brokers, databases Vendor lock-in

Roadmap

  • Visual drag-and-drop designer
  • 10+ built-in node types
  • Real-time execution with trace overlay
  • JSON import / export
  • C# code generation
  • Demo templates
  • Persistent workflow storage (SQLite / PostgreSQL)
  • Authentication & role-based access
  • Webhook listener for live triggers
  • Custom node plugin system
  • Workflow versioning & diff
  • Parallel branch execution visualisation
  • Debugging mode with breakpoints
  • Real database & email integration

Running Tests

dotnet test

License

MIT -- Copyright (c) 2026 Mehmet Can Diri

About

Design, execute, and export workflows visually — a drag-and-drop pipeline builder for .NET 8

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published