What is Schematify?

A visual tool for exploring systems of entities and their relationships

Schematify is a visual tool for exploring systems of entities and their relationships. The core idea: you don’t draw the graph, you define the model.

A Schematify graph is a JSON document describing your system’s components, how they connect, and their current state. You provide the data; Schematify produces the visual. No canvas, no manual layout. Source in, graph out.

Because the graph is source-defined, it can be edited, generated, reviewed, and curated like any other structured file. No magic, no lock-in, just a well-defined spec that works with the tools you already use.

Start with the inline editor, then go deeper with the CLI, Scriptable Graphs for defining graphs programmatically in TypeScript, and AI agent skills that help your agent build, generate, and edit Schematify source files.

This approach scales to complexity that drawing tools can’t handle: hundreds of nodes, deep hierarchies, cross-cutting relationships, and real-time status, all in a single navigable view.

What can you visualise?

Any system that has entities and relationships between them. Common use cases in software infrastructure:

  • Service architectures and microservice maps
  • Database schemas and their connections
  • Deployment topologies across environments
  • Kubernetes clusters, pods, and services
  • Network diagrams and dependency graphs

The data model is general purpose. Organisational charts, supply chains, logistics networks, process flows. If it has structure and state, Schematify can render it.

Defining a graph

A graph is a JSON document. There are two ways to produce one.

Write it by hand

Author a graph document in JSON that conforms to the Schematify schema, then upload it through the Document Manager or push it via the CLI. Good for one-off models and exploring the format.

TypeScript scripts (the CLI runner)

The more powerful path is a TypeScript script that builds and publishes your graph in code. Write a script that queries the sources already describing your system (internal APIs, databases, cloud provider APIs, infrastructure tooling), assembles the graph from live data, and pushes it. Run it from CI or on a schedule and the graph stays current on its own.

Scripts can also stream live updates onto a published graph: node status, metrics, or labels pushed continuously as the underlying system changes. Scripting has its own section covering this in depth.

AI-powered generation

Connect your preferred AI agent to Schematify through the CLI’s MCP server. Agents can generate graph documents from descriptions, documentation, or code analysis, then push them directly into Schematify. This is covered in the AI Integration section.

Key concepts

Nodes

Nodes are the entities in your graph. Each node has a label, a type, and an optional status.

Attributes

Attributes are key-value metadata attached to nodes: labels displayed on the node’s face, values feeding reports or charts, or metrics driving live status indicators.

Attributes can be static (delivered with the document) or dynamic (connected to a real-time pipeline, updating as the underlying system changes).

Hierarchy

Nodes exist in a tree structure with parent-child relationships. A “Kubernetes Cluster” node might contain “Namespace” nodes, which contain “Pod” nodes. Groups can be expanded and collapsed to manage complexity.

Relations

On top of the hierarchy, nodes can have cross-cutting connections. A service node in one branch can link to a database node in a completely different branch, letting you see both the tree structure and the web of connections at once.

Status

Nodes carry real-time status (healthy, warning, error, and more) displayed as coloured badges. Status bubbles up through the hierarchy, so a parent group always surfaces the highest-priority status from any child. One error among hundreds of healthy nodes is visible without expanding a single group.

Filters

Five filter types give precise control over what’s visible: isolate specific nodes, exclude noise, reveal hidden connections, or progressively build the exact view you need.

A full DSL lets you query across node labels, types, attributes, and status. Find what you’re looking for in seconds, even in graphs with thousands of nodes, and turn search results into filters with one click.

Bookmarks

Save the current state of your graph (filters, expanded groups) and return to it later. Switch between different perspectives on the same data instantly, or share view configurations with your team.

What’s next

To get hands-on quickly, the Quickstart walks you through loading a graph and using the core features in about five minutes. For a deeper look at each feature, see the Graph Viewer. For AI-powered generation, see AI Integration.