Contributing
Add a template
One file, one registration line, one pull request.
- 1Create the file
src/lib/templates/my-system.ts— put large real-world systems insrc/lib/templates/big/. - 2Register itExport it from
src/lib/templates/index.ts. - 3Check itLoad it from the Templates dialog, then press Run — the simulation is a fast sanity check that the graph flows the way you intended.
The shape
import { MarkerType } from "reactflow"
export const MyTemplate = {
id: "my-system",
name: "My System",
description: "One line describing what this architecture shows.",
nodes: [
{
id: "client",
type: "nautilusNode",
position: { x: 0, y: 0 },
data: {
label: "Mobile Client",
icon: "client_mobile", // must exist in the icon reference
color: "blue", // default | blue | green | red | yellow | purple | orange
description: "iOS / Android app",
},
},
],
edges: [
{
id: "e-client-api",
source: "client",
target: "api",
type: "deletableEdge",
markerEnd: { type: MarkerType.Arrow },
},
],
}What makes a good template
- Top-to-bottom layout: clients at the top, storage at the bottom.
- A description on every node — that is what the template teaches.
- Colour by role, matching the rest of the library.
- No cycles unless the real architecture has one.
- Enough components to be realistic, few enough to be readable — roughly 8 to 20.
Node ids are local to the template, so short readable ids like api or orders-db are better than UUIDs.