{
  "path": "/3lxkscqchj22j",
  "site": "at://did:plc:xgvzy7ni6ig6ievcbls5jaxe/site.standard.publication/3lxadclji222q",
  "$type": "site.standard.document",
  "title": "You've Got Mail",
  "content": {
    "$type": "pub.leaflet.content",
    "pages": [
      {
        "$type": "pub.leaflet.pages.linearDocument",
        "blocks": [
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [
                {
                  "index": {
                    "byteEnd": 5,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#strikethrough"
                    }
                  ]
                }
              ],
              "plaintext": "Don't Can't @ Me"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 19,
                    "byteStart": 6
                  },
                  "features": [
                    {
                      "uri": "https://augment.leaflet.pub/3lxcznn4bg22f",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "In my first midblog, a fun conversation started in the comments (and beyond!) around how Leaflet doesn't natively support @mentions or quoting. "
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "This led to a larger discussion about how the broader ATProto ecosystem could handle notifications that cross the boundaries of specific apps. A good example of that is @mentions for users who may not have a presence in a particular app or quotes originating from another platform."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 90,
                    "byteStart": 81
                  },
                  "features": [
                    {
                      "uri": "https://bsky.app/profile/bmann.ca",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 115,
                    "byteStart": 106
                  },
                  "features": [
                    {
                      "uri": "https://atproto.leaflet.pub/3lxecysdkfs22/l-quote/5_0-5_142#5_0",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 137,
                    "byteStart": 121
                  },
                  "features": [
                    {
                      "uri": "https://bsky.app/profile/bad-example.com",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 167,
                    "byteStart": 142
                  },
                  "features": [
                    {
                      "uri": "https://tangled.sh/@bad-example.com/spacedust-utils",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "The good news is that progress is already being made on the infrastructure side. @bmann.ca informed us in a Leaflet that @bad-example.com has built this into microcosm."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Hell yeah. Infra's ready to go, so now we build. Right? "
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "Wrong  "
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "The confusing part here is established above: when I @mention Boris and Phil, should the notifications arrive on Bsky or Leaflet? I've @mentioned their Bsky profiles, but I've also mentioned a post on Boris' Leaflet publication and Phil's spacedust repo on Tangled. They also both have a presence on Leaflet, and I @mentioned on Leaflet so...uh...?"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "This cross-app interaction is powerful, but also quickly overloads and overlaps the responsibilities expected of modern services."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "Unified AT Inbox"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 59,
                    "byteStart": 40
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#highlight"
                    }
                  ]
                }
              ],
              "plaintext": "Perhaps the ability for a user to set a notifications inbox is a path forward. By default, let the platform owner decide where things end up, because not every user will need a dedicated cross-app inbox. But there's space here for notification managers that span across the ecosystem for those of us embedding ourselves deeper into the ATProto ecosystem."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "With a dedicated inbox, users can:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.unorderedList",
              "children": [
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "Set common filters across apps"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "Choose which kind of notifications open which apps"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "Avoid duplicate pings from platforms that have overlapping notification systems"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "Choose which apps should skip the inbox and show up on the originating platform"
                  },
                  "children": []
                }
              ]
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "This is obviously heavily inspired by the Android notification system, but that's because I don't like to mess with perfection."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "Continued Brainstorming"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "This is just an early brainstorm, but I'm sure there are other folks who have already been thinking through it. I wanted to share this early so you can tell me if I'm over- or underthinking this."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "So, send me your thoughts, please!"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.horizontalRule"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 114,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 141,
                    "byteStart": 114
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    },
                    {
                      "uri": "https://fed.brid.gy/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 298,
                    "byteStart": 141
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "Side note: I'm also kinda selfishly starting this conversation since a unified inbox can also be applied to users who bridge from ActivityPub. I want this as an ATProto user, but allowing ActivityPub users to set their account as a notifications inbox would help with further fragmentation as well."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          }
        ]
      }
    ]
  },
  "bskyPostRef": {
    "cid": "bafyreibcelf3p3zuyx4hotizm6h4o4rn3i6a4rwwkjshhy5mna3qpdwdwu",
    "uri": "at://did:plc:xgvzy7ni6ig6ievcbls5jaxe/app.bsky.feed.post/3lxkscvl6wc2j",
    "commit": {
      "cid": "bafyreibft7lcpxgiyreiokjmm5p5gxd5a5xrjmwpw3w2s37tdpukvlvwnu",
      "rev": "3lxkscvondl2t"
    },
    "validationStatus": "valid"
  },
  "description": "Brainstorming an ATProto Notifications Inbox",
  "publishedAt": "2025-08-29T19:31:26.955Z"
}