What we capture, and what we don't.
The diagram viewer records the structural shape of each diagram you render — anonymous topology, no source text — so the renderer can be improved against the diagrams people actually draw. Product analytics (PostHog EU) separately measures usage metadata with a first-party id we set only if you accept. This page lists the capture fields, shows your analytics id when available, and gives you switches for both. Full legal detail lives in the privacy policy.
When Line9 successfully parses a diagram, the canonicaliser produces a structural fingerprint: nodes relabelled in canonical order, edges with directions and endpoints, node shape categories, and subgraph nesting. That fingerprint is written to a private corpus so the project owner can re-render entries against the current Line9 and find layouts that need work. Separately, a small render event is recorded — outcome, timing, viewport, theme — so error rates and performance are visible.
The Mermaid source you type, all node and edge labels, your node IDs, comments, colours, and any other free-form content stay on your device. The wire format structurally cannot carry them — there is no source field, no labels field, no free-text error message.
Each topology write is a JSON document with exactly these fields:
topology_keyContent hash of the canonical structural form.topology_key_versionVersion of the canonicalisation algorithm that produced the key.canonical_graphAnonymous graph: vertices in canonical order, edges with directions and endpoints, node shape categories, subgraph nesting.
Dimensions:
render_statussuccess, layout_error, unknown_error, or parse_error (whole-source arrivals only).render_error_codeEnumerated failure category from @line9/core when status is not success.diagram_typeParsed diagram kind (e.g. flowchart, sequenceDiagram).themeSelected diagram theme.orientationportrait or landscape, as the viewer rendered it.line9_versionVersion string of @line9/core at render time.topology_keyStructural identifier; absent for diagram kinds the canonicaliser does not yet handle.topology_key_versionCanonicaliser version; present whenever topology_key is.referrer_hostHostname of document.referrer only — no path, no query.arrival_originHow the source arrived (paste, share_hash, published, example). Present only on parse_error.
Metrics:
render_duration_msWall-clock time from parse start to render end.viewport_widthCSS pixels of the rendering viewport.viewport_heightCSS pixels of the rendering viewport.spacing_scaleMultiplier on inter-node and edge spacing.node_scaleMultiplier on node size.
Render events and Cloudflare operational analytics continue regardless, because they carry no user content and no per-user identifiers; they are operational signal needed to manage the service. Product analytics (below) is a separate control.
Line9 uses PostHog (EU cloud, first-party proxy) for product usage — page views and curated events such as render/export/share. Diagram source and labels never leave the browser for this path. We ask before setting a durable first-party id. Accepting lets us stitch sessions across visits; declining, or not choosing, keeps the id memory-only while in-memory analytics continues. See the privacy policy § 9.
… When checked, a first-party analytics id is stored in this browser (localStorage + cookie)
so visits can be stitched. Leave it unchecked — or reject on the banner — to keep the id
memory-only. Usage events may still be sent for the current session either way. Storage key: line9_analytics_consent.