{
  "nodes": [
    {
      "ID": "guide",
      "name": "Start here",
      "type": "Guide",
      "properties": {},
      "description": "This is a fill-in template for Substack posts: the publication, the people who write it, each post, the topics it covers, the sources it cites and the key ideas worth keeping. The nodes around this one are samples, one of each type. Edit them, or replace them with your own.\n\nHow to add your own node:\n1) Right-click the empty canvas where the node should go and choose Create node here. Shortcut: Cmd/Ctrl-click the empty canvas.\n2) In Add new node, enter a unique ID, a Name and a Description, and pick a Type from the list below. The ID cannot be changed later.\n3) Fill in the fields that appear for that type, then confirm. Drag the new node next to the nodes it belongs with.\n4) To link two nodes, Cmd/Ctrl-click the first node, then the second. In Add new link, enter a short name such as \"is about\" in Name1. Add Name2 if it reads differently from the other side, such as \"is covered in\". Set Direction 0 (no arrow), like the sample links, and confirm.\n5) Click Save in the top toolbar after each change and keep the address it shows. A reload loses anything not saved.\n\nTypes in this template:\n- Publication: the newsletter itself, what it covers and for whom.\n- Post: one piece published in it, with its date, audience and reader response.\n- Author: a person who writes posts.\n- Topic: a subject that posts cover, with the Substack tag if there is one.\n- Source: an article, paper, book or dataset a post cites.\n- Key idea: a claim, quote or takeaway from a post, in your own words.\n\nEvery date (YYYY-MM-DD) and every number needs a value; text and list fields may stay empty. Likes, Comments and Restacks are counted on the As of date. Post kind is Newsletter, Podcast, Video or Thread; Audience is Free or Paid. For a Key idea, Kind is Claim, Quote or Takeaway and Location says where in the post it sits.\n\nDelete a sample only once one of your own nodes has its type: a type that no node uses is dropped at Save.",
      "size": 3,
      "position": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "publication-1",
      "name": "The Slow Commute",
      "type": "Publication",
      "properties": {
        "URL": "https://slowcommute-example.substack.com",
        "Language": "English"
      },
      "description": "A weekly newsletter about how people get around mid-sized cities, written for commuters, local councillors and anyone tired of sitting in traffic. Each issue takes one street, scheme or study and asks what actually changed for the people who use it, mixing local reporting with plain-language readings of transport research.",
      "size": 2.4,
      "position": {
        "x": 10,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "post-1",
      "name": "Why Protected Bike Lanes Fill Up Faster Than Planned",
      "type": "Post",
      "properties": {
        "URL": "https://slowcommute-example.substack.com/p/protected-lanes-fill-up",
        "Subtitle": "The planners counted today's cyclists. They should have counted tomorrow's.",
        "Published": "2026-05-12",
        "Post kind": "Newsletter",
        "Audience": "Free",
        "Word count": 1840,
        "Likes": 312,
        "Comments": 47,
        "Restacks": 26,
        "As of": "2026-10-20"
      },
      "description": "The post follows the new protected lane on Riverton's Mill Road, which was sized for the 400 cyclists a day counted before construction and carried more than 1,100 a day within a year. It argues that the original count measured only the people brave enough to ride in traffic, explains how separated lanes bring in riders who never cycled before, and ends with three questions councils should ask before sizing the next lane.",
      "size": 2,
      "position": {
        "x": 27,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "author-1",
      "name": "Priya Nandakumar",
      "type": "Author",
      "properties": {
        "URL": "https://substack.com/@priyanandakumar-example",
        "Handle": "@priyanandakumar-example"
      },
      "description": "Priya Nandakumar is a former transport planner who left a city council job to write about streets for the people who use them. She cycles to work all year, reads council traffic reports for fun and writes every issue of the newsletter herself, often with photos and counts she gathers on her own commute.",
      "size": 1.5,
      "position": {
        "x": 19.206,
        "y": 4.5,
        "z": 0
      }
    },
    {
      "ID": "topic-1",
      "name": "Induced demand",
      "type": "Topic",
      "properties": {
        "Tag": "Induced demand"
      },
      "description": "Induced demand is the pattern in which adding capacity for a way of travelling draws in more trips of that kind than existed before. It is best known from road widening, where new lanes fill up with new traffic, and the same effect works for walking, cycling and public transport, which is why counts taken before a scheme tend to underestimate how many people will use it.",
      "size": 1.5,
      "position": {
        "x": 27,
        "y": 9,
        "z": 0
      }
    },
    {
      "ID": "source-1",
      "name": "Riverton Cycle Count Report 2025",
      "type": "Source",
      "properties": {
        "URL": "https://www.example.org/riverton-cycle-count-2025",
        "Kind": "Data",
        "Publisher": "Riverton Transport Department"
      },
      "description": "The city's annual report on automatic and manual cycle counts at forty locations, published each spring with a year of daily figures. The 2025 edition is the first to include a full year of counts on the Mill Road protected lane, together with the counts taken at the same spot before the lane was built.",
      "size": 1.5,
      "position": {
        "x": 31.5,
        "y": -7.794,
        "z": 0
      }
    },
    {
      "ID": "keyidea-1",
      "name": "Safe lanes create their own riders",
      "type": "Key idea",
      "properties": {
        "Kind": "Claim",
        "Location": "Third section"
      },
      "description": "The central claim of the post is that a protected lane does not just serve existing cyclists but creates new ones, because most people who would like to cycle stay off a road until they feel physically separated from cars. Sizing a lane by the cyclists already on the road therefore builds it too small from the first day.",
      "size": [6, 1.4],
      "position": {
        "x": 37,
        "y": 0,
        "z": 0
      }
    }
  ],
  "links": [
    {
      "node1": "guide",
      "node2": "publication-1",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0
    },
    {
      "node1": "publication-1",
      "node2": "post-1",
      "name1": "is published in",
      "name2": "publishes",
      "direction": 0
    },
    {
      "node1": "author-1",
      "node2": "post-1",
      "name1": "is written by",
      "name2": "writes",
      "direction": 0
    },
    {
      "node1": "author-1",
      "node2": "publication-1",
      "name1": "is run by",
      "name2": "runs",
      "direction": 0
    },
    {
      "node1": "topic-1",
      "node2": "post-1",
      "name1": "is about",
      "name2": "is covered in",
      "direction": 0
    },
    {
      "node1": "source-1",
      "node2": "post-1",
      "name1": "cites",
      "name2": "is cited by",
      "direction": 0
    },
    {
      "node1": "post-1",
      "node2": "keyidea-1",
      "name1": "is in",
      "name2": "contains",
      "direction": 0
    },
    {
      "node1": "source-1",
      "node2": "keyidea-1",
      "name1": "is backed by",
      "name2": "backs",
      "direction": 0
    }
  ],
  "visuals": [
    {
      "nodeType": "Guide",
      "shape": "star",
      "borderColor": "#e8684a"
    },
    {
      "nodeType": "Publication",
      "shape": "circle",
      "borderColor": "#7262fd"
    },
    {
      "nodeType": "Post",
      "shape": "hex",
      "borderColor": "#5b8ff9"
    },
    {
      "nodeType": "Author",
      "shape": "hex[7]",
      "borderColor": "#9661bc"
    },
    {
      "nodeType": "Topic",
      "shape": "hex[5]",
      "borderColor": "#61ddaa"
    },
    {
      "nodeType": "Source",
      "shape": "hex[8]",
      "borderColor": "#f6903d"
    },
    {
      "nodeType": "Key idea",
      "shape": "rectangle",
      "borderColor": "#f6bd16"
    }
  ],
  "dataTypes": {
    "URL": "string",
    "Language": "typelist",
    "Handle": "string",
    "Subtitle": "string",
    "Published": "datetime",
    "Post kind": "typelist",
    "Audience": "typelist",
    "Word count": "int",
    "Likes": "int",
    "Comments": "int",
    "Restacks": "int",
    "As of": "datetime",
    "Tag": "string",
    "Kind": "typelist",
    "Publisher": "string",
    "Location": "string"
  },
  "detailView": [
    {
      "nodeType": "*",
      "own": "*",
      "others": []
    }
  ]
}
