Overview¶
flow-dash is a minimal flow-graph editor and runtime scaffold built on Deno. It presents a palette of reusable objects which you can drag onto a canvas and connect with directed links. The visual graph can be saved as a JSON project and reloaded later.
Goals¶
GNU Radio Companion–style interaction model
Simple server using
Deno.servefor static files and JSON APIsPluggable storage for projects (filesystem, memory, Deno KV)
Lightweight, framework-free browser UI written in plain JavaScript
Key Concepts¶
Palette: Declared in
palette_objects.json. Each palette entry references a per-object definition file under./objproviding connector metadata and optional code snippets.Nodes: Instances on the canvas referencing a palette object’s
guid. Nodes render with a header and labeled connector handles.Connectors: Two kinds —
source(right side) andsink(left side). Links must connect source → sink.Edges: Directed connections rendered as SVG Bezier curves with arrowheads.
Projects: Saved as JSON files named
<id>_prj.jsoncontaining nodes, positions, and edges.
Server and Frontend¶
Server (TypeScript):
main.tsserves/publicand provides JSON APIs under/api.Frontend (JavaScript):
public/contains a small SPA with modules for menu/toolbar/statusbar/palette/canvas.
Storage Adapters¶
Filesystem (local dev)
Memory (default for tests and fallback on Deno Deploy)
Deno KV (recommended for Deploy persistence)
See also: Project JSON Schema for the project JSON shape, and Storage Modes for adapter configuration.