{
  "path": "/3mejtzath722t",
  "site": "at://did:plc:b2p6rujcgpenbtcjposmjuc3/site.standard.publication/3m3axfv5hms24",
  "tags": [],
  "$type": "site.standard.document",
  "title": "Lab Notes #006: Open Collections and Community Stewardship",
  "content": {
    "$type": "pub.leaflet.content",
    "pages": [
      {
        "id": "019c44ba-b34e-7bbb-b0a6-f7043519d1b5",
        "$type": "pub.leaflet.pages.linearDocument",
        "blocks": [
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 38,
                    "byteStart": 22
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "Today we're launching Open Collections: a new way to collaboratively curate content in Semble."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 51,
                    "byteStart": 30
                  },
                  "features": [
                    {
                      "uri": "https://atprotocommunity.leaflet.pub/3m5pejic4fk2p",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 237,
                    "byteStart": 221
                  },
                  "features": [
                    {
                      "did": "did:plc:6z5botgrc5vekq7j26xnvawq",
                      "$type": "pub.leaflet.richtext.facet#didMention"
                    }
                  ]
                }
              ],
              "plaintext": "Ever since we participated in community discussions during the late October Montreal meetup in 2025, we've been thinking about collaboration patterns in Semble and ATProto. We aren't the only ones thinking about this and @wesleyfinck.org started compiling some resources on this topic in an open collection (which you can contribute to!):"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "src": "https://semble.so/profile/wesleyfinck.org/collections/3mehiezrhd52k",
              "$type": "pub.leaflet.blocks.website",
              "title": "Community Patterns on ATProto (by Wesley Finck) — Semble",
              "description": "View Wesley Finck's collection on Semble",
              "previewImage": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreibsllg42myhrwddfjfoyi5tjd6w55ixmqev7blph3i62cisaiomri"
                },
                "mimeType": "image/png",
                "size": 9729
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "We see open collections as an initial step towards realizing some of the potential ATProto offers for community stewardship. This post gets into the details of how open collections work and where we see collaboration in Semble heading in the future."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "How it works"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 3,
              "facets": [],
              "plaintext": "Creating and Updating Open Collections"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Whether you are creating a new collection or modifying an existing one, you now have the option to set the Collaboration type: Personal (only you can add cards) or Open (anyone can add cards). Here's what that looks like:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "alt": "screenshot of the create collection popup in Semble, showing the option to make it personal or open",
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreibyovm2bmjhf7pz4ig4zwuydpqubfgdxlxzdpm2diimlj327danje"
                },
                "mimeType": "image/png",
                "size": 180926
              },
              "aspectRatio": {
                "width": 1920,
                "height": 935
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "alt": "screenshot of the edit collection popup in Semble, showing the option to make it personal or open",
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreifa2t63xktqeawzhuev7zlc7uqohqsoxr4uqeaidq7kjrzbamvdre"
                },
                "mimeType": "image/png",
                "size": 363939
              },
              "aspectRatio": {
                "width": 1920,
                "height": 935
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 3,
              "facets": [],
              "plaintext": "Adding to Open Collections"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "To add a card to an open collection, you can access a list of open collections in the same popup that you use to save cards to your own collections. Now there are two tabs: \"My Collections\" and \"Open Collections:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "alt": "screenshot of the collect card popup in semble, showing a list of open collections it can be added to",
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreicojfkm3a3phsjvkut23h46hwnk4djytztbsrgb4yle3lxqpupfai"
                },
                "mimeType": "image/png",
                "size": 421315
              },
              "aspectRatio": {
                "width": 1920,
                "height": 935
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "You can also add a card to the collection directly from the collection page by clicking the \"Add Card\" button in the top right. You'll see a drawer like this open with the open collection pre-selected:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "alt": "screenshot of the collect new card drawer with an open collection pre-selected",
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreiaaetwrovfpsk7ihd7v6xokpxcjfqhppddkfvlxhxgjyxuhwe2ezy"
                },
                "mimeType": "image/png",
                "size": 166309
              },
              "aspectRatio": {
                "width": 1920,
                "height": 933
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 52,
                    "byteStart": 47
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 73,
                    "byteStart": 69
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "In the feed, open collections are indicated by green text instead of pink."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "alt": "screenshot of a feed activity in semble showing someone adding a card to an open collection (uses green text instead of pink)",
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreihg7rsl66hytn5ywdq2x2hiwwskfrfyspby5eb4pcgy6lxe7s7hse"
                },
                "mimeType": "image/png",
                "size": 175719
              },
              "aspectRatio": {
                "width": 1920,
                "height": 933
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "If someone adds a card to your open collection, you'll get a notification:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "alt": "screenshot of a semble notification showing someone else adding a card to your open collection",
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreiavetuzgxxpay2ny6c7jfdm27nbiwbnusrfx4cwnc4pzsp54pil5m"
                },
                "mimeType": "image/png",
                "size": 168547
              },
              "aspectRatio": {
                "width": 1905,
                "height": 934
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 3,
              "facets": [],
              "plaintext": "Moderating Open Collections"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "You can remove any card regardless of who added it if you are the creator of the collection."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "alt": "screenshot of the context menu options on a card in an open collection added by someone else, showing the collection creator the option to remove the card",
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreibqmjc2uizttzfsyeoqe7wuqt55i36kian4rt3oyxi2ocv7wmdqrm"
                },
                "mimeType": "image/png",
                "size": 179469
              },
              "aspectRatio": {
                "width": 1919,
                "height": 932
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Otherwise, you can only remove cards that you've added:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "alt": "screenshot of the context menu options on a card in an open collection added by someone else, showing the card contributor the option to remove the card",
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreiawryzjm2plr7oz4dzafhp6d4tfqwh637bcpov2ge6lzqamktmshq"
                },
                "mimeType": "image/png",
                "size": 249223
              },
              "aspectRatio": {
                "width": 1920,
                "height": 934
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 3,
              "facets": [],
              "plaintext": "Open Collection Directory"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "You can find all the open collections here:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "src": "https://semble.so/explore/open-collections",
              "$type": "pub.leaflet.blocks.website",
              "title": "Open Collections — Semble",
              "description": "Open Collections",
              "previewImage": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreibrdwsm2svhpx5lrk4nyxsjavpr7ivuivpksq5ysfb4gnaoianytu"
                },
                "mimeType": "image/png",
                "size": 16492
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "How it works at the ATProto level"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 199,
                    "byteStart": 185
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 320,
                    "byteStart": 306
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                }
              ],
              "plaintext": "Open Collections work mostly like Personal ones, the only difference is how to handle contributions from other users. When another user contributes to an open collection, they create a collectionLink record pointing from their card to the open collection. If they remove that card from the collection, the collectionLink record is subsequently deleted."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 117,
                    "byteStart": 103
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 247,
                    "byteStart": 211
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 309,
                    "byteStart": 295
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 340,
                    "byteStart": 334
                  },
                  "features": [
                    {
                      "uri": "https://pdsls.dev/at://did:plc:2cxgdrgtsmrbqnjkwyplmp43/network.cosmik.collectionLinkRemoval/3mebqlovozs2d",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "However, if the collection creator removes a card from the collection, they are not able to delete the collectionLink record which is in someone else's repository. Instead, we've introduced a new record schema, network.cosmik.collectionLinkRemoval, which points to the collection as well as the collectionLink which is to be removed. Here's an example of what that looks like."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "What's next?"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 266,
                    "byteStart": 252
                  },
                  "features": [
                    {
                      "uri": "https://bnewbold.leaflet.pub/3me3ea64bhk26",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "As we said above, this is a first step towards collaboration in the Atmosphere. There are two more forms of collaboration we want to roll out into Semble in the future: (1) scoped collaboration on personal collections, and; (2) teams/communities using group accounts."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Scoped collaboration would let you invite contributors to your collections, and only they can add cards to those collections, as opposed to anyone on Semble."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 273,
                    "byteStart": 255
                  },
                  "features": [
                    {
                      "uri": "https://www.colorado.edu/lab/medlab/2021/01/08/implicit-feudalism-why-online-communities-still-havent-caught-my-mothers-garden-club",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Teams/communities would have their own account and profile page in Semble and anyone who is part of the team can add to any of its collections. With this approach, there would be more granular member management, ideally at the protocol layer and without \"implicit feudalism\"."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "We're excited to see how you all make use of open collections to collaboratively curate and crowd-source quality content from across the web."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Here are a few open collections we invite you to contribute to:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "src": "https://semble.so/profile/semble.so/collections/3mehorum4yv2j",
              "$type": "pub.leaflet.blocks.website",
              "title": "ATProto Memes (by Semble) — Semble",
              "description": "View Semble's collection on Semble",
              "previewImage": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreiexvljmracfopcrpmbruzubmddzlm6djpmchmdpk5ygvbb5d5264y"
                },
                "mimeType": "image/png",
                "size": 9102
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "src": "https://semble.so/profile/atproto.science/collections/3mehbxpsat32x",
              "$type": "pub.leaflet.blocks.website",
              "title": "ATProto Science Community Garden (by ATProto Science) — Semble",
              "description": "Open collection for ATProto science related content: projects, tools, research or anything else you think is relevant!",
              "previewImage": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreiebcpexzs5b7k7h4krnvdkfnpeovurbjqrkbre4pjqgckydfntgqm"
                },
                "mimeType": "image/png",
                "size": 11480
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.bskyPost",
              "postRef": {
                "cid": "bafyreicf3rjac2r2xhojpikc4lcadnzp5ure5avqucih7yy7xkk4ml2u4u",
                "uri": "at://did:plc:ad5bwszsc5m5jpj2sfa6uzjk/app.bsky.feed.post/3meire24mbs2t"
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "That's all for now, folks."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Happy collaboration! 🌱"
            }
          }
        ]
      }
    ]
  },
  "description": "Details on our first step towards supporting community stewardship and collaborative curation",
  "publishedAt": "2026-02-10T20:56:42.406Z"
}