Sirendocs

Getting Started

Learn the JSON-first Siren workflow for creating and rendering diagrams.

Siren uses typed JSON to describe diagrams. Write JSON in the editor, validate it, and render it live in the preview panel.

Siren does not invent a custom diagram language. JSON is the canonical format.

Supported Diagram Types

TypeDescription
FlowchartProcess flows, decision trees, pipelines
SequenceAPI calls, service communication, request/response patterns
ArchitectureServices, zones, and infrastructure diagrams
EREntities, fields, and relationships
StateState machines and transitions
ClassUML class diagrams with inheritance and associations
C4C4 model — people, systems, and boundaries
BlockBlock diagrams with nested groups
RequirementRequirements traceability and relationships
TimelineChronological events and milestones
MindmapHierarchical brainstorming and idea maps
Git GraphCommits, branches, and merges
GanttProject schedules with tasks and sections
SankeyFlow quantities between nodes
KanbanTask boards with columns and cards
PiePie and donut charts
Quadrant2×2 prioritization matrices
PacketNetwork protocol header bit layouts

Core workflow

The recommended Siren workflow is:

  1. Create a Siren JSON document
  2. Run validate()
  3. Render with fromJSON()

Basic Structure

Every Siren diagram is a JSON object with a type field that determines the diagram kind:

{
  "type": "flowchart",
  ...
}
{
  "type": "sequence",
  ...
}

Your First Diagram

Paste this into the Playground editor:

{
  "type": "flowchart",
  "direction": "TB",
  "nodes": [
    { "id": "a", "label": "Start", "variant": "primary" },
    { "id": "b", "label": "Do something" },
    { "id": "c", "label": "Done", "variant": "success" }
  ],
  "edges": [
    { "from": "a", "to": "b" },
    { "from": "b", "to": "c" }
  ]
}

Nodes are the boxes. Edges are the arrows between them. Siren handles all the layout automatically.

Next steps

On this page