Graphdraft is a modelling tool — not a diagramming tool. Define nodes, relationships and properties with real-time validation, then export to Cypher, Mermaid, GraphML and 8 more formats.
Works offline. Needs no install. No account required to start.
Free in both editions · No analytics · Import your existing model in seconds
| Diagramming tools | Graphdraft | |
|---|---|---|
| Labels, property keys, cardinality | Just boxes and arrows | Real schema semantics |
| Unique & required property flags | No | Yes |
| Uniqueness & index constraints | No | Yes |
| Validation while you work | Errors surface at export | Flagged in a running list as you type |
| Stable layout | Diagram reshuffles itself | Pin nodes — they stay pinned |
Eleven export formats — for the database, the diagram tool, the docs, and the person who just wants a spreadsheet — and import back from any of them.
Cypher with constraints, indexes and parameterised CREATE / MERGE statements, ready to run.
GraphML opens in yEd, Gephi and Cytoscape. Mermaid renders natively in GitHub, Notion and Confluence.
Three CSV shapes: a one-row-per-relationship review sheet, a detailed sheet with cardinality and notes, and a one-row-per-property data dictionary. The dictionary also exports as a document, a table per node.
Import an existing model in any format; Graphdraft auto-detects it. Replace or merge, with an automatic snapshot before replacing.
Start with the single file. Graduate to the web app when you need sharing. Your models import cleanly between them.
| Single file | Web app | |
|---|---|---|
| Account | None | Required |
| Where the model lives | Your browser's local storage | Your account, synced |
| Works offline | Yes — it is one HTML file | No |
| Modelling, validation, exports | All of it | All of it |
| Version snapshots | Yes, pruned to fit local storage | Yes, unlimited |
| Sharing and roles | — | Owner, editor, commenter, viewer |
| Comments in context | — | Yes |
| Change log | — | Yes |
| Price | Free | Free |
Price: free. Both editions. No asterisks.
Threads attach to a node or a relationship, so "this should be a relationship, not a property" lands on the thing it is about.
Entries are generated from the same diff that writes the data, so the history cannot drift from what was actually saved.
Label a version before a risky change and restore it whole. Imports snapshot automatically.
Or import an existing model from Cypher, GraphML or Mermaid.