{
"$type": "site.standard.document",
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Happy December everyone!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "‘Tis the season for sharing your best finds 🤓📚☕❄"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "http://Semble.so"
}
],
"index": {
"byteEnd": 154,
"byteStart": 145
}
}
],
"plaintext": "To celebrate the end of the year and get our holiday reading lists in shape, we're inviting you to make a “💎 Top picks of 2025” list on Semble.so with books, articles, videos, tools, or anything worth passing on!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://semble.so/home"
}
],
"index": {
"byteEnd": 174,
"byteStart": 163
}
}
],
"plaintext": "We’ll feature your picks in a special end-of-year “💎 Gems of 2025” feed on Semble. To get started, just login to Semble and follow the directions on the Home screen to create your list or view others:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"alt": "",
"aspectRatio": {
"height": 955,
"width": 1323
},
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreiduaozh7hpacdxsq253crwpg5ooabvfpswk2lebwypwnvvluuougu"
},
"mimeType": "image/png",
"size": 520907
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://bsky.app/profile/cosmik.network/post/3ma34ln4jl22y"
}
],
"index": {
"byteEnd": 23,
"byteStart": 11
}
}
],
"plaintext": "Or see our Bluesky post for more details."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 27,
"byteStart": 0
}
}
],
"level": 3,
"plaintext": "New feature: Notifications!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "We added basic notifications, to help spread good attention sharing karma ✨"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "When someone collects a card via your card, you will now receive a notification:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"alt": "",
"aspectRatio": {
"height": 1053,
"width": 1298
},
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreiciyp6upyfcxec2s3mdncfw2ugtdpnul5ijriemgmolbp6iw7eprq"
},
"mimeType": "image/png",
"size": 558005
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 28,
"byteStart": 0
}
}
],
"level": 4,
"plaintext": "Provenance Field in Lexicons"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
],
"index": {
"byteEnd": 146,
"byteStart": 143
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://pdsls.dev/at://did:plc:6z5botgrc5vekq7j26xnvawq/network.cosmik.card/3m7r3yotqam2l#record"
}
],
"index": {
"byteEnd": 210,
"byteStart": 204
}
}
],
"plaintext": "Part of these notifications is tracking where someone saved a card from, so we've updating our lexicons to include a provenance section with a via field which is a strong ref to the original card record. Here's an example of what this looks like:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "{\n \"type\": \"URL\",\n \"$type\": \"network.cosmik.card\",\n \"content\": {\n \"url\": \"<https://lab.leaflet.pub/3m7py65pswk2e>\",\n \"$type\": \"network.cosmik.card#urlContent\",\n \"metadata\": {\n \"type\": \"link\",\n \"$type\": \"network.cosmik.card#urlMetadata\",\n \"title\": \"Atmospheric @-mentions! - Leaflet Lab Notes\",\n \"imageUrl\": \"<https://leaflet.pub/lish/did%253Aplc%253Abtxrwcaeyodrap5mnjw2fvmz/3lppk75kw7k26/3m7py65pswk2e/opengraph-image?6815eb61f733905a>\",\n \"description\": \"Lab Notes 017: mention Bluesky accounts, Leaflet publications, specific posts and more to come — an interface for links across the atmosphere\",\n \"retrievedAt\": \"2025-12-12T03:02:17.305Z\"\n }\n },\n \"createdAt\": \"2025-12-12T03:02:17.305Z\",\n \"provenance\": {\n \"via\": {\n \"cid\": \"bafyreigyya3ofkpxtpqhqtqlcny3vyvcaqfpfnzn4pikk6elt2ckvx5qcq\",\n \"uri\": \"at://did:plc:rtf3bjc3w2yn4syxtm4r7jt2/network.cosmik.card/3m7q5sjs2gs2d\"\n },\n \"$type\": \"network.cosmik.defs#provenance\"\n }\n}"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "If you include this field, the author of the referring card will get a notification that you saved their card. We’ll update the Semble PDS Client to include this field soon."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 18,
"byteStart": 0
}
}
],
"level": 3,
"plaintext": "Recent Collections"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Some of you have asked for this - when you add a new card you will now see your recent collections in the “Add to collections” section:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"alt": "",
"aspectRatio": {
"height": 440,
"width": 784
},
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreihauufxjanj54ia7ebw7uzgtnpnmfpvgtordr4yhqjc7lg5uc22qa"
},
"mimeType": "image/png",
"size": 71625
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"level": 3,
"plaintext": "Community highlights"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://bsky.app/profile/did:plc:mdjhvva6vlrswsj26cftjttd"
}
],
"index": {
"byteEnd": 1,
"byteStart": 0
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "http://laurenshof.online"
}
],
"index": {
"byteEnd": 18,
"byteStart": 1
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://traverse.connectedplaces.online/"
}
],
"index": {
"byteEnd": 384,
"byteStart": 344
}
}
],
"plaintext": "@laurenshof.online created the latest ATmosphere Report with a curated collection of interesting atproto articles from November. What's cool about this is that the curated links are now on-protocol as a Semble collection, with a custom page that lets you view them alongside ATmosphere mentions, on Semble, Leaflet and Bluesky. Check it out at https://traverse.connectedplaces.online/!"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.website",
"src": "https://bsky.app/profile/laurenshof.online/post/3m73t3pxx3s2r",
"title": "Bluesky post"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://bsky.app/profile/did:plc:rtf3bjc3w2yn4syxtm4r7jt2"
}
],
"index": {
"byteEnd": 1,
"byteStart": 0
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "http://ronentk.me"
}
],
"index": {
"byteEnd": 11,
"byteStart": 1
}
}
],
"plaintext": "@ronentk.me vibe-coded a proof-of-concept Notion → Semble integration using our PDS client! We’re very excited by the idea of Semble as a protocolized social layer for personal knowledge tools, and AI code assistants make these bespoke indie integrations so much easier."
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.bskyPost",
"clientHost": "bsky.app",
"postRef": {
"cid": "bafyreihhudyazfllybmni27pqnlhvqkqqhj3ecabywqabd6hs4xiqvwpfq",
"uri": "at://did:plc:rtf3bjc3w2yn4syxtm4r7jt2/app.bsky.feed.post/3m7bdiafdfc2x"
}
}
}
],
"id": "9c84bd14-3553-4b5b-bf33-46e3de810b68"
}
]
},
"description": "Curate your picks of 2025, spreading attention karma with new Semble notifications, and some cool indie Semble integrations",
"path": "/gems-of-2025",
"publishedAt": "2025-12-16T15:57:28.000Z",
"site": "at://did:plc:b2p6rujcgpenbtcjposmjuc3/site.standard.publication/3mmoxvpprr22s",
"tags": [],
"title": "Cosmik December Lab Notes: 'Tis the season for sharing your best finds, and other Semble updates"
}