Quickstart¶
Get a basic React Flow canvas running with labeled nodes, a single edge, and schema-backed editors. By the end of this page you will have an interactive graph that auto-generates editing forms from a JSON Schema.

Install¶
Minimal app¶
Required Extension
ReactFlow uses Panel's JSONEditor widget for editing node and edge data.
You must call pn.extension("jsoneditor") before creating ReactFlow instances
to ensure the extension loads correctly. This should be done early in your
application, typically right after your imports.
import panel as pn
from panel_reactflow import ReactFlow
pn.extension("jsoneditor")
nodes = [
{
"id": "start",
"type": "panel",
"label": "Start",
"position": {"x": 0, "y": 0},
"data": {"status": "idle", "priority": 1},
},
{
"id": "finish",
"type": "panel",
"label": "Finish",
"position": {"x": 350, "y": 0},
"data": {"status": "done", "priority": 2},
},
]
edges = [
{"id": "e1", "source": "start", "target": "finish"},
]
flow = ReactFlow(
nodes=nodes,
edges=edges,
editor_mode="node",
sizing_mode="stretch_both",
)
flow.servable()
Run¶
What you just used¶
labelis a top-level node field (not part ofdata).node_typesdescribe structure and schema only.- The default editor auto-generates widgets from the JSON Schema.