{
  "nodes": [
    {
      "ID": "guide",
      "name": "Start here",
      "type": "Guide",
      "properties": {},
      "description": "This is a fill-in template for a social media feed on any platform: the posts, who wrote them, the people, brands, places and organisations they mention, their topics and hashtags, the links and media they carry and the threads they belong to. 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- Platform: the network or server the feed comes from.\n- Post: one post, with its text in the description and its reactions.\n- Author: the account that wrote a post.\n- Mentioned entity: a person, brand, place or organisation a post mentions.\n- Topic: a subject of posts, with its hashtag if there is one.\n- Link: a web page a post links to.\n- Media: an image, video, audio clip or poll attached to a post.\n- Thread: a conversation, from the opening post through the replies that follow.\n\nEvery date (YYYY-MM-DD) and every number needs a value; text and list fields may stay empty. Likes, Reposts, Replies and Followers are counted on the As of date. Post kind is Original, Reply, Repost or Quote. For a Mentioned entity, Kind is Person, Brand, Place or Organisation; for Media, Kind is Image, Video, Audio or Poll. Link a reply, repost or quote to the post it answers or shares.\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": "platform-1",
      "name": "Mastodon",
      "type": "Platform",
      "properties": {
        "URL": "https://social.example"
      },
      "description": "Mastodon is a decentralised social network made of many independent servers that can follow and reply to each other. Posts are short, appear in time order without an algorithm, and use hashtags to reach people beyond one's own followers. This sample feed comes from a single server whose members write mostly about food and city life.",
      "size": 2.4,
      "position": {
        "x": 10,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "post-1",
      "name": "Opening night at the Riverside Night Market",
      "type": "Post",
      "properties": {
        "URL": "https://social.example/@marcovidal/115000000000000001",
        "Published": "2026-06-05",
        "Post kind": "Original",
        "Likes": 214,
        "Reposts": 38,
        "Replies": 17,
        "As of": "2026-10-20"
      },
      "description": "Opening night at the Riverside Night Market and the queue for Lantern Dumpling Co. already wraps twice around the fountain. Pork and chive dumplings, six for five pounds, crisp on the bottom and worth every minute of the wait. Stalls are back every Friday until the end of October, opening hours in the link. #StreetFood",
      "size": 2,
      "position": {
        "x": 27,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "author-1",
      "name": "Marco Vidal",
      "type": "Author",
      "properties": {
        "URL": "https://social.example/@marcovidal",
        "Handle": "@marcovidal@social.example",
        "Followers": 5820,
        "As of": "2026-10-20"
      },
      "description": "Marco Vidal is a food writer who reviews street food and small restaurants across the city, usually posting on the evening of a visit with one photo and a price. His followers are mostly locals looking for somewhere to eat this weekend, and he answers almost every reply.",
      "size": 1.5,
      "position": {
        "x": 23.922,
        "y": 8.457,
        "z": 0
      }
    },
    {
      "ID": "entity-1",
      "name": "Lantern Dumpling Co.",
      "type": "Mentioned entity",
      "properties": {
        "Kind": "Brand",
        "Handle": "@lanterndumplings@social.example"
      },
      "description": "Lantern Dumpling Co. is a family-run dumpling stall that started at the night market four years ago and now sells from a small shop near the station as well. It makes everything by hand on the day, sells pan-fried and steamed dumplings in sixes, and is known for the longest queue at the market on opening nights.",
      "size": 1.5,
      "position": {
        "x": 22.25,
        "y": -8.227,
        "z": 0
      }
    },
    {
      "ID": "topic-1",
      "name": "Street food",
      "type": "Topic",
      "properties": {
        "Hashtag": "#StreetFood"
      },
      "description": "Street food is ready-to-eat food sold from stalls, carts and markets, usually cheap, quick and made in front of the customer. Posts on the topic share where to find good stalls, what to order, prices and queues, and they often follow seasonal markets that run only for a few months a year.",
      "size": 1.5,
      "position": {
        "x": 19.206,
        "y": 4.5,
        "z": 0
      }
    },
    {
      "ID": "link-1",
      "name": "Riverside Night Market opening hours",
      "type": "Link",
      "properties": {
        "URL": "https://www.example.org/riverside-night-market",
        "Domain": "example.org"
      },
      "description": "The market's own page with the season's dates, Friday opening hours from five until eleven in the evening, a map of the stalls along the river path and notes on card payments and step-free access.",
      "size": 1.5,
      "position": {
        "x": 32.785,
        "y": 6.894,
        "z": 0
      }
    },
    {
      "ID": "media-1",
      "name": "Photo of the dumpling stall queue",
      "type": "Media",
      "properties": {
        "Kind": "Image",
        "URL": "https://social.example/media/example-dumpling-queue.jpg",
        "Alt text": "A long evening queue curving around a stone fountain towards a stall lit by red paper lanterns."
      },
      "description": "A single evening photo taken from the edge of the fountain, showing the queue curving towards the dumpling stall under its red paper lanterns, with steam rising from the griddle behind the counter. It is the only picture attached to the post and is what most replies react to.",
      "size": 1.5,
      "position": {
        "x": 33.718,
        "y": -6.718,
        "z": 0
      }
    },
    {
      "ID": "thread-1",
      "name": "Night market opening thread",
      "type": "Thread",
      "properties": {
        "Started": "2026-06-05"
      },
      "description": "The conversation that grew under the opening night post, where followers swapped tips on when to arrive to avoid the queue, which other stalls were worth trying and whether the market takes cards. The author replied to most questions himself, and the thread ran for two days.",
      "size": [6, 1.4],
      "position": {
        "x": 37,
        "y": 0,
        "z": 0
      }
    }
  ],
  "links": [
    {
      "node1": "guide",
      "node2": "platform-1",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0
    },
    {
      "node1": "platform-1",
      "node2": "post-1",
      "name1": "is published on",
      "name2": "hosts",
      "direction": 0
    },
    {
      "node1": "author-1",
      "node2": "post-1",
      "name1": "is posted by",
      "name2": "posts",
      "direction": 0
    },
    {
      "node1": "entity-1",
      "node2": "post-1",
      "name1": "mentions",
      "name2": "is mentioned in",
      "direction": 0
    },
    {
      "node1": "topic-1",
      "node2": "post-1",
      "name1": "is about",
      "name2": "is covered in",
      "direction": 0
    },
    {
      "node1": "link-1",
      "node2": "post-1",
      "name1": "links to",
      "name2": "is linked from",
      "direction": 0
    },
    {
      "node1": "post-1",
      "node2": "media-1",
      "name1": "is attached to",
      "name2": "carries",
      "direction": 0
    },
    {
      "node1": "entity-1",
      "node2": "media-1",
      "name1": "shows",
      "name2": "is shown in",
      "direction": 0
    },
    {
      "node1": "thread-1",
      "node2": "post-1",
      "name1": "opens",
      "name2": "is opened by",
      "direction": 0
    }
  ],
  "visuals": [
    {
      "nodeType": "Guide",
      "shape": "star",
      "borderColor": "#e8684a"
    },
    {
      "nodeType": "Platform",
      "shape": "circle",
      "borderColor": "#7262fd"
    },
    {
      "nodeType": "Post",
      "shape": "hex",
      "borderColor": "#5b8ff9"
    },
    {
      "nodeType": "Author",
      "shape": "hex[7]",
      "borderColor": "#9661bc"
    },
    {
      "nodeType": "Mentioned entity",
      "shape": "hex[10]",
      "borderColor": "#f08bb4"
    },
    {
      "nodeType": "Topic",
      "shape": "hex[5]",
      "borderColor": "#61ddaa"
    },
    {
      "nodeType": "Link",
      "shape": "hex[8]",
      "borderColor": "#f6903d"
    },
    {
      "nodeType": "Media",
      "shape": "hex[9]",
      "borderColor": "#78d3f8"
    },
    {
      "nodeType": "Thread",
      "shape": "rectangle",
      "borderColor": "#008685"
    }
  ],
  "dataTypes": {
    "URL": "string",
    "Published": "datetime",
    "Post kind": "typelist",
    "Likes": "int",
    "Reposts": "int",
    "Replies": "int",
    "As of": "datetime",
    "Handle": "string",
    "Followers": "int",
    "Kind": "typelist",
    "Hashtag": "string",
    "Domain": "string",
    "Alt text": "string",
    "Started": "datetime"
  },
  "detailView": [
    {
      "nodeType": "*",
      "own": "*",
      "others": []
    }
  ]
}
