The four primitives
Every workflow in FlowDrop is built from four core concepts:Nodes
A node is a single step in the workflow. It represents an action, decision, or data transformation — for example, “Send an HTTP request”, “Run an LLM prompt”, or “Route based on condition”. Each node has:- A type that determines its visual appearance (default, simple, square, tool, gateway, terminal, idea, note)
- Metadata describing its name, icon, category, and capabilities
- Configuration — user-editable settings defined by a JSON Schema
Edges
An edge is a connection between two nodes. It defines the flow of data or control from one step to the next. Edges have categories that determine their visual style and semantic meaning:- data — standard data flow (default)
- trigger — event-based activation
- tool — tool invocation from an agent
- loopback — feedback loops
Ports
A port is a typed connection point on a node. Nodes have input ports (receiving data) and output ports (sending data). Ports represent the runtime data that flows between nodes during execution — the actual payloads that one node passes to the next. Each port has a data type (e.g.,string, json, file, trigger).
FlowDrop enforces type-safe connections — you can only connect ports with
compatible data types.
For example, an LLM node might have:
- An input port of type
stringthat receives the user’s prompt - An output port of type
jsonthat emits the model’s response
Config
Configuration is different from ports. While ports carry runtime data that varies with each execution, config holds shared settings that apply consistently across all runs of the workflow. Config values are defined by a JSON Schema and edited through a form UI when users click on a node. They control how a node behaves rather than what data it processes. For example, the same LLM node might have config fields for:- Model name — which LLM to use
- Temperature — how creative the responses should be
- Max tokens — the response length limit
How it all fits together
Ports carry runtime data; config holds settings.Each node has typed ports for runtime data and config for
workflow-level settings. An edge connects an output port to an input port,
defining data flow. Config values stay the same across executions; port data
changes every time.
What FlowDrop does (and doesn’t do)
FlowDrop is a frontend editor. It handles:- Visual canvas with drag-and-drop, zoom, pan
- Node palette and sidebar for discovery
- Connection drawing with type-safe port validation
- Configuration forms generated from JSON Schema
- Workflow serialization to JSON
- Undo/redo, auto-save drafts, import/export
- Execution — It doesn’t run your workflows. You need your own backend execution engine.
- Storage — It calls your REST API to persist workflows. You provide the database.
- Business logic — Node behavior is defined by your backend, not by FlowDrop.
FlowDrop owns the UI. You own the logic.FlowDrop gives users a beautiful way to design workflows. Your backend gives those workflows meaning.
The frontend–backend contract
FlowDrop communicates with your backend through a REST API. The contract is simple:- Your backend tells FlowDrop what nodes exist — by serving node metadata (name, ports, config schema)
- Users build workflows visually — FlowDrop handles all the UI
- FlowDrop sends the workflow JSON to your backend — for storage and execution
When to use FlowDrop
FlowDrop is a good fit when you need:- A visual, no-code interface for building multi-step processes
- AI agent workflows with branching, tool use, and human-in-the-loop
- Data pipelines with configurable transformations
- Automation builders where non-technical users define business logic
- Any application where users need to compose processing steps visually
Next steps
- Architecture Overview — how all the pieces fit together
- Installation — get FlowDrop into your project
- Tutorial — build your first workflow editor step by step