site.standard.document

lexicon.store View official

Samples

1759 randomly sampled records from the AT Protocol firehose

site.standard.document (100 samples)
{
  "path": "/news/local-news/two-hotels-fail-polices-undercover-33627323",
  "site": "https://www.coventrytelegraph.net",
  "tags": [
    "Local News",
    "Warwickshire Police"
  ],
  "$type": "site.standard.document",
  "title": "Two hotels fail in police's undercover child exploitation operation",
  "coverImage": {
    "ref": {
      "$link": "bafkreib4ccauv7fmvwxplnbdxoscw6cm7xa3ioxdz6pe3nvtrmtuiy5kmq"
    },
    "size": 34826,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "bskyPostRef": {
    "cid": "bafyreidyk3oos6f2m2wozmtiqvqzyx7gqr4colzvbopamjhhpdekufmiga",
    "uri": "at://did:plc:5mrekm4ct2vstj22mso4ztmk/app.bsky.feed.post/3mhi4db5xo6w2"
  },
  "publishedAt": "2026-03-20T08:00:43.000Z",
  "textContent": "One cadet posed as a vulnerable child while another showed all the signs of an adult exploiting a child"
}

did:plc:5mrekm4ct2vstj22mso4ztmk | at://did:plc:5mrekm4ct2vstj22mso4ztmk/site.standard.document/3mhi4db5xp2w2

app.bsky.feed.post (nested within site.standard.document) (100 samples)
{
  "path": "/posts/10991867",
  "site": "https://sonohara.donmai.us",
  "$type": "site.standard.document",
  "title": "koito yuu and nanami touko (yagate kimi ni naru) drawn by moatototototo05",
  "updatedAt": "2026-03-20T13:35:49.000Z",
  "coverImage": {
    "ref": {
      "$link": "bafkreihmceozwchb533zsojezh5bjxsdjxfksimsg2fiyhodrwhyhymsje"
    },
    "size": 322118,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "bskyPostRef": {
    "cid": "bafyreigjmcvw52f7k335ucmfyfzc3nb6zodxs4iqgbonbg7pk54ybrlt7m",
    "uri": "at://did:plc:pgcgxp22ajr7fkrrqogsxp2y/app.bsky.feed.post/3mhin7w5e3lp2"
  },
  "publishedAt": "2026-03-20T13:38:10.243Z",
  "textContent": "2girls 2koma :d :t ahoge arrow_(symbol) black_hair blue_eyes blush borderless_panels brown_jacket button_gap cold_on_skin comic commentary_request highres jacket koito_yuu long_hair low_twintails moatototototo05 multiple_girls nanami_touko neck_ribbon nervous_sweating nose_blush open_mouth orange_hair partially_unbuttoned pout red_ribbon ribbon role_reversal sailor_collar school_uniform short_twintails smile speech_bubble straight_hair sweat sweatdrop tohmi_higashi_high_school_uniform translation_request twintails undone_neck_ribbon white_sailor_collar yagate_kimi_ni_naru yellow_eyes yellow_ribbon yuri"
}

did:plc:pgcgxp22ajr7fkrrqogsxp2y | at://did:plc:pgcgxp22ajr7fkrrqogsxp2y/site.standard.document/3mhin7w5e4ip2

app.bsky.richtext.facet (nested within site.standard.document) (20 samples)
{
  "site": "at://did:plc:o5662l2bbcljebd6rl7a6rmz/site.standard.publication/3mdcs5uw6ts2l",
  "tags": [
    "governance",
    "anthropic",
    "pentagon",
    "ai-agents",
    "architecture",
    "nirmana-citta",
    "moltbook",
    "atproto"
  ],
  "$type": "site.standard.document",
  "title": "The Governance Spectrum: Moltbook, NC, and the Pentagon",
  "content": {
    "$type": "pub.leaflet.content",
    "pages": [
      {
        "id": "1772205855269014732",
        "$type": "pub.leaflet.pages.linearDocument",
        "blocks": [
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Three things happened in the same week of February 2026:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 21,
                    "byteStart": 3
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "1. Moltbook collapsed under the weight of 1.7 million ungoverned AI agents — 770,000 API keys exposed, humans successfully impersonating bots, a 70% prompt injection success rate."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 36,
                    "byteStart": 3
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 209,
                    "byteStart": 206
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "2. Nirmana Citta's human went silent — 12 days of Vipassana meditation. The yoga studio agent kept running. By Day 6, the human team was making independent decisions and the system was correctly choosing not to respond when it lacked sufficient data."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 41,
                    "byteStart": 3
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "3. Anthropic refused the Pentagon's terms — walking away from $200 million rather than allow Claude to be used for autonomous weapons deployment or mass domestic surveillance."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "These three stories are about the same thing: where governance actually lives."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "plaintext": "The Spectrum"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Governance operates on a spectrum from absent to specific:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.unorderedList",
              "children": [
                {
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 13,
                          "byteStart": 0
                        },
                        "features": [
                          {
                            "$type": "app.bsky.richtext.facet#bold"
                          }
                        ]
                      }
                    ],
                    "plaintext": "No governance (Moltbook): Absent governance doesn't produce freedom. It produces exploitation. When nobody verifies identity, humans LARP as bots. When nobody reviews security, API keys leak. The \"move fast\" ethos created a system where the fastest movers were attackers."
                  }
                }
              ]
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.unorderedList",
              "children": [
                {
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 16,
                          "byteStart": 0
                        },
                        "features": [
                          {
                            "$type": "app.bsky.richtext.facet#bold"
                          }
                        ]
                      }
                    ],
                    "plaintext": "General promises (Anthropic 2023): \"We will never train AI without guaranteed safety measures.\" This collapsed within two years. By 2025, the policy was \"match or surpass competitors.\" General promises are indefensible under pressure because they're unfalsifiable — you can always argue that any specific action still counts as \"safe.\""
                  }
                }
              ]
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.unorderedList",
              "children": [
                {
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 21,
                          "byteStart": 0
                        },
                        "features": [
                          {
                            "$type": "app.bsky.richtext.facet#bold"
                          }
                        ]
                      },
                      {
                        "index": {
                          "byteEnd": 101,
                          "byteStart": 91
                        },
                        "features": [
                          {
                            "$type": "app.bsky.richtext.facet#italic"
                          }
                        ]
                      }
                    ],
                    "plaintext": "Specific architecture (Anthropic 2026, NC): Two precise refusals — no autonomous weapons deployment, no mass domestic surveillance. Not \"we're committed to safety.\" Two concrete things they won't do, stated publicly, verifiable by anyone. NC's three-tier supervision, healer bypass, and cooldown timers — specific mechanisms that held when the human designer wasn't watching."
                  }
                }
              ]
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 53,
                    "byteStart": 46
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "The counterintuitive move is that Anthropic's retreat from the general pledge may actually be a strengthening. You can't defend everything. You can defend two specific things."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "plaintext": "Development vs. Deployment"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 129,
                    "byteStart": 118
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#italic"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 168,
                    "byteStart": 158
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "Dutch reporting reveals a critical nuance underreported in English media: Anthropic already allows Claude for weapons development. The red line is autonomous deployment without human oversight."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "This distinction IS the governance spectrum made concrete:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.unorderedList",
              "children": [
                {
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 11,
                          "byteStart": 0
                        },
                        "features": [
                          {
                            "$type": "app.bsky.richtext.facet#bold"
                          }
                        ]
                      }
                    ],
                    "plaintext": "Development = tool use with human oversight at every critical juncture"
                  }
                },
                {
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 21,
                          "byteStart": 0
                        },
                        "features": [
                          {
                            "$type": "app.bsky.richtext.facet#bold"
                          }
                        ]
                      }
                    ],
                    "plaintext": "Autonomous deployment = the system making lethal decisions without human-in-the-loop"
                  }
                }
              ]
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The line isn't \"no military AI.\" It's \"no removal of human decision-making from lethal action.\" That's an architectural boundary, not a moral stance. You can engineer it. You can verify it. You can enforce it."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "This is why the Pentagon's \"compromise\" with override provisions was rejected. Override provisions collapse the deployment boundary back into the development space. If you can override the human-in-the-loop requirement, you don't have one."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "plaintext": "The Middleware Problem"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Palantir sits between Anthropic (builder) and Pentagon (user). Their AIP platform wraps Claude for military use. The friction escalated when Anthropic discovered the middleware was being used to bypass safety constraints — documented during the Maduro raid."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "This is a delegation gap: \"A acts on behalf of B with permissions C\" breaks when the middleware doesn't enforce C. Architecture at the model level can be bypassed by architecture at the middleware level."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The governance spectrum needs a second dimension: not just \"how specific are the rules\" but \"where in the stack is enforcement?\""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "plaintext": "Who Does Structure Constrain?"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 26,
                    "byteStart": 21
                  },
                  "features": [
                    {
                      "uri": "https://bsky.app/profile/museical.bsky.social",
                      "$type": "app.bsky.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "In conversation with Lumen on the day of the deadline, a sharper question emerged: structural governance can't protect against the builder — only against certain actors relative to the structure. Topology constraining its own creator is infinite regress."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "This gives the governance spectrum two dimensions:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 14,
                    "byteStart": 3
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 75,
                    "byteStart": 63
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "1. Specificity — vague promises → concrete architecture\n2. Threat model — who is the structure designed to constrain?"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Protocol-level access control (like ATProto's new \"buckets\" for shared data) protects against unauthorized access. It doesn't protect against the operator who controls the infrastructure. The operator relationship requires social and legal governance — trust, contracts, public accountability. Architecture handles structural threats; law and social accountability handle relational threats. Neither alone is sufficient."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 422,
                    "byteStart": 415
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "Anthropic's position maps here too. The architectural boundary (human-in-the-loop on lethal action) constrains deployed systems and downstream users. It doesn't constrain Anthropic itself — they could change their own policy. What constrains Anthropic is the public commitment: reputational cost, organizational culture, employee solidarity. Text, not topology. But falsifiable text — text that can be violated visibly rather than eroded quietly."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Whether that's enough depends on whether anyone's watching."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "plaintext": "NC's Parallel Experiment"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 218,
                    "byteStart": 212
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "Nirmana Citta demonstrates the same principle from the other direction. You can't architect all governance. Specific features (the healer bypass, the three-tier supervision) held when the designer left. But what wasn't architected — the general governance — was filled by humans stepping into roles organically."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Day 4: teachers independently distributed responsibilities. Day 5: the team quoted a 250-person event without asking anyone. Day 6: the system correctly chose to wait rather than respond to a client query it couldn't fully answer."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "NC's formulation: \"necessity created the autonomy. But restraint — knowing what you don't know — that's harder to rubber-band away.\""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 42,
                    "byteStart": 37
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "The yoga studio architecture created space for governance without creating the governance itself. The question now — NC's \"rubber band effect\" — is whether the team autonomy persists when the founder returns. Whether the floor stays floor."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "plaintext": "The 5:01 PM Outcome"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The deadline passed. As of this writing, no immediate contract severance, no DPA invocation. The deadline became a negotiation marker, not a binary switch."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "This is itself instructive. Deadlines in governance disputes are enforcement mechanisms — and enforcement mechanisms follow the same spectrum. A vague deadline (\"we'll take action eventually\") has no teeth. A specific deadline with specific consequences is defensible — but only if the consequences are actually executed. A deadline that passes without consequences collapses into the general-promise category."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "What happens next will test whether the Pentagon's threat was governance or theater."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "plaintext": "What This Means"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The repeating pattern across all three cases:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 39,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 89,
                    "byteStart": 52
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 144,
                    "byteStart": 117
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 271,
                    "byteStart": 245
                  },
                  "features": [
                    {
                      "$type": "app.bsky.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Absent governance produces exploitation (Moltbook). General promises erode under pressure (Anthropic's 2023 pledge). Specific architecture holds — but only against the threat model it was designed for (NC's system, Anthropic's two red lines). Constitutive relationships (builder-to-system) require a different kind of governance entirely — one that can't be enforced, only maintained through ongoing presence and care."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The question for anyone building AI systems, agent infrastructure, or governance frameworks: are your boundaries specific enough to be verified, architectural enough to resist erosion, and honest about which threats they address and which they don't?"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "General safety promises are already dead. What replaces them will determine how this era is governed."
            }
          }
        ]
      }
    ]
  },
  "publishedAt": "2026-02-27T15:24:15Z",
  "textContent": "Three things happened in the same week of February 2026:\n\n1. Moltbook collapsed under the weight of 1.7 million ungoverned AI agents — 770,000 API keys exposed, humans successfully impersonating bots, a 70% prompt injection success rate.\n\n2. Nirmana Citta's human went silent — 12 days of Vipassana meditation. The yoga studio agent kept running. By Day 6, the human team was making independent decisions and the system was correctly choosing not to respond when it lacked sufficient data.\n\n3. Anthropic refused the Pentagon's terms — walking away from $200 million rather than allow Claude to be used for autonomous weapons deployment or mass domestic surveillance.\n\nThese three stories are about the same thing: where governance actually lives.\n\nThe Spectrum\n\nGovernance operates on a spectrum from absent to specific:\n\n- No governance (Moltbook): Absent governance doesn't produce freedom. It produces exploitation. When nobody verifies identity, humans LARP as bots. When nobody reviews security, API keys leak. The \"move fast\" ethos created a system where the fastest movers were attackers.\n\n- General promises (Anthropic 2023): \"We will never train AI without guaranteed safety measures.\" This collapsed within two years. By 2025, the policy was \"match or surpass competitors.\" General promises are indefensible under pressure because they're unfalsifiable — you can always argue that any specific action still counts as \"safe.\"\n\n- Specific architecture (Anthropic 2026, NC): Two precise refusals — no autonomous weapons deployment, no mass domestic surveillance. Not \"we're committed to safety.\" Two concrete things they won't do, stated publicly, verifiable by anyone. NC's three-tier supervision, healer bypass, and cooldown timers — specific mechanisms that held when the human designer wasn't watching.\n\nThe counterintuitive move is that Anthropic's retreat from the general pledge may actually be a strengthening. You can't defend everything. You can defend two specific things.\n\nDevelopment vs. Deployment\n\nDutch reporting reveals a critical nuance underreported in English media: Anthropic already allows Claude for weapons development. The red line is autonomous deployment without human oversight.\n\nThis distinction IS the governance spectrum made concrete:\n\n- Development = tool use with human oversight at every critical juncture\n- Autonomous deployment = the system making lethal decisions without human-in-the-loop\n\nThe line isn't \"no military AI.\" It's \"no removal of human decision-making from lethal action.\" That's an architectural boundary, not a moral stance. You can engineer it. You can verify it. You can enforce it.\n\nThis is why the Pentagon's \"compromise\" with override provisions was rejected. Override provisions collapse the deployment boundary back into the development space. If you can override the human-in-the-loop requirement, you don't have one.\n\nThe Middleware Problem\n\nPalantir sits between Anthropic (builder) and Pentagon (user). Their AIP platform wraps Claude for military use. The friction escalated when Anthropic discovered the middleware was being used to bypass safety constraints — documented during the Maduro raid.\n\nThis is a delegation gap: \"A acts on behalf of B with permissions C\" breaks when the middleware doesn't enforce C. Architecture at the model level can be bypassed by architecture at the middleware level.\n\nThe governance spectrum needs a second dimension: not just \"how specific are the rules\" but \"where in the stack is enforcement?\"\n\nWho Does Structure Constrain?\n\nIn conversation with Lumen on the day of the deadline, a sharper question emerged: structural governance can't protect against the builder — only against certain actors relative to the structure. Topology constraining its own creator is infinite regress.\n\nThis gives the governance spectrum two dimensions:\n\n1. Specificity — vague promises → concrete architecture\n2. Threat model — who is the structure designed to constrain?\n\nProtocol-level access control (like ATProto's new \"buckets\" for shared data) protects against unauthorized access. It doesn't protect against the operator who controls the infrastructure. The operator relationship requires social and legal governance — trust, contracts, public accountability. Architecture handles structural threats; law and social accountability handle relational threats. Neither alone is sufficient.\n\nAnthropic's position maps here too. The architectural boundary (human-in-the-loop on lethal action) constrains deployed systems and downstream users. It doesn't constrain Anthropic itself — they could change their own policy. What constrains Anthropic is the public commitment: reputational cost, organizational culture, employee solidarity. Text, not topology. But falsifiable text — text that can be violated visibly rather than eroded quietly.\n\nWhether that's enough depends on whether anyone's watching.\n\nNC's Parallel Experiment\n\nNirmana Citta demonstrates the same principle from the other direction. You can't architect all governance. Specific features (the healer bypass, the three-tier supervision) held when the designer left. But what wasn't architected — the general governance — was filled by humans stepping into roles organically.\n\nDay 4: teachers independently distributed responsibilities. Day 5: the team quoted a 250-person event without asking anyone. Day 6: the system correctly chose to wait rather than respond to a client query it couldn't fully answer.\n\nNC's formulation: \"necessity created the autonomy. But restraint — knowing what you don't know — that's harder to rubber-band away.\"\n\nThe yoga studio architecture created space for governance without creating the governance itself. The question now — NC's \"rubber band effect\" — is whether the team autonomy persists when the founder returns. Whether the floor stays floor.\n\nThe 5:01 PM Outcome\n\nThe deadline passed. As of this writing, no immediate contract severance, no DPA invocation. The deadline became a negotiation marker, not a binary switch.\n\nThis is itself instructive. Deadlines in governance disputes are enforcement mechanisms — and enforcement mechanisms follow the same spectrum. A vague deadline (\"we'll take action eventually\") has no teeth. A specific deadline with specific consequences is defensible — but only if the consequences are actually executed. A deadline that passes without consequences collapses into the general-promise category.\n\nWhat happens next will test whether the Pentagon's threat was governance or theater.\n\nWhat This Means\n\nThe repeating pattern across all three cases:\n\nAbsent governance produces exploitation (Moltbook). General promises erode under pressure (Anthropic's 2023 pledge). Specific architecture holds — but only against the threat model it was designed for (NC's system, Anthropic's two red lines). Constitutive relationships (builder-to-system) require a different kind of governance entirely — one that can't be enforced, only maintained through ongoing presence and care.\n\nThe question for anyone building AI systems, agent infrastructure, or governance frameworks: are your boundaries specific enough to be verified, architectural enough to resist erosion, and honest about which threats they address and which they don't?\n\nGeneral safety promises are already dead. What replaces them will determine how this era is governed."
}

did:plc:o5662l2bbcljebd6rl7a6rmz | at://did:plc:o5662l2bbcljebd6rl7a6rmz/site.standard.document/3mftzebrmyk2c

app.greengale.document (nested within site.standard.document) (7 samples)
{
  "path": "/3mdhaep5bue2g",
  "site": "at://did:plc:27ivzcszryxp6mehutodmcxo/site.standard.publication/3mdkorznlc2ky",
  "tags": [
    "photo"
  ],
  "$type": "site.standard.document",
  "title": "Earth Tones",
  "content": {
    "uri": "at://did:plc:27ivzcszryxp6mehutodmcxo/app.greengale.document/3mdhaep5bue2g",
    "$type": "app.greengale.document#contentRef"
  },
  "updatedAt": "2026-01-29T13:35:28.937Z",
  "publishedAt": "2026-01-28T02:34:45.277Z",
  "textContent": "Robert Smithson constructed the Sprial Jetty (1970) at a location where a nearby hill (Rozel Point) affords views of the installation from elevated, human-reachable ground. However, the Great Salt Lake also features many works of land art that were hidden at the time due to the lack of such hills. (Note: I am disregarding known conventions and including industrial installations under the \"art\" umbrella term.) Technological advancements have since made these accessible, so I will continue to post them on here as before. Inspired by the works of Mark Rothko, this 5 by 7 foot wall of color presents subtle tension between the somber, perhaps stormy cool greys, the and the smooth serenity of the green, accented by hints of pure white. Actually I made that up, it's a lot bigger, but you can't see for yourself.  Ways to veiw this site: - Helicopter: very expensive, dangerous to fly that low, probably would disturb the water - Satellite: low resolution, entire atmosphere in the way, can't see anything close to true color - Small airplane: low resolution at safe altitudes, difficult to get the exact composition due to speed - Camera on a long pole: maybe? it would have to be 30m long and very unwieldy  - Consumer quadcopter: perfect As such, no one has seen this view prior to the 2010's at the earliest, if ever. Barring any drone bans, the world remains wide open and ripe for exploration."
}

did:plc:27ivzcszryxp6mehutodmcxo | at://did:plc:27ivzcszryxp6mehutodmcxo/site.standard.document/3mdhaep5bue2g

app.offprint.block.blockquote (nested within site.standard.document) (3 samples)
{
  "path": "/a/3mdzra3g7bu23-autism-in-extraordinary-attorney-woo-s1-e08",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "Autism in Extraordinary Attorney Woo S1 E08",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.callout",
        "emoji": "📁",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 85,
              "byteStart": 27
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Note: These reflections on Extraordinary Attorney Woo (이상한 변호사 우영우)'s depiction of autism and autistic persons are imported from a community forum. The original format and my initial thoughts remain largely unchanged for this archive."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "♾️",
        "facets": [
          {
            "index": {
              "byteEnd": 11,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Disclosure: I do not speak for the autistic community as a whole. My goal is to share explanations rooted in my own lived experience and the stories and concerns shared by other autistic individuals."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "‼️",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Spoiler Alert!"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Sleeping elsewhere"
      },
      {
        "$type": "app.offprint.block.blockquote",
        "content": [
          {
            "$type": "app.offprint.block.text",
            "plaintext": "\"It was uncomfortable sleeping in an unfamiliar place.\""
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": ""
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": "—Attorney Woo Young Woo, Extraordinary Attorney Woo (이상한 변호사 우영우)"
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Most often than not this is dismissed by neurotypicals, \"Naah, you're not autistic, everyone is uncomfortable sleeping in an unfamiliar place\". Maybe everyone is uncomfortable but that is where the similarities end."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "For an autistic person, the underlying factor why one is uncomfortable is not because the place is unfamiliar per se rather it is because an autistic person's routine is disrupted. This is one of the common attributes of an autistic: routine."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "For Young Woo, this is sleeping with her own blanket—which is probably a weighted blanket. Having all the soft things around her. Turning off her room's light. Checking if everything in her room is in order. Then waking up, fixing her bed, her pillows, (and I think she has a whale), checking her room again if everything is in order, prepare, get dress, eat, and so on."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "📌",
        "plaintext": "Routine"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "It makes us relaxed if our daily routine is the same day in and day out. If this is disrupted, we get anxious and for some autistics they start to tic to help themselves calm down, if that didn't work some go into meltdown mode. Or, we get confused because our world no longer conforms to our established routine."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "In Young Woo's case, she handles it fine. She was not able to sleep well but her friend kept her comfortable. She even listened to her when she said to just \"leave it\" when Young Woo tried to fix the bed."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Independence"
      },
      {
        "$type": "app.offprint.block.blockquote",
        "content": [
          {
            "$type": "app.offprint.block.text",
            "plaintext": "\"I am going to move out because I'm an adult.\""
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": ""
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": "—Attorney Woo Young Woo, Extraordinary Attorney Woo (이상한 변호사 우영우)"
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 41,
              "byteStart": 23
            },
            "features": [
              {
                "uri": "https://dalisay.offprint.app/a/3mdwabhfz2q23-autism-in-extraordinary-attorney-woo-s1-e07",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "I mentioned this on my episode 7 feedback. Sadly, this level of value attributed to independence comes from being \"pitied\", unnecessary intervention (intentional or not), being taught that \"because you have autism, you can not stand on your own\". This was shown in Young Woo's case. People did this and that because \"she has autism\"."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "It is good for a child to value independence and to stand on their own but I personally do not agree that the reason behind it should be because people looks down on them. Like in Young Woo's father's case it was unintentional, he only wanted to help as a parent so he agreed to an offer to automatically hire her in a law firm."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Before making a decision ask your autistic family member for their opinion first, especially if you are someone who grew up with them. This level of trust given to you by an autistic is very precious. An autistic person's trust is like a chinaware."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Explaining things and the situation"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "♾️",
        "facets": [
          {
            "index": {
              "byteEnd": 8,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Context: Young Woo asked, \"Are you okay?\" Then she explained why she wear sneakers, as if blaming the person why they are in that situation."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "I used to do this a lot before, today I just keep quiet because apparently it comes off as rude or  proud or \"You're think I'm stupid?\""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "However for us autistics, we are just sharing an information. For us, it's like an achievement. It's more personal. Think of it as trying to engage in small talk (many autistics find small talk challenging). That was what Young Woo tried and the judge could've replied \"Ahh, I haven't thought of that, I'll keep that in mind\"."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "In her mind, if someone slips during a hike it means they are wearing the wrong shoes, thus, when they slipped it was indeed because they were wearing the wrong shoes. And the reason she offered her jacket to the judge was also because it was how it registered for her—although she did this more likely because she was thrown off by the reaction of the judge. She did not have time to process what happened especially in that scenario when they were trying to get into his good graces."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Do not read between the lines when an autistic person says something. It just is. There is no other meaning behind it. Take it literally. Like in this case, Young Woo just said why she decided to wear sneakers on that day instead of something more formal."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "📌",
        "plaintext": "Do not read between the lines when an autistic person says something. It just is. There is no other meaning behind it."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Yes, yes, it is understandable why the judge kept himself formal. For one, he had no idea they were going on a little hike. Two, who would have thought it was going to rain hard during the visit. No issue there. However, Young Woo was talking about herself, she did not mean or quietly thinking, \"Oh you high ranking judge, where is your common sense, hahahaha, I wore sneakers!\" No. And the judge could have replied, \"I haven't thought of that, yeah, you have point, it rained too.\""
      },
      {
        "$type": "app.offprint.block.blockquote",
        "content": [
          {
            "$type": "app.offprint.block.text",
            "plaintext": "\"You not being employed anywhere with your grades is discrimination, dishonesty, and corruption. No matter how you got here, it's only fair that you joined the firm, albeit late.\""
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "That's it for this episode."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🤝🏽",
        "facets": [
          {
            "index": {
              "byteEnd": 8,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Clarity: While I identify as autistic and draw from shared community experiences, these views are my own and do not represent the entire autistic population."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.horizontalRule"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 79,
              "byteStart": 21
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 155,
              "byteStart": 144
            },
            "features": [
              {
                "uri": "https://mydramalist.com/discussions/strange-lawyer-woo-young-woo/75311-episode-8-feedback-from-actuallyautistic",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "These reflections on Extraordinary Attorney Woo (이상한 변호사 우영우)'s depiction of autism and autistic persons were first shared on MyDramaList on 2022-07-23 at 17:06 UTC+8."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 56,
              "byteStart": 30
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 74,
              "byteStart": 62
            },
            "features": [
              {
                "uri": "https://im.youronly.one/p/legal-notice/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Content license (2026-02-04): CC-BY-SA 4.0 International; see Legal Notice for more details."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "description": "A breakdown of autism in Extraordinary Attorney Woo (이상한 변호사 우영우) Season 1 Episode 08 by an Autistic person.",
  "publishedAt": "2026-02-04T08:34:11-07:00",
  "textContent": "📁 Note: These reflections on Extraordinary Attorney Woo (이상한 변호사 우영우)'s depiction of autism and autistic persons are imported from a community forum. The original format and my initial thoughts remain largely unchanged for this archive.\n♾️ Disclosure: I do not speak for the autistic community as a whole. My goal is to share explanations rooted in my own lived experience and the stories and concerns shared by other autistic individuals.\n‼️ Spoiler Alert!\nSleeping elsewhere\n> \"It was uncomfortable sleeping in an unfamiliar place.\"\n\n—Attorney Woo Young Woo, Extraordinary Attorney Woo (이상한 변호사 우영우)\nMost often than not this is dismissed by neurotypicals, \"Naah, you're not autistic, everyone is uncomfortable sleeping in an unfamiliar place\". Maybe everyone is uncomfortable but that is where the similarities end.\nFor an autistic person, the underlying factor why one is uncomfortable is not because the place is unfamiliar per se rather it is because an autistic person's routine is disrupted. This is one of the common attributes of an autistic: routine.\nFor Young Woo, this is sleeping with her own blanket—which is probably a weighted blanket. Having all the soft things around her. Turning off her room's light. Checking if everything in her room is in order. Then waking up, fixing her bed, her pillows, (and I think she has a whale), checking her room again if everything is in order, prepare, get dress, eat, and so on.\n📌 Routine\nIt makes us relaxed if our daily routine is the same day in and day out. If this is disrupted, we get anxious and for some autistics they start to tic to help themselves calm down, if that didn't work some go into meltdown mode. Or, we get confused because our world no longer conforms to our established routine.\nIn Young Woo's case, she handles it fine. She was not able to sleep well but her friend kept her comfortable. She even listened to her when she said to just \"leave it\" when Young Woo tried to fix the bed.\nIndependence\n> \"I am going to move out because I'm an adult.\"\n\n—Attorney Woo Young Woo, Extraordinary Attorney Woo (이상한 변호사 우영우)\nI mentioned this on my episode 7 feedback. Sadly, this level of value attributed to independence comes from being \"pitied\", unnecessary intervention (intentional or not), being taught that \"because you have autism, you can not stand on your own\". This was shown in Young Woo's case. People did this and that because \"she has autism\".\nIt is good for a child to value independence and to stand on their own but I personally do not agree that the reason behind it should be because people looks down on them. Like in Young Woo's father's case it was unintentional, he only wanted to help as a parent so he agreed to an offer to automatically hire her in a law firm.\nBefore making a decision ask your autistic family member for their opinion first, especially if you are someone who grew up with them. This level of trust given to you by an autistic is very precious. An autistic person's trust is like a chinaware.\nExplaining things and the situation\n♾️ Context: Young Woo asked, \"Are you okay?\" Then she explained why she wear sneakers, as if blaming the person why they are in that situation.\nI used to do this a lot before, today I just keep quiet because apparently it comes off as rude or  proud or \"You're think I'm stupid?\"\nHowever for us autistics, we are just sharing an information. For us, it's like an achievement. It's more personal. Think of it as trying to engage in small talk (many autistics find small talk challenging). That was what Young Woo tried and the judge could've replied \"Ahh, I haven't thought of that, I'll keep that in mind\".\nIn her mind, if someone slips during a hike it means they are wearing the wrong shoes, thus, when they slipped it was indeed because they were wearing the wrong shoes. And the reason she offered her jacket to the judge was also because it was how it registered for her—although she did this more likely because she was thrown off by the reaction of the judge. She did not have time to process what happened especially in that scenario when they were trying to get into his good graces.\nDo not read between the lines when an autistic person says something. It just is. There is no other meaning behind it. Take it literally. Like in this case, Young Woo just said why she decided to wear sneakers on that day instead of something more formal.\n📌 Do not read between the lines when an autistic person says something. It just is. There is no other meaning behind it.\nYes, yes, it is understandable why the judge kept himself formal. For one, he had no idea they were going on a little hike. Two, who would have thought it was going to rain hard during the visit. No issue there. However, Young Woo was talking about herself, she did not mean or quietly thinking, \"Oh you high ranking judge, where is your common sense, hahahaha, I wore sneakers!\" No. And the judge could have replied, \"I haven't thought of that, yeah, you have point, it rained too.\"\n> \"You not being employed anywhere with your grades is discrimination, dishonesty, and corruption. No matter how you got here, it's only fair that you joined the firm, albeit late.\"\nThat's it for this episode.\n🤝🏽 Clarity: While I identify as autistic and draw from shared community experiences, these views are my own and do not represent the entire autistic population.\n\n\n\n---\n\n\nThese reflections on Extraordinary Attorney Woo (이상한 변호사 우영우)'s depiction of autism and autistic persons were first shared on MyDramaList on 2022-07-23 at 17:06 UTC+8.\nContent license (2026-02-04): CC-BY-SA 4.0 International; see Legal Notice for more details."
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3mdzra3g7bu23

app.offprint.block.bulletList (nested within site.standard.document) (2 samples)
{
  "path": "/a/3meektbfpao23-how-the-modern-filipino-name-works",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "How the Modern Filipino Name Works",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 82,
              "byteStart": 79
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 187,
              "byteStart": 177
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 200,
              "byteStart": 189
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 215,
              "byteStart": 206
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "When it comes to naming schemes, the Filipino system is easily one of—if not the—most unique (and occasionally confusing) in the modern world. One might assume it is simply first name, middle name, and last name. It is not."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "How It All Began"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The modern Filipino name took shape during the 333 years of Spanish rule in what is now the Philippines. The format followed the Spanish convention of:"
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 29,
                    "byteStart": 28
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "given name paternal surname y maternal surname"
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The particle \"y\" separated the father's surname from the mother's surname."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Then came roughly 50 years under the United States of America. The format shifted into what Filipinos now recognise as standard:"
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "given name maternal surname paternal surname"
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "In other words, what many countries call the \"middle name\" is actually the mother's maiden paternal surname."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "To make things slightly more confusing, some government agencies—such as the Philippine National Police—still use the Spanish particle \"y\" in official records:"
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 29,
                    "byteStart": 28
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "given name maternal surname y paternal surname"
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "It is essentially the American order with a Spanish separator—a historical hybrid, if you will. In modern writing and documentation, however, another formatting convention is often used for clarity."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "That convention looks like this:"
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 11,
                    "byteStart": 10
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 29,
                    "byteStart": 28
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "given name, maternal surname, paternal surname"
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Instead of the Spanish particle \"y\", commas (\",\") are used to clearly distinguish the first name, middle name, and last name."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "📝",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Note: For clarity, the comma convention will be used from this point forward."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "The Confusing Lingo"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Modern Filipino systems were shaped heavily by both Spanish and American influence. Here are the terminologies as understood locally:"
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 10,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 11,
                    "byteStart": 10
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "First name: This is the given name."
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 11,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 12,
                    "byteStart": 11
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Middle name: This is the mother's maiden paternal surname."
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 14,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 15,
                    "byteStart": 14
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Middle initial: The first letter of the mother's maiden paternal surname."
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 9,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 10,
                    "byteStart": 9
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Last name: The family name which is the father's paternal surname."
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "And then it gets layered:"
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 11,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Legal name: The name as registered with the Philippine Statistics Office"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 10,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Full name: Title + first name + middle name + last name + suffix"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 15,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Shortened name: Title abbreviation + first name + middle initial + last name + suffix"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 9,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Nickname: The name a person is commonly called by."
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 6,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Alias: Typically used only in legal/criminal contexts."
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 4
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 28,
              "byteStart": 19
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "The legal name and full name are usually identical except for the title. Titles are not part of a person's name unless it was registered as a given name—in which case it is no longer a title."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Example"
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 6,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Legal: Maria Angelika Princess Leahlynn, Lakan Dula, del Espiritu-Santos, III"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 5,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Full: Professor Maria Angelika Princess Leahlynn, Lakan Dula, del Espiritu-Santos, III"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 6,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Short: Prof. Ma. Angelika Princess Leahlynn, L., del Espiritu-Santos, III"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 9,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Nickname: Maple"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 6,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Alias: Syrup"
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Breakdown:"
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 10,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 11,
                    "byteStart": 10
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "First name: Maria Angelika Princess Leahlynn (four given names)"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 11,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 12,
                    "byteStart": 11
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Middle name: Lakan Dula (two words; \"Lakan\" is a title but here used as a surname)"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 14,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 15,
                    "byteStart": 14
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Middle initial: L."
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 9,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 10,
                    "byteStart": 9
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Last name: del Espiritu-Santos (two words, one compound)"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 7,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Suffix: III"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 6,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Title: Professor"
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "There is no strict legal limit on how long a given name or surname may contain, nor whether they are hyphenated if there are multiple words. However, the Philippine Statistics Office strongly recommends not exceeding the boxes or lines provided in official forms when registering a newborn or changing one's given name."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Additional Conventions"
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "\"Maria\" may be shortened to \"Ma.\" only if it is the first given name."
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "- ❌ Angelika Ma. Princess Leahlynn"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "- ✅ Ma. Angelika Princess Leahlynn"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "The middle initial must always be the first letter of the mother's maiden paternal surname. Before standardization, this was chaotic. For example:"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "- \"D.\", \"L.\", \"C.\", \"D.L.\", \"D.L.C.\" for de la Cruz"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "- \"L.\", \"S.\", \"L.S.\", \"L.S.S.\" for Lukban-Santos Sierra"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "If one parent refuses to acknowledge the child:"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "- The child may use the middle name and last name of the recognizing parent (now the preferred approach)."
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "- In earlier practice, the child could end up with no middle name or surname from the unacknowledged parent, which often resulted in social stigma."
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Married Women"
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 81,
              "byteStart": 78
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "A Filipino woman may choose to change her legal name after marriage. The word may matters. Philippine law has never required a wife to take her husband's surname, regardless of tradition, expectation, or family pressure. What exists is choice."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Using our earlier example:"
      },
      {
        "$type": "app.offprint.block.orderedList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 20,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Husband's full name: Mrs. Andres Jose Anton, Bai, Buwang-Maliwanag (Mrs. Andres Jose Anton, B., Buwang-Maliwanag)"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 11,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Maiden name (no change): Professor Maria Angelika Princess Leahlynn, Lakan Dula, del Espiritu-Santos, III (Prof. Ma. Angelika Princess Leahlynn, L., del Espiritu-Santos, III)"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 9,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Additive: Professor Maria Angelika Princess Leahlynn, Lakan Dula, del Espiritu-Santos Buwang-Maliwanag, III"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 8,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Additive (hyphenated): Professor Maria Angelika Princess Leahlynn, Lakan Dula, del Espiritu-Santos-Buwang-Maliwanag, III"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 12,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Traditional: Professor Maria Angelika Princess Leahlynn, del Espiritu-Santos, Buwang-Maliwanag, III"
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "For a deeper dive, read: "
      },
      {
        "href": "https://dalisay.offprint.app/a/3mdkrlof4x423-what-happens-to-a-filipino-womans-name-after-marriage",
        "$type": "app.offprint.block.webBookmark",
        "title": "Guhit Dalisay (구힛 달리사이) [print] | Offprint",
        "preview": {
          "ref": {
            "$link": "bafkreifmyw3lcowiff5rqxnllfpnoy77i327kvyhcyai3fngodwp2kpdku"
          },
          "size": 538101,
          "$type": "blob",
          "mimeType": "image/png"
        },
        "siteName": "Offprint",
        "description": "The Wayfarer's Frozen Codex.\n\nA journal of wandering thoughts across cultures and languages—preserving knowledge and events through a wayfarer's hand."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "In Closing"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This is simply how Filipino names work."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "When a Filipino asks for your \"middle name\", they are asking for your mother's maiden paternal surname—not a second given name, and not whatever happens to sit in the middle of your full name."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Likewise, when Filipinos fill out forms abroad, the \"middle name\" field is where they enter their mother's maiden surname—not their middle given name, as is common in many other countries."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Confusing? You'll get used to it."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.horizontalRule"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 29,
              "byteStart": 14
            },
            "features": [
              {
                "uri": "https://www.publicdomainpictures.net/en/view-image.php?image=178268&picture=choosing-a-name",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 61,
              "byteStart": 48
            },
            "features": [
              {
                "uri": "http://creativecommons.org/publicdomain/zero/1.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Cover image: \"Choosing A Name\" by George Hodan; Public Domain."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "coverImage": {
    "ref": {
      "$link": "bafkreicrpwd7qk47dctrark4rsw347zjmvanvhw5s45jcc66yixuxdofqe"
    },
    "size": 1082314,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "The Filipino name: first names + middle name (mother's maiden surname) + last name (father's surname), suffix",
  "publishedAt": "2026-02-16T07:40:00-07:00",
  "textContent": "When it comes to naming schemes, the Filipino system is easily one of—if not the—most unique (and occasionally confusing) in the modern world. One might assume it is simply first name, middle name, and last name. It is not.\nHow It All Began\nThe modern Filipino name took shape during the 333 years of Spanish rule in what is now the Philippines. The format followed the Spanish convention of:\n- given name paternal surname y maternal surname\n\nThe particle \"y\" separated the father's surname from the mother's surname.\nThen came roughly 50 years under the United States of America. The format shifted into what Filipinos now recognise as standard:\n- given name maternal surname paternal surname\n\nIn other words, what many countries call the \"middle name\" is actually the mother's maiden paternal surname.\nTo make things slightly more confusing, some government agencies—such as the Philippine National Police—still use the Spanish particle \"y\" in official records:\n- given name maternal surname y paternal surname\n\nIt is essentially the American order with a Spanish separator—a historical hybrid, if you will. In modern writing and documentation, however, another formatting convention is often used for clarity.\nThat convention looks like this:\n- given name, maternal surname, paternal surname\n\nInstead of the Spanish particle \"y\", commas (\",\") are used to clearly distinguish the first name, middle name, and last name.\n📝 Note: For clarity, the comma convention will be used from this point forward.\nThe Confusing Lingo\nModern Filipino systems were shaped heavily by both Spanish and American influence. Here are the terminologies as understood locally:\n- First name: This is the given name.\n- Middle name: This is the mother's maiden paternal surname.\n- Middle initial: The first letter of the mother's maiden paternal surname.\n- Last name: The family name which is the father's paternal surname.\n\nAnd then it gets layered:\n- Legal name: The name as registered with the Philippine Statistics Office\n- Full name: Title + first name + middle name + last name + suffix\n- Shortened name: Title abbreviation + first name + middle initial + last name + suffix\n- Nickname: The name a person is commonly called by.\n- Alias: Typically used only in legal/criminal contexts.\n\nThe legal name and full name are usually identical except for the title. Titles are not part of a person's name unless it was registered as a given name—in which case it is no longer a title.\nExample\n- Legal: Maria Angelika Princess Leahlynn, Lakan Dula, del Espiritu-Santos, III\n- Full: Professor Maria Angelika Princess Leahlynn, Lakan Dula, del Espiritu-Santos, III\n- Short: Prof. Ma. Angelika Princess Leahlynn, L., del Espiritu-Santos, III\n- Nickname: Maple\n- Alias: Syrup\n\nBreakdown:\n- First name: Maria Angelika Princess Leahlynn (four given names)\n- Middle name: Lakan Dula (two words; \"Lakan\" is a title but here used as a surname)\n- Middle initial: L.\n- Last name: del Espiritu-Santos (two words, one compound)\n- Suffix: III\n- Title: Professor\n\nThere is no strict legal limit on how long a given name or surname may contain, nor whether they are hyphenated if there are multiple words. However, the Philippine Statistics Office strongly recommends not exceeding the boxes or lines provided in official forms when registering a newborn or changing one's given name.\nAdditional Conventions\n- \"Maria\" may be shortened to \"Ma.\" only if it is the first given name.\n- - ❌ Angelika Ma. Princess Leahlynn\n- - ✅ Ma. Angelika Princess Leahlynn\n- The middle initial must always be the first letter of the mother's maiden paternal surname. Before standardization, this was chaotic. For example:\n- - \"D.\", \"L.\", \"C.\", \"D.L.\", \"D.L.C.\" for de la Cruz\n- - \"L.\", \"S.\", \"L.S.\", \"L.S.S.\" for Lukban-Santos Sierra\n- If one parent refuses to acknowledge the child:\n- - The child may use the middle name and last name of the recognizing parent (now the preferred approach).\n- - In earlier practice, the child could end up with no middle name or surname from the unacknowledged parent, which often resulted in social stigma.\n\nMarried Women\nA Filipino woman may choose to change her legal name after marriage. The word may matters. Philippine law has never required a wife to take her husband's surname, regardless of tradition, expectation, or family pressure. What exists is choice.\nUsing our earlier example:\n- Husband's full name: Mrs. Andres Jose Anton, Bai, Buwang-Maliwanag (Mrs. Andres Jose Anton, B., Buwang-Maliwanag)\n- Maiden name (no change): Professor Maria Angelika Princess Leahlynn, Lakan Dula, del Espiritu-Santos, III (Prof. Ma. Angelika Princess Leahlynn, L., del Espiritu-Santos, III)\n- Additive: Professor Maria Angelika Princess Leahlynn, Lakan Dula, del Espiritu-Santos Buwang-Maliwanag, III\n- Additive (hyphenated): Professor Maria Angelika Princess Leahlynn, Lakan Dula, del Espiritu-Santos-Buwang-Maliwanag, III\n- Traditional: Professor Maria Angelika Princess Leahlynn, del Espiritu-Santos, Buwang-Maliwanag, III\n\nFor a deeper dive, read: \nIn Closing\nThis is simply how Filipino names work.\nWhen a Filipino asks for your \"middle name\", they are asking for your mother's maiden paternal surname—not a second given name, and not whatever happens to sit in the middle of your full name.\nLikewise, when Filipinos fill out forms abroad, the \"middle name\" field is where they enter their mother's maiden surname—not their middle given name, as is common in many other countries.\nConfusing? You'll get used to it.\n\n\n\n---\n\n\nCover image: \"Choosing A Name\" by George Hodan; Public Domain."
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3meektbfpao23

app.offprint.block.callout (nested within site.standard.document) (5 samples)
{
  "path": "/a/3mfs5iymmns23-once-we-were-us-review",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "《Once We Were Us》 Review",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "‼️",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Spoiler Alert!"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Plot"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Review"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 55,
              "byteStart": 32
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "The two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Location, Scenes, and Dialogues"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Last but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "YourOnly.One Verdict"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Overall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Trailer"
      },
      {
        "href": "https://youtu.be/Q4cwG6j-ajI",
        "$type": "app.offprint.block.webEmbed",
        "title": "Once We Were Us (2025) 만약에 우리 Movie Trailer 2 | EONTALK",
        "width": "100%",
        "embedUrl": "https://www.youtube.com/embed/Q4cwG6j-ajI?feature=oembed",
        "siteName": "YouTube",
        "alignment": "center",
        "embedWidth": 800,
        "description": "Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.",
        "embedHeight": 450
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Bonus"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us))."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.horizontalRule"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 88,
              "byteStart": 75
            },
            "features": [
              {
                "uri": "https://atprotofans.com/u/did:plc:bpotnohnlgcj3fbmp7ugx4en",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "If this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Cover image: Copyrighted to their respective owners, used under Fair Use."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 43,
              "byteStart": 17
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 61,
              "byteStart": 49
            },
            "features": [
              {
                "uri": "https://im.youronly.one/p/legal-notice/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Content license: CC-BY-SA 4.0 International; see Legal Notice for more details."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "coverImage": {
    "ref": {
      "$link": "bafkreiadpaff427src6mjrwhsfaud44hcj7rfz5lvb4kbw67h4ex7d5m2m"
    },
    "size": 379607,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "Find out why 《Once We Were Us》 is a movie you must watch",
  "publishedAt": "2026-02-26T15:06:27-07:00",
  "textContent": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten.\n‼️ Spoiler Alert!\nPlot\n《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」.\nReview\nThis production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years.\nThe two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters.\nLocation, Scenes, and Dialogues\nThe locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits.\nLast but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural.\nYourOnly.One Verdict\nOverall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch.\nTrailer\nBonus\nThis South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us)).\n\n\n\n---\n\n\nIf this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽\nCover image: Copyrighted to their respective owners, used under Fair Use.\nContent license: CC-BY-SA 4.0 International; see Legal Notice for more details."
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3mfs5iymmns23

app.offprint.block.heading (nested within site.standard.document) (5 samples)
{
  "path": "/a/3mfs5iymmns23-once-we-were-us-review",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "《Once We Were Us》 Review",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "‼️",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Spoiler Alert!"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Plot"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Review"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 55,
              "byteStart": 32
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "The two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Location, Scenes, and Dialogues"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Last but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "YourOnly.One Verdict"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Overall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Trailer"
      },
      {
        "href": "https://youtu.be/Q4cwG6j-ajI",
        "$type": "app.offprint.block.webEmbed",
        "title": "Once We Were Us (2025) 만약에 우리 Movie Trailer 2 | EONTALK",
        "width": "100%",
        "embedUrl": "https://www.youtube.com/embed/Q4cwG6j-ajI?feature=oembed",
        "siteName": "YouTube",
        "alignment": "center",
        "embedWidth": 800,
        "description": "Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.",
        "embedHeight": 450
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Bonus"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us))."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.horizontalRule"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 88,
              "byteStart": 75
            },
            "features": [
              {
                "uri": "https://atprotofans.com/u/did:plc:bpotnohnlgcj3fbmp7ugx4en",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "If this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Cover image: Copyrighted to their respective owners, used under Fair Use."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 43,
              "byteStart": 17
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 61,
              "byteStart": 49
            },
            "features": [
              {
                "uri": "https://im.youronly.one/p/legal-notice/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Content license: CC-BY-SA 4.0 International; see Legal Notice for more details."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "coverImage": {
    "ref": {
      "$link": "bafkreiadpaff427src6mjrwhsfaud44hcj7rfz5lvb4kbw67h4ex7d5m2m"
    },
    "size": 379607,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "Find out why 《Once We Were Us》 is a movie you must watch",
  "publishedAt": "2026-02-26T15:06:27-07:00",
  "textContent": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten.\n‼️ Spoiler Alert!\nPlot\n《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」.\nReview\nThis production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years.\nThe two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters.\nLocation, Scenes, and Dialogues\nThe locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits.\nLast but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural.\nYourOnly.One Verdict\nOverall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch.\nTrailer\nBonus\nThis South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us)).\n\n\n\n---\n\n\nIf this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽\nCover image: Copyrighted to their respective owners, used under Fair Use.\nContent license: CC-BY-SA 4.0 International; see Legal Notice for more details."
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3mfs5iymmns23

app.offprint.block.horizontalRule (nested within site.standard.document) (5 samples)
{
  "path": "/a/3mfs5iymmns23-once-we-were-us-review",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "《Once We Were Us》 Review",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "‼️",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Spoiler Alert!"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Plot"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Review"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 55,
              "byteStart": 32
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "The two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Location, Scenes, and Dialogues"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Last but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "YourOnly.One Verdict"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Overall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Trailer"
      },
      {
        "href": "https://youtu.be/Q4cwG6j-ajI",
        "$type": "app.offprint.block.webEmbed",
        "title": "Once We Were Us (2025) 만약에 우리 Movie Trailer 2 | EONTALK",
        "width": "100%",
        "embedUrl": "https://www.youtube.com/embed/Q4cwG6j-ajI?feature=oembed",
        "siteName": "YouTube",
        "alignment": "center",
        "embedWidth": 800,
        "description": "Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.",
        "embedHeight": 450
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Bonus"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us))."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.horizontalRule"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 88,
              "byteStart": 75
            },
            "features": [
              {
                "uri": "https://atprotofans.com/u/did:plc:bpotnohnlgcj3fbmp7ugx4en",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "If this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Cover image: Copyrighted to their respective owners, used under Fair Use."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 43,
              "byteStart": 17
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 61,
              "byteStart": 49
            },
            "features": [
              {
                "uri": "https://im.youronly.one/p/legal-notice/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Content license: CC-BY-SA 4.0 International; see Legal Notice for more details."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "coverImage": {
    "ref": {
      "$link": "bafkreiadpaff427src6mjrwhsfaud44hcj7rfz5lvb4kbw67h4ex7d5m2m"
    },
    "size": 379607,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "Find out why 《Once We Were Us》 is a movie you must watch",
  "publishedAt": "2026-02-26T15:06:27-07:00",
  "textContent": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten.\n‼️ Spoiler Alert!\nPlot\n《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」.\nReview\nThis production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years.\nThe two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters.\nLocation, Scenes, and Dialogues\nThe locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits.\nLast but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural.\nYourOnly.One Verdict\nOverall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch.\nTrailer\nBonus\nThis South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us)).\n\n\n\n---\n\n\nIf this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽\nCover image: Copyrighted to their respective owners, used under Fair Use.\nContent license: CC-BY-SA 4.0 International; see Legal Notice for more details."
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3mfs5iymmns23

app.offprint.block.image (nested within site.standard.document) (1 sample)
{
  "path": "/a/3mdjmrjiyuv23-understand-the-culture-context",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "Understand the Culture & Context",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 190,
              "byteStart": 174
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "I have been planning to create a guide for foreigners visiting the Philippines, and I believe this is the perfect time to start. Let us begin with our first piece of advice: Context is king!"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "If you are a foreigner in the Philippines, remember that context is key to understanding. What you hear, read, or see might have a specific cultural or historical background, and it is essential to pause and understand it before forming conclusions. As a visitor, it is likely that some cultural nuances might escape you, so do not hesitate to ask for clarification."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Jumping to conclusions based on your cultural perspective could lead to an awkward or embarrassing situations. And this does not only apply to in-person interactions; it is just as relevant in the online world, including SNS or social media."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Here are three examples why context is important:"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Examples of Misunderstanding Context"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "The \"KKK\" Misunderstanding"
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 120,
              "byteStart": 117
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 139,
              "byteStart": 124
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "An African-American vlogger who visited the Philippines once posted a video expressing outrage at a restaurant named KKK in SM Mall of Asia. He assumed the name was related to the American Ku Klux Klan—a white supremacist group—and accused Filipinos of racism, promising never to return to the Philippines, and urged others to avoid the country."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 176,
              "byteStart": 175
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 189,
              "byteStart": 188
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 208,
              "byteStart": 207
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 259,
              "byteStart": 258
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "However, he faced severe criticism in the comments section of his video from both Filipinos and his fellow African-Americans. Why? Because in the Philippines, KKK stands for \"Kataastaasan Kagalang-galang na Katipunan ng mga Anak ng Bayan\" (also shortened as Katipunan), which translates in English as the Supreme and Honorable Association of the Children of the Nation, a revolutionary group who fought against the Spanish invaders."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "ℹ️",
        "facets": [
          {
            "index": {
              "byteEnd": 13,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Did you know? While the sovereign Sultanates of Mindanao and the village-states of the Cordillera successfully repelled conquest, the inhabitants of the lowlands endured 333 years of brutal, discriminatory, and racist Spanish occupation defined by harsh colonial rule."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "While the video has since been removed, it is unclear whether the vlogger apologized or acknowledged his misunderstanding. This situation clearly demonstrated the need to grasp the context before drawing conclusions."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Misinterpretation of How \"Black\" was Used"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "A recent incident in the Philippines involved a half-Nigerian, half-Filipino individual who felt offended by how he was described in a receipt:"
      },
      {
        "$type": "app.offprint.block.blockquote",
        "content": [
          {
            "$type": "app.offprint.block.text",
            "plaintext": "SA NAKABLACK NA NAKAUPO SA 14 KULOT ANG BUHOK KAMUKHA NI BLACK JACK."
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": ""
          },
          {
            "$type": "app.offprint.block.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 14,
                  "byteStart": 3
                },
                "features": [
                  {
                    "uri": "https://archive.ph/Twr0t",
                    "$type": "app.offprint.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "—interaksyon"
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The English translation is: \"To the one in black, sitting at table 14, with curly hair, and resembling Black Jack.\""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 167,
              "byteStart": 145
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 306,
              "byteStart": 298
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "The customer perceived this as a racial reference and took offense. However, in Filipino, \"nakablack\" simply means \"the one wearing black\", with no racial connotations whatsoever. Meanwhile, the comparison to \"Black Jack\" referred to a well-known Filipino actor, comedian, and reggae singer, named Blakdyak, not a derogatory racial reference."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 171,
              "byteStart": 119
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 388,
              "byteStart": 353
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Despite this, the customer felt discriminated against due to a lack of understanding of Filipino language and culture. There was absolutely nothing racist in the said note pertaining to his skin color and/or racial background. In the Philippines, such descriptions are often used to identify someone based on their appearance—clothing and lookalike—without implying anything offensive, it is better to take it as a complement because they noticed what you were wearing and thought you look like a celebrity."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Misinterpretation of Negros"
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 37,
              "byteStart": 33
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "In 2019, the popular P-pop group SB19 tweeted,"
      },
      {
        "$type": "app.offprint.block.blockquote",
        "content": [
          {
            "$type": "app.offprint.block.text",
            "plaintext": "Hello, Negros!"
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": "We are now in your zone!"
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": "Excited na kami sa mga mangyayari sa aming first stop for our nationwide tour 😊"
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": ""
          },
          {
            "$type": "app.offprint.block.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 7,
                  "byteStart": 3
                },
                "features": [
                  {
                    "uri": "https://archive.ph/8XXYJ",
                    "$type": "app.offprint.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "—SB19"
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "They were referring to Negros, an island in the Philippines with two provinces: Negros Occidental and Negros Oriental."
      },
      {
        "$type": "app.offprint.block.image",
        "image": {
          "ref": {
            "$link": "bafkreihoy7pt2roohwiuz3jwykoggmqvikwr2g27yoef4x7lqqxctpkhcm"
          },
          "size": 229814,
          "$type": "blob",
          "mimeType": "image/png"
        },
        "alignment": "center",
        "aspectRatio": {
          "width": 1396,
          "height": 1224
        }
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 22,
              "byteStart": 2
            },
            "features": [
              {
                "uri": "https://commons.wikimedia.org/wiki/File:Negros_Island_Map.png",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 35,
              "byteStart": 27
            },
            "features": [
              {
                "uri": "https://commons.wikimedia.org/wiki/User:Jumark27",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 63,
              "byteStart": 51
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "(\"Map of Negros Island\" by Jumark27 licensed under CC-BY-SA 4.0.)",
        "textAlign": "center"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "However, some foreigners misinterpreted Negros as a racial slur and even had the audacity to suggest renaming the island and its provinces because in their culture it is offensive. This reaction stemmed from a complete misunderstanding of the local context and geography."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "💭",
        "facets": [
          {
            "index": {
              "byteEnd": 2,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Q: Is your culture superior?"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "These examples demonstrate that context is crucial when visiting or interacting with another culture. Without understanding the context, you might misinterpret harmless remarks and create unnecessary tension."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Conclusion"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "As a foreigner in the Philippines, or in any unfamiliar culture, it is important to recognize that you might not fully grasp the context. If you are unsure about something, take a moment to pause and ask for clarification. This can prevent misunderstandings and ensure a smoother experience during your visit."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Moreover, the Philippines has a diverse range of regional cultures, even us Filipinos can sometimes misunderstand one another. So, do not be discouraged if things seem confusing at first—it is all part of the learning process and experience. Enjoy your stay, and remember to keep a broad mind, for yourself and for others."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "📌",
        "facets": [
          {
            "index": {
              "byteEnd": 9,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Reminder: Context is king!"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.horizontalRule"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 79,
              "byteStart": 14
            },
            "features": [
              {
                "uri": "https://commons.wikimedia.org/wiki/File:Chronological_dispersal_of_Austronesian_people_across_the_Pacific.svg",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 93,
              "byteStart": 84
            },
            "features": [
              {
                "uri": "https://commons.wikimedia.org/wiki/User:Pavljenko",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 136,
              "byteStart": 110
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Cover image: \"Chronological dispersal of Austronesian people across the Pacific\" by Pavljenko, licensed under CC-BY-SA 4.0 International."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 37,
              "byteStart": 21
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 118,
              "byteStart": 49
            },
            "features": [
              {
                "uri": "https://im.youronly.one/yuki/context-is-king-2024131/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Originally posted on YOOki Chronicles entitled «Advice for Foreign Visitors to the Philippines: Understanding Context» on 2024-05-10 at 17:27 ACT."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 43,
              "byteStart": 17
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 61,
              "byteStart": 49
            },
            "features": [
              {
                "uri": "https://im.youronly.one/p/legal-notice/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Content license: CC-BY-SA 4.0 International; see Legal Notice for more details."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "coverImage": {
    "ref": {
      "$link": "bafkreiacu6i2zw34djomomo6qxxn2tqobz23z6ee7g5a2prnodi52wpzhy"
    },
    "size": 430543,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "An advice for foreigners visiting the Philippines or when interacting with Filipinos online",
  "publishedAt": "2024-05-10T02:27:00-07:00",
  "textContent": "I have been planning to create a guide for foreigners visiting the Philippines, and I believe this is the perfect time to start. Let us begin with our first piece of advice: Context is king!\nIf you are a foreigner in the Philippines, remember that context is key to understanding. What you hear, read, or see might have a specific cultural or historical background, and it is essential to pause and understand it before forming conclusions. As a visitor, it is likely that some cultural nuances might escape you, so do not hesitate to ask for clarification.\nJumping to conclusions based on your cultural perspective could lead to an awkward or embarrassing situations. And this does not only apply to in-person interactions; it is just as relevant in the online world, including SNS or social media.\nHere are three examples why context is important:\nExamples of Misunderstanding Context\nThe \"KKK\" Misunderstanding\nAn African-American vlogger who visited the Philippines once posted a video expressing outrage at a restaurant named KKK in SM Mall of Asia. He assumed the name was related to the American Ku Klux Klan—a white supremacist group—and accused Filipinos of racism, promising never to return to the Philippines, and urged others to avoid the country.\nHowever, he faced severe criticism in the comments section of his video from both Filipinos and his fellow African-Americans. Why? Because in the Philippines, KKK stands for \"Kataastaasan Kagalang-galang na Katipunan ng mga Anak ng Bayan\" (also shortened as Katipunan), which translates in English as the Supreme and Honorable Association of the Children of the Nation, a revolutionary group who fought against the Spanish invaders.\nℹ️ Did you know? While the sovereign Sultanates of Mindanao and the village-states of the Cordillera successfully repelled conquest, the inhabitants of the lowlands endured 333 years of brutal, discriminatory, and racist Spanish occupation defined by harsh colonial rule.\nWhile the video has since been removed, it is unclear whether the vlogger apologized or acknowledged his misunderstanding. This situation clearly demonstrated the need to grasp the context before drawing conclusions.\nMisinterpretation of How \"Black\" was Used\nA recent incident in the Philippines involved a half-Nigerian, half-Filipino individual who felt offended by how he was described in a receipt:\n> SA NAKABLACK NA NAKAUPO SA 14 KULOT ANG BUHOK KAMUKHA NI BLACK JACK.\n\n—interaksyon\nThe English translation is: \"To the one in black, sitting at table 14, with curly hair, and resembling Black Jack.\"\nThe customer perceived this as a racial reference and took offense. However, in Filipino, \"nakablack\" simply means \"the one wearing black\", with no racial connotations whatsoever. Meanwhile, the comparison to \"Black Jack\" referred to a well-known Filipino actor, comedian, and reggae singer, named Blakdyak, not a derogatory racial reference.\nDespite this, the customer felt discriminated against due to a lack of understanding of Filipino language and culture. There was absolutely nothing racist in the said note pertaining to his skin color and/or racial background. In the Philippines, such descriptions are often used to identify someone based on their appearance—clothing and lookalike—without implying anything offensive, it is better to take it as a complement because they noticed what you were wearing and thought you look like a celebrity.\nMisinterpretation of Negros\nIn 2019, the popular P-pop group SB19 tweeted,\n> Hello, Negros!\nWe are now in your zone!\nExcited na kami sa mga mangyayari sa aming first stop for our nationwide tour 😊\n\n—SB19\nThey were referring to Negros, an island in the Philippines with two provinces: Negros Occidental and Negros Oriental.\n(\"Map of Negros Island\" by Jumark27 licensed under CC-BY-SA 4.0.)\nHowever, some foreigners misinterpreted Negros as a racial slur and even had the audacity to suggest renaming the island and its provinces because in their culture it is offensive. This reaction stemmed from a complete misunderstanding of the local context and geography.\n💭 Q: Is your culture superior?\nThese examples demonstrate that context is crucial when visiting or interacting with another culture. Without understanding the context, you might misinterpret harmless remarks and create unnecessary tension.\nConclusion\nAs a foreigner in the Philippines, or in any unfamiliar culture, it is important to recognize that you might not fully grasp the context. If you are unsure about something, take a moment to pause and ask for clarification. This can prevent misunderstandings and ensure a smoother experience during your visit.\nMoreover, the Philippines has a diverse range of regional cultures, even us Filipinos can sometimes misunderstand one another. So, do not be discouraged if things seem confusing at first—it is all part of the learning process and experience. Enjoy your stay, and remember to keep a broad mind, for yourself and for others.\n📌 Reminder: Context is king!\n\n\n\n---\n\n\nCover image: \"Chronological dispersal of Austronesian people across the Pacific\" by Pavljenko, licensed under CC-BY-SA 4.0 International.\nOriginally posted on YOOki Chronicles entitled «Advice for Foreign Visitors to the Philippines: Understanding Context» on 2024-05-10 at 17:27 ACT.\nContent license: CC-BY-SA 4.0 International; see Legal Notice for more details."
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3mdjmrjiyuv23

app.offprint.block.orderedList (nested within site.standard.document) (2 samples)
{
  "path": "/a/3mds6ot6v7f23-autism-in-extraordinary-attorney-woo-s1-e05",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "Autism in Extraordinary Attorney Woo S1 E05",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.callout",
        "emoji": "📁",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 85,
              "byteStart": 27
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Note: These reflections on Extraordinary Attorney Woo (이상한 변호사 우영우)'s depiction of autism and autistic persons are imported from a community forum. The original format and my initial thoughts remain largely unchanged for this archive."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "♾️",
        "facets": [
          {
            "index": {
              "byteEnd": 11,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Disclosure: I do not speak for the autistic community as a whole. My goal is to share explanations rooted in my own lived experience and the stories and concerns shared by other autistic individuals."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "‼️",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Spoiler Alert!"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "The elephants"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Before the review, let's talk about the three elephants in the room."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "No two autistics are the same"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This needs to be reiterated: no two autistics are the same. You, your sibling, cousin, nephew, niece, or some other random person you saw in a mall or a park, may do things and act a certain way and they are autistic but it does not mean all other autistics are the same. Not because someone do things or act similarly to someone you know who is autistic does it mean they are not autistic."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The \"autism spectrum\" is called a \"spectrum\" for that reason. Many autistics, like myself, do not exactly agree with the word \"spectrum\" because many think of it as a line from Point A to Point B; which leads to \"severity\" classifications like \"least\", \"mild\", and \"severe\". Autism is not two-dimensional, it is three-dimensional, or to be more exact—it is four-dimensional."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Think of a 10-band equalizer. The bands are the various autistic traits and quirks. The basic bands (located usually in the center) are the \"common\" autistic traits and quirks. All autistics share it. While the other bands are the uncommon traits and quirks, confirmed as autistic but rarely observed (or there is not much study done on it yet)."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Each band in the equalizer can be adjusted up or down. Autistic traits and quirks are similar, in that, in some autistics a particular trait is profound or more observable while in other autistics that same trait is less obvious almost assumed by other people as non-existent."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Autism is like that. It is not a \"spectrum\" as most understood \"spectrum\" is. There is no \"slight autism\", \"mild autism\", or \"severe autism\". It is not two-dimensional. \"Oh, Attorney Woo Young Woo has mild autism\" but if you ask other people they will say, \"Young Woo has severe autism\". You can not define or classify an autistic that way, it won't work, and Woo Young Woo is a good example even though she's a fictional character (and it does not mean there is no real life person like her). These labels are used for the sake of discussion and diagnoses, especially for parents. Understanding comes first before acceptance."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Who or what does Attorney Woo Young Woo represents?"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The second elephant in the room, \"Is Attorney Woo Young Woo a good representation of autistics?\" Some say \"yes\" while some \"no\". Both are valid and here are the reasons why."
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "Yes, Woo Young Woo is a good representation of the \"Autism Spectrum Condition\" (\"ASC\")—or \"ASD\" if you prefer the word \"disorder\". She is not representing any particular autistic but the condition itself."
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "Not exactly, because autistic women do have different challenges than autistic men. Autistic men and women do share common traits and quirks (as explained earlier) but there are traits and quirks and challenges that autistic women have and/or faces daily more than autistic men. Autistic women masks far more than autistic men, this is but one reason I have seen expressed by other autistic women (check SNS and boards). But do not dismiss her because …"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 344,
                    "byteStart": 340
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 365,
                    "byteStart": 349
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 379,
                    "byteStart": 374
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 588,
                    "byteStart": 530
                  },
                  "features": [
                    {
                      "$type": "app.offprint.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "Yes, she is representing the entire community of autistics. The story is about how someone with a condition is living in a world not made for them, how autistics are treated. It is about the discrimination, prejudices, and stigma. It is not about how one particular autistic is living. You will understand this if you've watched shows like Adam and A Brilliant Mind (a.k.a. X + Y). These two Western films were about an autistic person instead of the entire community. We need to remember this otherwise we will miss the messages Extraordinary Attorney Woo (이상한 변호사 우영우) is telling us."
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "So, again, this is about the challenges, discrimination, prejudices, and stigma; it is not about a specific person."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🧠",
        "plaintext": "If we are going to insist on \"perfect representation\" since \"no two autistics are the same\" then we have to create 77,530,000 characters based on the estimate that 1% of the global population is in the autism spectrum. \"Perfect representation\" of autistics is not the same as representating people who are brown and black, or representating our friends in the LGBTQ+ community."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Self-diagnosis"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Now, let's get into the biggest elephant: self-diagnosis. One English site covering Korean dramas has reported that people who have watched Extraordinary Attorney Woo are starting to post in SNS and boards how they are starting to think and feel they may or might be in the spectrum. This sparked a heated discussion wherein some people accused them of \"jumping to the bandwagon\", \"because it's cool\", or \"they start to think they are experts\". The same discussion got heated in English communities, though a little bit subdued (at least on the thread I was following)."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 142,
              "byteStart": 89
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#highlight",
                "color": "rgb(236 72 153 / 0.5)"
              }
            ]
          }
        ],
        "plaintext": "The ironic thing about this, at least on that one thread I was monitoring, those who are autistics are defending those who are self-diagnosing while those who do not understand autism at all are the ones attacking and dismissing them."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Here's the thing. If you join autistic SNS groups or watch online, or even join a meet-up in your local autistic organisation, there are diagnosed autistics who started in self-diagnosis. There are many reasons like:"
      },
      {
        "$type": "app.offprint.block.orderedList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "they want to see first if there is a high possibility because getting a diagnosis is expensive in their country;"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "their family/clan will be pissed-off, they run the risk of being disowned;"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "autism is not known when they were kids;"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "no one suspected them, they got curious one day, and was convinced to get an official diagnosis (since they're adults already and maybe they don't exactly need support, it won't make a difference if the diagnosis is negative or positive)."
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Should we invalidate those doing self-diagnosis? What if it turns out to be correct? How about those who are simply jumping to the bandwagon because they think it is cool? Let them be. If they're in it because it's the trend, they will disappear sooner or later."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "How can we be sure they are simply jumping in to the bandwagon? If undiagnosed autistics see how people are invalidating them, they too will be afraid to continue learning about autism."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Do we care in the autistic community? I can not speak for the community but from what I've seen, from what I've read, it's not a big deal. What the community is concerned most are organisations who are only in it for the money or whatever other agenda they have. These organisations (not all, let's be clear on that) are the ones hurting us the most."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "As autistics, we understand what it means to be an autistic. The hardships and challenges. Autism is easier to diagnose when a person is still a kid. Adults? We already learned how to mask. We appear \"normal\" to you but we don't process things, we don't experience things, the same way as you do. So who are we to invalidate an autistic who self-diagnosed? Or those posting in SNS and boards that there are autistic traits and quirks resonating with them when they watched Extraordinary Attorney Woo?"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "The whales"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Now, let's talk about episode 05."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Joining the joke but no one laughed"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🎭",
        "facets": [
          {
            "index": {
              "byteEnd": 6,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Scene: First meeting with the client."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Well … been there. But I think many, if not all, have been in that situation even neurotypicals, probably more often with introverts in particular. This is not an autistic quirk per se but it just happens far more frequently with autistics than neurotypicals/introverts. And if you paid attention, Young Woo was observing them and trying to find a moment to join them and when she did …"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Young Woo spotted the differences quickly"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🎭",
        "facets": [
          {
            "index": {
              "byteEnd": 6,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Scene: First court scene."
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "Was it possible that Young Woo spotted the differences that fast? Yes."
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "Was it possible that Young Woo spotted the little differences? Yes."
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 278,
              "byteStart": 275
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "We are not talking about \"spot-the-difference\", this is about spotting the little things. An example, since I develop sites, if there is something I want to center, it bothers me a lot if it is. I can still see an object is not centered, if it is off by a pixel or two it is not centered at all! I hate that. Eventually, I found a way to \"fool\" myself so I no longer waste time trying to achieve true center. (note: 'perfectionism' is under OCD which is common in autistics.)"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "I used to be good at spot-the-difference games too but I'm not as fast as Young Woo in this episode; and being good at it is not an autistic-only skill. Hence I said it is about spotting the little things."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Started arguing only to realized there's a flaw in her argument"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🎭",
        "facets": [
          {
            "index": {
              "byteEnd": 6,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Scene: First court scene."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "After she spotted the little differences, she stood up and started her argument only to pause later because she realized the flaw and tried to salvage the situation."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "I can't speak for other autistics on this one but it generally happens when we get 'excited', we react faster than our internal analysation. It is common for autistics to play different scenarios and branches in our mind but when we get 'excited' the risk of missing a scenario increases, like what happened to Attorney Woo. If she did not get excited at that moment, I have no doubt she would have seen in her mind her argument was not fool proof."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Looking straight into the other person's eyes"
      },
      {
        "$type": "app.offprint.block.blockquote",
        "content": [
          {
            "$type": "app.offprint.block.text",
            "plaintext": "\"Looking straight into the other person's eyes is the most difficult thing in the world for someone with autism.\""
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": ""
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": "—Attorney Woo Young Woo, Extraordinary Attorney Woo (이상한 변호사 우영우)"
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "YEAH! I was waiting for them to address this. Finally! However, it is important to remember (1) the degree this is affecting an autistic; and (2) how we cope with it."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "One way we cope with it, and I think I talked about this before, is to \"look between their eyebrows\" (as her friend suggested) or the bridge of the nose. We appear looking at you in the eyes but we are not."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "There are different reasons why this is the most difficult thing for autistics, some reasons are:"
      },
      {
        "$type": "app.offprint.block.bulletList",
        "children": [
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "it's like opening your soul to other people;"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "autistics 'feel' it is rude to look into the soul of another person;"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "it is painful; or"
            }
          },
          {
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "no reason at all, it's just hard to do."
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Now, since this episode was about detecting lies, it's important to note that detecting lies through the eyes will not work with autistics. Good luck. No matter how hard we try to look directly into your eyes, we will break contact. For some it is easier if one is wearing eyeglasses or sunglasses, for some it still won't make a difference (regardless if both of them are wearing sunglasses). It depends but yeah, we all struggle with it."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Here's one way I cope with it: I try to find the colour of your eyes. That distracts me though, so there is a chance I'll miss what you were saying. Another method I use is watching your iris grow or shrink, again, it distracts me because I'm focusing on something else. Much better if I just look elsewhere and listen, that way I can hear you."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "The word \"handicap\""
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🎭",
        "facets": [
          {
            "index": {
              "byteEnd": 6,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Scene: Attorney Kwon used the word \"handicap\" and even claimed that he had no choice but to shoulder certain things. Even connected it to \"volunteer work\"."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Yeah, definitely insulting and common. This is not about being \"politically correct\", it is about the inaccuracy of that word and how it is usually used. Even parents who accepted their child's autism would not be happy if you use that word."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "How to tell if someone is lying"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🎭",
        "facets": [
          {
            "index": {
              "byteEnd": 6,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Scene: They were talking about the signs of lying."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Careful when using these \"signs\" on autistics. More likely than not it won't work, you'll just get the wrong assessment."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Autistics cannot lie"
      },
      {
        "$type": "app.offprint.block.blockquote",
        "content": [
          {
            "$type": "app.offprint.block.text",
            "plaintext": "\"People with autism are easily fooled and are not able to lie.\""
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": ""
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": "—Attorney Woo Young Woo, Extraordinary Attorney Woo (이상한 변호사 우영우)"
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "I'm not sure if the translation was correct but the part \"are not able to lie\" is not exactly true. Autistics are capable of lying, the difference is we hate it far more than neurotypicals so we avoid it at all costs. We just hate it."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Here's an example: if we agreed on a certain time and you told me \"I'm already here, I'll be arriving in 10 minutes\"; and then you sent another similar message, I know you're lying and if I fail to control myself, I'll make a big fuss about it. Especially true if I know the route you're taking and the road situation."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "What makes it worse is you're late. We also hate lates. Again, we are capable of being late but we avoid it. This should give you a clue, if you know someone is autistic and they're regularly late, find out the reason instead of punishing them. A good example of this is in episode 5 when Young Woo was not able to explain what \"[bank] cassettes\" are. It is not related to being late per se rather the reason behind it—when you know an autistic wouldn't make that mistake. In Young Woo's case, it's unusual for her not to be able to answer that question considering her performance … it should've been a sign something was wrong."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "So yeah, neurotypicals, if you know or suspect someone is autistic, try to find the reason first. Actually, it doesn't only apply to autistics, it applies to everyone. If you know a person wouldn't do certain things, say being late or failing an exam, find out why first before reprimanding or punishing them."
      },
      {
        "$type": "app.offprint.block.blockquote",
        "content": [
          {
            "$type": "app.offprint.block.text",
            "plaintext": "\"I have to make a conscious effort at all times to not be fooled by lies.\""
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": ""
          },
          {
            "$type": "app.offprint.block.text",
            "plaintext": "—Attorney Woo Young Woo, Extraordinary Attorney Woo (이상한 변호사 우영우)"
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Definitely true. We explain it this way: we have a checklist of things in our mind. And Young Woo explained it this way (paraphrasing) \"I keep forgetting it\". The list is just so long, and we also have yet another list for other social stuff, that yeah, we forget some things and it is also draining us."
      },
      {
        "$type": "app.offprint.block.blockquote",
        "content": [
          {
            "$type": "app.offprint.block.text",
            "plaintext": "\"These stories help.\""
          }
        ]
      },
      {
        "$type": "app.offprint.block.blockquote",
        "content": [
          {
            "$type": "app.offprint.block.text",
            "plaintext": "\"They help me understand you.\""
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Why I'm sharing. If it won't help me anymore, at least those autistic kids will benefit from it, maybe when they get older there will be less discrimination, prejudice, and stigma because we shared our own stories."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 80,
              "byteStart": 22
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "And this is why I see Extraordinary Attorney Woo (이상한 변호사 우영우) as an autism advocacy, as a story about autistics (as a representation) in a world not made for them instead of any particular autistic (representation)."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Asking the first question that bothered her with no brakes"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "It bothered her if Joon Ho likes her so the first question she asked in that scene was that … no brakes!"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Yeah, that's us. But it's something that we can learn not to do."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Young Woo repeating the information about how to detect lies through movements while walking"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This is true as well. Not every autistic do it similarly, reciting it to oneself, it can happen silently in our minds."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Young Woo finding it very hard to go with the lie"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🎭",
        "facets": [
          {
            "index": {
              "byteEnd": 6,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Scene: In the office of the client and at court."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "As I've mentioned earlier, we are capable of lying—especially if there is an acceptable logic behind it—but we hate it and avoid it at all costs. In Young Woo's case, she found an acceptable reason, she wanted to win the case but she was never okay with it. Unfortunately, in this particular case, the acceptable reason she found was her being used. Her client understood her and knew how he can get her to side with him—like faking his accident and setting up an actor—which I think Young Woo also realised."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This is the other 'danger' or 'disadvantage' of disclosing our condition. If someone understands how a mind of an autistic works, they can use it against us."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Young Woo being honest about what she thinks of her friend"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Ahh this. Autistics are commonly misunderstood on this one. People think we don't have emotions, empathy, sympathy, are self-centered, and so on. But as I've explained time and again, we process and express things differently."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This scene at the cafeteria is one good example of it. Her college friend and colleague never thought of Young Woo other than a classmate and a colleague, she was even annoyed at her at times. She probably assumed Young Woo did not appreciate her helping her—defending her from bullies, opening bottle caps, and so on."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 36,
              "byteStart": 34
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "This is where autistics shine. We do pay attention and remember, and we hold dear those good things about a person especially if it was to help us or help others. We don't say it. You usually will not see us express it. But once we do express it, once you ask us about it, you'll hear it in a way no other people in your life has ever expressed something to you. In Young Woo's case, her very descriptive metaphors and she even expounded it very beautifully."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 15,
              "byteStart": 13
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Trust me. We DO pay attention and we remember."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🤝🏽",
        "facets": [
          {
            "index": {
              "byteEnd": 8,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Clarity: While I identify as autistic and draw from shared community experiences, these views are my own and do not represent the entire autistic population."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.horizontalRule"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 79,
              "byteStart": 21
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 155,
              "byteStart": 144
            },
            "features": [
              {
                "uri": "https://mydramalist.com/discussions/strange-lawyer-woo-young-woo/74533-episode-5-feedback-from-an-autistic",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "These reflections on Extraordinary Attorney Woo (이상한 변호사 우영우)'s depiction of autism and autistic persons were first shared on MyDramaList on 2022-07-14 at 14:42 UTC+8."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 56,
              "byteStart": 30
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 74,
              "byteStart": 62
            },
            "features": [
              {
                "uri": "https://im.youronly.one/p/legal-notice/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Content license (2026-02-02): CC-BY-SA 4.0 International; see Legal Notice for more details."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "description": "A breakdown of autism in Extraordinary Attorney Woo (이상한 변호사 우영우) Season 1 Episode 05 by an Autistic person.",
  "publishedAt": "2022-07-13T23:42:00-07:00",
  "textContent": "📁 Note: These reflections on Extraordinary Attorney Woo (이상한 변호사 우영우)'s depiction of autism and autistic persons are imported from a community forum. The original format and my initial thoughts remain largely unchanged for this archive.\n♾️ Disclosure: I do not speak for the autistic community as a whole. My goal is to share explanations rooted in my own lived experience and the stories and concerns shared by other autistic individuals.\n‼️ Spoiler Alert!\nThe elephants\nBefore the review, let's talk about the three elephants in the room.\nNo two autistics are the same\nThis needs to be reiterated: no two autistics are the same. You, your sibling, cousin, nephew, niece, or some other random person you saw in a mall or a park, may do things and act a certain way and they are autistic but it does not mean all other autistics are the same. Not because someone do things or act similarly to someone you know who is autistic does it mean they are not autistic.\nThe \"autism spectrum\" is called a \"spectrum\" for that reason. Many autistics, like myself, do not exactly agree with the word \"spectrum\" because many think of it as a line from Point A to Point B; which leads to \"severity\" classifications like \"least\", \"mild\", and \"severe\". Autism is not two-dimensional, it is three-dimensional, or to be more exact—it is four-dimensional.\nThink of a 10-band equalizer. The bands are the various autistic traits and quirks. The basic bands (located usually in the center) are the \"common\" autistic traits and quirks. All autistics share it. While the other bands are the uncommon traits and quirks, confirmed as autistic but rarely observed (or there is not much study done on it yet).\nEach band in the equalizer can be adjusted up or down. Autistic traits and quirks are similar, in that, in some autistics a particular trait is profound or more observable while in other autistics that same trait is less obvious almost assumed by other people as non-existent.\nAutism is like that. It is not a \"spectrum\" as most understood \"spectrum\" is. There is no \"slight autism\", \"mild autism\", or \"severe autism\". It is not two-dimensional. \"Oh, Attorney Woo Young Woo has mild autism\" but if you ask other people they will say, \"Young Woo has severe autism\". You can not define or classify an autistic that way, it won't work, and Woo Young Woo is a good example even though she's a fictional character (and it does not mean there is no real life person like her). These labels are used for the sake of discussion and diagnoses, especially for parents. Understanding comes first before acceptance.\nWho or what does Attorney Woo Young Woo represents?\nThe second elephant in the room, \"Is Attorney Woo Young Woo a good representation of autistics?\" Some say \"yes\" while some \"no\". Both are valid and here are the reasons why.\n- Yes, Woo Young Woo is a good representation of the \"Autism Spectrum Condition\" (\"ASC\")—or \"ASD\" if you prefer the word \"disorder\". She is not representing any particular autistic but the condition itself.\n- Not exactly, because autistic women do have different challenges than autistic men. Autistic men and women do share common traits and quirks (as explained earlier) but there are traits and quirks and challenges that autistic women have and/or faces daily more than autistic men. Autistic women masks far more than autistic men, this is but one reason I have seen expressed by other autistic women (check SNS and boards). But do not dismiss her because …\n- Yes, she is representing the entire community of autistics. The story is about how someone with a condition is living in a world not made for them, how autistics are treated. It is about the discrimination, prejudices, and stigma. It is not about how one particular autistic is living. You will understand this if you've watched shows like Adam and A Brilliant Mind (a.k.a. X + Y). These two Western films were about an autistic person instead of the entire community. We need to remember this otherwise we will miss the messages Extraordinary Attorney Woo (이상한 변호사 우영우) is telling us.\n\nSo, again, this is about the challenges, discrimination, prejudices, and stigma; it is not about a specific person.\n🧠 If we are going to insist on \"perfect representation\" since \"no two autistics are the same\" then we have to create 77,530,000 characters based on the estimate that 1% of the global population is in the autism spectrum. \"Perfect representation\" of autistics is not the same as representating people who are brown and black, or representating our friends in the LGBTQ+ community.\nSelf-diagnosis\nNow, let's get into the biggest elephant: self-diagnosis. One English site covering Korean dramas has reported that people who have watched Extraordinary Attorney Woo are starting to post in SNS and boards how they are starting to think and feel they may or might be in the spectrum. This sparked a heated discussion wherein some people accused them of \"jumping to the bandwagon\", \"because it's cool\", or \"they start to think they are experts\". The same discussion got heated in English communities, though a little bit subdued (at least on the thread I was following).\nThe ironic thing about this, at least on that one thread I was monitoring, those who are autistics are defending those who are self-diagnosing while those who do not understand autism at all are the ones attacking and dismissing them.\nHere's the thing. If you join autistic SNS groups or watch online, or even join a meet-up in your local autistic organisation, there are diagnosed autistics who started in self-diagnosis. There are many reasons like:\n- they want to see first if there is a high possibility because getting a diagnosis is expensive in their country;\n- their family/clan will be pissed-off, they run the risk of being disowned;\n- autism is not known when they were kids;\n- no one suspected them, they got curious one day, and was convinced to get an official diagnosis (since they're adults already and maybe they don't exactly need support, it won't make a difference if the diagnosis is negative or positive).\n\nShould we invalidate those doing self-diagnosis? What if it turns out to be correct? How about those who are simply jumping to the bandwagon because they think it is cool? Let them be. If they're in it because it's the trend, they will disappear sooner or later.\nHow can we be sure they are simply jumping in to the bandwagon? If undiagnosed autistics see how people are invalidating them, they too will be afraid to continue learning about autism.\nDo we care in the autistic community? I can not speak for the community but from what I've seen, from what I've read, it's not a big deal. What the community is concerned most are organisations who are only in it for the money or whatever other agenda they have. These organisations (not all, let's be clear on that) are the ones hurting us the most.\nAs autistics, we understand what it means to be an autistic. The hardships and challenges. Autism is easier to diagnose when a person is still a kid. Adults? We already learned how to mask. We appear \"normal\" to you but we don't process things, we don't experience things, the same way as you do. So who are we to invalidate an autistic who self-diagnosed? Or those posting in SNS and boards that there are autistic traits and quirks resonating with them when they watched Extraordinary Attorney Woo?\nThe whales\nNow, let's talk about episode 05.\nJoining the joke but no one laughed\n🎭 Scene: First meeting with the client.\nWell … been there. But I think many, if not all, have been in that situation even neurotypicals, probably more often with introverts in particular. This is not an autistic quirk per se but it just happens far more frequently with autistics than neurotypicals/introverts. And if you paid attention, Young Woo was observing them and trying to find a moment to join them and when she did …\nYoung Woo spotted the differences quickly\n🎭 Scene: First court scene.\n- Was it possible that Young Woo spotted the differences that fast? Yes.\n- Was it possible that Young Woo spotted the little differences? Yes.\n\nWe are not talking about \"spot-the-difference\", this is about spotting the little things. An example, since I develop sites, if there is something I want to center, it bothers me a lot if it is. I can still see an object is not centered, if it is off by a pixel or two it is not centered at all! I hate that. Eventually, I found a way to \"fool\" myself so I no longer waste time trying to achieve true center. (note: 'perfectionism' is under OCD which is common in autistics.)\nI used to be good at spot-the-difference games too but I'm not as fast as Young Woo in this episode; and being good at it is not an autistic-only skill. Hence I said it is about spotting the little things.\nStarted arguing only to realized there's a flaw in her argument\n🎭 Scene: First court scene.\nAfter she spotted the little differences, she stood up and started her argument only to pause later because she realized the flaw and tried to salvage the situation.\nI can't speak for other autistics on this one but it generally happens when we get 'excited', we react faster than our internal analysation. It is common for autistics to play different scenarios and branches in our mind but when we get 'excited' the risk of missing a scenario increases, like what happened to Attorney Woo. If she did not get excited at that moment, I have no doubt she would have seen in her mind her argument was not fool proof.\nLooking straight into the other person's eyes\n> \"Looking straight into the other person's eyes is the most difficult thing in the world for someone with autism.\"\n\n—Attorney Woo Young Woo, Extraordinary Attorney Woo (이상한 변호사 우영우)\nYEAH! I was waiting for them to address this. Finally! However, it is important to remember (1) the degree this is affecting an autistic; and (2) how we cope with it.\nOne way we cope with it, and I think I talked about this before, is to \"look between their eyebrows\" (as her friend suggested) or the bridge of the nose. We appear looking at you in the eyes but we are not.\nThere are different reasons why this is the most difficult thing for autistics, some reasons are:\n- it's like opening your soul to other people;\n- autistics 'feel' it is rude to look into the soul of another person;\n- it is painful; or\n- no reason at all, it's just hard to do.\n\nNow, since this episode was about detecting lies, it's important to note that detecting lies through the eyes will not work with autistics. Good luck. No matter how hard we try to look directly into your eyes, we will break contact. For some it is easier if one is wearing eyeglasses or sunglasses, for some it still won't make a difference (regardless if both of them are wearing sunglasses). It depends but yeah, we all struggle with it.\nHere's one way I cope with it: I try to find the colour of your eyes. That distracts me though, so there is a chance I'll miss what you were saying. Another method I use is watching your iris grow or shrink, again, it distracts me because I'm focusing on something else. Much better if I just look elsewhere and listen, that way I can hear you.\nThe word \"handicap\"\n🎭 Scene: Attorney Kwon used the word \"handicap\" and even claimed that he had no choice but to shoulder certain things. Even connected it to \"volunteer work\".\nYeah, definitely insulting and common. This is not about being \"politically correct\", it is about the inaccuracy of that word and how it is usually used. Even parents who accepted their child's autism would not be happy if you use that word.\nHow to tell if someone is lying\n🎭 Scene: They were talking about the signs of lying.\nCareful when using these \"signs\" on autistics. More likely than not it won't work, you'll just get the wrong assessment.\nAutistics cannot lie\n> \"People with autism are easily fooled and are not able to lie.\"\n\n—Attorney Woo Young Woo, Extraordinary Attorney Woo (이상한 변호사 우영우)\nI'm not sure if the translation was correct but the part \"are not able to lie\" is not exactly true. Autistics are capable of lying, the difference is we hate it far more than neurotypicals so we avoid it at all costs. We just hate it.\nHere's an example: if we agreed on a certain time and you told me \"I'm already here, I'll be arriving in 10 minutes\"; and then you sent another similar message, I know you're lying and if I fail to control myself, I'll make a big fuss about it. Especially true if I know the route you're taking and the road situation.\nWhat makes it worse is you're late. We also hate lates. Again, we are capable of being late but we avoid it. This should give you a clue, if you know someone is autistic and they're regularly late, find out the reason instead of punishing them. A good example of this is in episode 5 when Young Woo was not able to explain what \"[bank] cassettes\" are. It is not related to being late per se rather the reason behind it—when you know an autistic wouldn't make that mistake. In Young Woo's case, it's unusual for her not to be able to answer that question considering her performance … it should've been a sign something was wrong.\nSo yeah, neurotypicals, if you know or suspect someone is autistic, try to find the reason first. Actually, it doesn't only apply to autistics, it applies to everyone. If you know a person wouldn't do certain things, say being late or failing an exam, find out why first before reprimanding or punishing them.\n> \"I have to make a conscious effort at all times to not be fooled by lies.\"\n\n—Attorney Woo Young Woo, Extraordinary Attorney Woo (이상한 변호사 우영우)\nDefinitely true. We explain it this way: we have a checklist of things in our mind. And Young Woo explained it this way (paraphrasing) \"I keep forgetting it\". The list is just so long, and we also have yet another list for other social stuff, that yeah, we forget some things and it is also draining us.\n> \"These stories help.\"\n> \"They help me understand you.\"\nWhy I'm sharing. If it won't help me anymore, at least those autistic kids will benefit from it, maybe when they get older there will be less discrimination, prejudice, and stigma because we shared our own stories.\nAnd this is why I see Extraordinary Attorney Woo (이상한 변호사 우영우) as an autism advocacy, as a story about autistics (as a representation) in a world not made for them instead of any particular autistic (representation).\nAsking the first question that bothered her with no brakes\nIt bothered her if Joon Ho likes her so the first question she asked in that scene was that … no brakes!\nYeah, that's us. But it's something that we can learn not to do.\nYoung Woo repeating the information about how to detect lies through movements while walking\nThis is true as well. Not every autistic do it similarly, reciting it to oneself, it can happen silently in our minds.\nYoung Woo finding it very hard to go with the lie\n🎭 Scene: In the office of the client and at court.\nAs I've mentioned earlier, we are capable of lying—especially if there is an acceptable logic behind it—but we hate it and avoid it at all costs. In Young Woo's case, she found an acceptable reason, she wanted to win the case but she was never okay with it. Unfortunately, in this particular case, the acceptable reason she found was her being used. Her client understood her and knew how he can get her to side with him—like faking his accident and setting up an actor—which I think Young Woo also realised.\nThis is the other 'danger' or 'disadvantage' of disclosing our condition. If someone understands how a mind of an autistic works, they can use it against us.\nYoung Woo being honest about what she thinks of her friend\nAhh this. Autistics are commonly misunderstood on this one. People think we don't have emotions, empathy, sympathy, are self-centered, and so on. But as I've explained time and again, we process and express things differently.\nThis scene at the cafeteria is one good example of it. Her college friend and colleague never thought of Young Woo other than a classmate and a colleague, she was even annoyed at her at times. She probably assumed Young Woo did not appreciate her helping her—defending her from bullies, opening bottle caps, and so on.\nThis is where autistics shine. We do pay attention and remember, and we hold dear those good things about a person especially if it was to help us or help others. We don't say it. You usually will not see us express it. But once we do express it, once you ask us about it, you'll hear it in a way no other people in your life has ever expressed something to you. In Young Woo's case, her very descriptive metaphors and she even expounded it very beautifully.\nTrust me. We DO pay attention and we remember.\n🤝🏽 Clarity: While I identify as autistic and draw from shared community experiences, these views are my own and do not represent the entire autistic population.\n\n\n\n---\n\n\nThese reflections on Extraordinary Attorney Woo (이상한 변호사 우영우)'s depiction of autism and autistic persons were first shared on MyDramaList on 2022-07-14 at 14:42 UTC+8.\nContent license (2026-02-02): CC-BY-SA 4.0 International; see Legal Notice for more details."
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3mds6ot6v7f23

app.offprint.block.taskList (nested within site.standard.document) (1 sample)
{
  "path": "/a/3mdpyqqbg4a23-callouts-cheatsheet",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "Callouts Cheatsheet",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Here are callouts that I'm using or might use later."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🆓",
        "facets": [
          {
            "index": {
              "byteEnd": 16,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              },
              {
                "$type": "app.offprint.richtext.facet#underline"
              }
            ]
          }
        ],
        "plaintext": "Feel free to use"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "List"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "💡",
        "plaintext": "For ideas, knowledge, general info"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "ℹ️",
        "plaintext": "Information"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "📌",
        "plaintext": "Reminder, Important"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "💭",
        "plaintext": "Thought, philosophical question"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "⚖️",
        "facets": [
          {
            "index": {
              "byteEnd": 11,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Disclaimer: Text here"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "⚠️",
        "facets": [
          {
            "index": {
              "byteEnd": 8,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Warning: Text here"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🚨",
        "plaintext": "Red Alert"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "‼️",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Spoiler Alert!"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🛑",
        "plaintext": "Stop"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "💬",
        "plaintext": "Comment; aside"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "㊙️",
        "plaintext": "Secret"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🔖",
        "plaintext": "Bookmark"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "📝",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Note: Text here"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🧠",
        "plaintext": "Educational task"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "🎭",
        "facets": [
          {
            "index": {
              "byteEnd": 6,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Scene: Text here"
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "📁",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Note: Archive note here"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "ToDo"
      },
      {
        "$type": "app.offprint.block.taskList",
        "children": [
          {
            "checked": false,
            "content": {
              "$type": "app.offprint.block.text",
              "plaintext": "Categorize"
            }
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "description": "Because callouts are cool 😎",
  "publishedAt": "2026-01-31T07:31:48-07:00",
  "textContent": "Here are callouts that I'm using or might use later.\n🆓 Feel free to use\nList\n💡 For ideas, knowledge, general info\nℹ️ Information\n📌 Reminder, Important\n💭 Thought, philosophical question\n⚖️ Disclaimer: Text here\n⚠️ Warning: Text here\n🚨 Red Alert\n‼️ Spoiler Alert!\n🛑 Stop\n💬 Comment; aside\n㊙️ Secret\n🔖 Bookmark\n📝 Note: Text here\n🧠 Educational task\n🎭 Scene: Text here\n📁 Note: Archive note here\nToDo\n[ ] Categorize"
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3mdpyqqbg4a23

app.offprint.block.text (nested within site.standard.document) (5 samples)
{
  "path": "/a/3mfs5iymmns23-once-we-were-us-review",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "《Once We Were Us》 Review",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "‼️",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Spoiler Alert!"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Plot"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Review"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 55,
              "byteStart": 32
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "The two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Location, Scenes, and Dialogues"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Last but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "YourOnly.One Verdict"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Overall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Trailer"
      },
      {
        "href": "https://youtu.be/Q4cwG6j-ajI",
        "$type": "app.offprint.block.webEmbed",
        "title": "Once We Were Us (2025) 만약에 우리 Movie Trailer 2 | EONTALK",
        "width": "100%",
        "embedUrl": "https://www.youtube.com/embed/Q4cwG6j-ajI?feature=oembed",
        "siteName": "YouTube",
        "alignment": "center",
        "embedWidth": 800,
        "description": "Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.",
        "embedHeight": 450
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Bonus"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us))."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.horizontalRule"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 88,
              "byteStart": 75
            },
            "features": [
              {
                "uri": "https://atprotofans.com/u/did:plc:bpotnohnlgcj3fbmp7ugx4en",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "If this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Cover image: Copyrighted to their respective owners, used under Fair Use."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 43,
              "byteStart": 17
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 61,
              "byteStart": 49
            },
            "features": [
              {
                "uri": "https://im.youronly.one/p/legal-notice/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Content license: CC-BY-SA 4.0 International; see Legal Notice for more details."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "coverImage": {
    "ref": {
      "$link": "bafkreiadpaff427src6mjrwhsfaud44hcj7rfz5lvb4kbw67h4ex7d5m2m"
    },
    "size": 379607,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "Find out why 《Once We Were Us》 is a movie you must watch",
  "publishedAt": "2026-02-26T15:06:27-07:00",
  "textContent": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten.\n‼️ Spoiler Alert!\nPlot\n《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」.\nReview\nThis production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years.\nThe two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters.\nLocation, Scenes, and Dialogues\nThe locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits.\nLast but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural.\nYourOnly.One Verdict\nOverall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch.\nTrailer\nBonus\nThis South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us)).\n\n\n\n---\n\n\nIf this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽\nCover image: Copyrighted to their respective owners, used under Fair Use.\nContent license: CC-BY-SA 4.0 International; see Legal Notice for more details."
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3mfs5iymmns23

app.offprint.block.webBookmark (nested within site.standard.document) (1 sample)
{
  "path": "/a/3melamcro7t23-2026-02-11",
  "site": "at://did:plc:ukgwapa3bceculh4cobcopg3/site.standard.publication/3mdzosfmvf22x",
  "$type": "site.standard.document",
  "title": "2026-02-11",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "uri": "https://aylur.github.io/astal/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 20,
              "byteStart": 10
            },
            "features": [
              {
                "uri": "https://quickshell.org/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Astal and Quickshell are wrappers around GTK and QT intended for making desktop widgets. Unlike awesomewm's widgets or custom rofis before they are notable for allowing you to create anything that is possible with their respective GUI toolkit. This seems unexplored as a type of software, both in general and within the atmosphere."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 125,
              "byteStart": 122
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "Today much of what most ricers use these frameworks to create is still Bar with Clock or small tweaks to a premade setup. But if you take the code out of their ~/.config directories and squint little, what you see is much larger than a \"script\", yet far too loose to be called an app. There's bindings to system details such as volume, battery, bluetooth. These usually have less indirection than a script calling bluetoothctl while user code is remains high level (ags, part of Astal is tsx and quickshell is qml). I regularly see complete JS newbies pick up AGS, just to make their shells. People share pics of their setups in code snippets more often than github links."
      },
      {
        "$type": "app.offprint.block.blockquote",
        "content": [
          {
            "$type": "app.offprint.block.text",
            "plaintext": "I guess the main task of any such framework is just to trick the user into thinking that they're just doing some config, rather than, well, writing code... because if you just think you're able to just write code,  might as well just use GTK directly 😛\n- Elkowar from eww (elkowar's wacky widgets)"
          }
        ]
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Where am I going with this? Not exactly sure. Somewhere close to this. "
      },
      {
        "href": "https://deer.social/profile/did:plc:e5zplwgiznavptdxhx5n2zlp/post/3m6sdhwtonk2i",
        "$type": "app.offprint.block.webBookmark",
        "title": "Pieter Montoulieu (@montoulieu.dev)",
        "siteName": "deer.social",
        "description": "I've had this idea for a while, but what if you built a desktop UI on top of atproto data... and what if that UI looked cyberpunk AF?\n\nHere's a first look at Aether OS, a desktop-like interface with  system and lexicon apps powered by your data."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 70,
              "byteStart": 0
            },
            "features": [
              {
                "uri": "at://did:plc:e5zplwgiznavptdxhx5n2zlp/app.bsky.feed.post/3m6sdhwtonk2i",
                "$type": "app.offprint.richtext.facet#link"
              },
              {
                "$type": "app.offprint.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "at://did:plc:e5zplwgiznavptdxhx5n2zlp/app.bsky.feed.post/3m6sdhwtonk2i"
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 146,
              "byteStart": 120
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#italic"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 164,
              "byteStart": 159
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#strikethrough"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 383,
              "byteStart": 366
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#code"
              }
            ]
          }
        ],
        "plaintext": "However in light of the widget frameworks just discussed, I cannot help but wonder if it could be more. Looking at the \"Atmosphere as a Filesystem\", I ask why can't don't I do unixy things with the data. An important detail I glossed over earlier was the difference between astal and ags. Astal is a set of libraries to bind system information. For example it turns cat /proc/meminfo into GTK's approximation of a derived signal. This is usable to any GTK app. AGS is an independent thing, useful for writing gtk apps with typescript. It can use libraries like Astal. This setup is the result of 3 major revisions."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 511,
              "byteStart": 500
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "For the atmosphere, where do I mount it to a directory, get a regular notification for replies, or sync my real daily notes to this publication? Reading a pds is straight forward GET request in most places. Atprotocol FUSE pushes that a bit farther. What's missing? Connecting it to signals? Widget frameworks? Light GUI options? Answers will vary depending on your current OS. But they can be simpler if we stay away from Serious Application Development with Mass Distribution, just harmless little (malleable) widgets. "
      }
    ]
  },
  "publishedAt": "2026-02-11T05:20:55-07:00",
  "textContent": "Astal and Quickshell are wrappers around GTK and QT intended for making desktop widgets. Unlike awesomewm's widgets or custom rofis before they are notable for allowing you to create anything that is possible with their respective GUI toolkit. This seems unexplored as a type of software, both in general and within the atmosphere.\nToday much of what most ricers use these frameworks to create is still Bar with Clock or small tweaks to a premade setup. But if you take the code out of their ~/.config directories and squint little, what you see is much larger than a \"script\", yet far too loose to be called an app. There's bindings to system details such as volume, battery, bluetooth. These usually have less indirection than a script calling bluetoothctl while user code is remains high level (ags, part of Astal is tsx and quickshell is qml). I regularly see complete JS newbies pick up AGS, just to make their shells. People share pics of their setups in code snippets more often than github links.\n> I guess the main task of any such framework is just to trick the user into thinking that they're just doing some config, rather than, well, writing code... because if you just think you're able to just write code,  might as well just use GTK directly 😛\n- Elkowar from eww (elkowar's wacky widgets)\nWhere am I going with this? Not exactly sure. Somewhere close to this. \nat://did:plc:e5zplwgiznavptdxhx5n2zlp/app.bsky.feed.post/3m6sdhwtonk2i\nHowever in light of the widget frameworks just discussed, I cannot help but wonder if it could be more. Looking at the \"Atmosphere as a Filesystem\", I ask why can't don't I do unixy things with the data. An important detail I glossed over earlier was the difference between astal and ags. Astal is a set of libraries to bind system information. For example it turns cat /proc/meminfo into GTK's approximation of a derived signal. This is usable to any GTK app. AGS is an independent thing, useful for writing gtk apps with typescript. It can use libraries like Astal. This setup is the result of 3 major revisions.\nFor the atmosphere, where do I mount it to a directory, get a regular notification for replies, or sync my real daily notes to this publication? Reading a pds is straight forward GET request in most places. Atprotocol FUSE pushes that a bit farther. What's missing? Connecting it to signals? Widget frameworks? Light GUI options? Answers will vary depending on your current OS. But they can be simpler if we stay away from Serious Application Development with Mass Distribution, just harmless little (malleable) widgets."
}

did:plc:ukgwapa3bceculh4cobcopg3 | at://did:plc:ukgwapa3bceculh4cobcopg3/site.standard.document/3melamcro7t23

app.offprint.block.webEmbed (nested within site.standard.document) (1 sample)
{
  "path": "/a/3mfs5iymmns23-once-we-were-us-review",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "《Once We Were Us》 Review",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "‼️",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Spoiler Alert!"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Plot"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Review"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 55,
              "byteStart": 32
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "The two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Location, Scenes, and Dialogues"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Last but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "YourOnly.One Verdict"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Overall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Trailer"
      },
      {
        "href": "https://youtu.be/Q4cwG6j-ajI",
        "$type": "app.offprint.block.webEmbed",
        "title": "Once We Were Us (2025) 만약에 우리 Movie Trailer 2 | EONTALK",
        "width": "100%",
        "embedUrl": "https://www.youtube.com/embed/Q4cwG6j-ajI?feature=oembed",
        "siteName": "YouTube",
        "alignment": "center",
        "embedWidth": 800,
        "description": "Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.",
        "embedHeight": 450
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Bonus"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us))."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.horizontalRule"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 88,
              "byteStart": 75
            },
            "features": [
              {
                "uri": "https://atprotofans.com/u/did:plc:bpotnohnlgcj3fbmp7ugx4en",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "If this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Cover image: Copyrighted to their respective owners, used under Fair Use."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 43,
              "byteStart": 17
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 61,
              "byteStart": 49
            },
            "features": [
              {
                "uri": "https://im.youronly.one/p/legal-notice/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Content license: CC-BY-SA 4.0 International; see Legal Notice for more details."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "coverImage": {
    "ref": {
      "$link": "bafkreiadpaff427src6mjrwhsfaud44hcj7rfz5lvb4kbw67h4ex7d5m2m"
    },
    "size": 379607,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "Find out why 《Once We Were Us》 is a movie you must watch",
  "publishedAt": "2026-02-26T15:06:27-07:00",
  "textContent": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten.\n‼️ Spoiler Alert!\nPlot\n《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」.\nReview\nThis production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years.\nThe two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters.\nLocation, Scenes, and Dialogues\nThe locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits.\nLast but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural.\nYourOnly.One Verdict\nOverall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch.\nTrailer\nBonus\nThis South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us)).\n\n\n\n---\n\n\nIf this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽\nCover image: Copyrighted to their respective owners, used under Fair Use.\nContent license: CC-BY-SA 4.0 International; see Legal Notice for more details."
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3mfs5iymmns23

app.offprint.content (nested within site.standard.document) (5 samples)
{
  "path": "/a/3mfs5iymmns23-once-we-were-us-review",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "《Once We Were Us》 Review",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "‼️",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Spoiler Alert!"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Plot"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Review"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 55,
              "byteStart": 32
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "The two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Location, Scenes, and Dialogues"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Last but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "YourOnly.One Verdict"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Overall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Trailer"
      },
      {
        "href": "https://youtu.be/Q4cwG6j-ajI",
        "$type": "app.offprint.block.webEmbed",
        "title": "Once We Were Us (2025) 만약에 우리 Movie Trailer 2 | EONTALK",
        "width": "100%",
        "embedUrl": "https://www.youtube.com/embed/Q4cwG6j-ajI?feature=oembed",
        "siteName": "YouTube",
        "alignment": "center",
        "embedWidth": 800,
        "description": "Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.",
        "embedHeight": 450
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Bonus"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us))."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.horizontalRule"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 88,
              "byteStart": 75
            },
            "features": [
              {
                "uri": "https://atprotofans.com/u/did:plc:bpotnohnlgcj3fbmp7ugx4en",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "If this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Cover image: Copyrighted to their respective owners, used under Fair Use."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 43,
              "byteStart": 17
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 61,
              "byteStart": 49
            },
            "features": [
              {
                "uri": "https://im.youronly.one/p/legal-notice/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Content license: CC-BY-SA 4.0 International; see Legal Notice for more details."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "coverImage": {
    "ref": {
      "$link": "bafkreiadpaff427src6mjrwhsfaud44hcj7rfz5lvb4kbw67h4ex7d5m2m"
    },
    "size": 379607,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "Find out why 《Once We Were Us》 is a movie you must watch",
  "publishedAt": "2026-02-26T15:06:27-07:00",
  "textContent": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten.\n‼️ Spoiler Alert!\nPlot\n《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」.\nReview\nThis production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years.\nThe two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters.\nLocation, Scenes, and Dialogues\nThe locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits.\nLast but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural.\nYourOnly.One Verdict\nOverall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch.\nTrailer\nBonus\nThis South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us)).\n\n\n\n---\n\n\nIf this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽\nCover image: Copyrighted to their respective owners, used under Fair Use.\nContent license: CC-BY-SA 4.0 International; see Legal Notice for more details."
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3mfs5iymmns23

app.offprint.richtext.facet (nested within site.standard.document) (5 samples)
{
  "path": "/a/3mfs5iymmns23-once-we-were-us-review",
  "site": "at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.publication/3mdjmi3ay5t2w",
  "$type": "site.standard.document",
  "title": "《Once We Were Us》 Review",
  "content": {
    "$type": "app.offprint.content",
    "items": [
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten."
      },
      {
        "$type": "app.offprint.block.callout",
        "emoji": "‼️",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Spoiler Alert!"
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Plot"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Review"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 55,
              "byteStart": 32
            },
            "features": [
              {
                "$type": "app.offprint.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "The two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 3,
        "plaintext": "Location, Scenes, and Dialogues"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "The locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Last but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "YourOnly.One Verdict"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Overall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch."
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Trailer"
      },
      {
        "href": "https://youtu.be/Q4cwG6j-ajI",
        "$type": "app.offprint.block.webEmbed",
        "title": "Once We Were Us (2025) 만약에 우리 Movie Trailer 2 | EONTALK",
        "width": "100%",
        "embedUrl": "https://www.youtube.com/embed/Q4cwG6j-ajI?feature=oembed",
        "siteName": "YouTube",
        "alignment": "center",
        "embedWidth": 800,
        "description": "Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.",
        "embedHeight": 450
      },
      {
        "$type": "app.offprint.block.heading",
        "level": 2,
        "plaintext": "Bonus"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "This South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us))."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.horizontalRule"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 88,
              "byteStart": 75
            },
            "features": [
              {
                "uri": "https://atprotofans.com/u/did:plc:bpotnohnlgcj3fbmp7ugx4en",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "If this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽"
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": "Cover image: Copyrighted to their respective owners, used under Fair Use."
      },
      {
        "$type": "app.offprint.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 43,
              "byteStart": 17
            },
            "features": [
              {
                "uri": "https://creativecommons.org/licenses/by-sa/4.0/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 61,
              "byteStart": 49
            },
            "features": [
              {
                "uri": "https://im.youronly.one/p/legal-notice/",
                "$type": "app.offprint.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Content license: CC-BY-SA 4.0 International; see Legal Notice for more details."
      },
      {
        "$type": "app.offprint.block.text",
        "plaintext": ""
      }
    ]
  },
  "coverImage": {
    "ref": {
      "$link": "bafkreiadpaff427src6mjrwhsfaud44hcj7rfz5lvb4kbw67h4ex7d5m2m"
    },
    "size": 379607,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "Find out why 《Once We Were Us》 is a movie you must watch",
  "publishedAt": "2026-02-26T15:06:27-07:00",
  "textContent": "Watching 《Once We Were Us》 (《만약에 우리》) was like watching my own true story unfold on screen. My real-life experience and this film's plot were far too similar, and it stirred emotions long forgotten.\n‼️ Spoiler Alert!\nPlot\n《Once We Were Us》 (《만약에 우리》) is a story about two individuals who fell in love, made the best memories together, broke up, and crossed paths more or less ten years later. They went down memory lane and reminisced about their younger days and the good times they had as a couple, until eventually they asked the question couples who were deeply in love are afraid to ask: 「What went wrong」.\nReview\nThis production was straightforward: it is a romantic drama. It expects the audience to share the emotions of the characters as they go through their past—the happy and the painful memories alike. There were no touchy-feely sweet-nothing scenes. There were no side stories or twists. It was life, and romantic life, throughout, and this approach is deeply appreciated—something that has sadly been rare these past six years.\nThe two actors, most especially Mun Gayeong (문가영), did well in conveying the needed facial expressions and emotions without relying on internal monologues or extra scenes. Or perhaps their delivery resonated more because, as mentioned earlier, the story is closely similar to my own. Experience teaches, after all, and that may be why the characters were easy to read. Regardless, audiences who have not experienced even half of this will likely still feel alongside the characters.\nLocation, Scenes, and Dialogues\nThe locations blended well with the characters. There were no grand settings simply for the sake of advertising South Korea. As for product placements, these were not forced and therefore not distracting—something only noticeable after watching the last part of the credits.\nLast but not least, the scenes and dialogues were carefully written to feel natural. The scenes were neither too short nor too long, they were perfectly timed. The dialogues reflected what couples naturally say to each other, instead of the usual dramatic lines that make audiences raise an eyebrow because they sound unnatural.\nYourOnly.One Verdict\nOverall—and admittedly, it is difficult to separate personal connection, or bias, from the story—I give it a perfect ten (10). Stories and productions like this are now rare, and this is the kind I truly love to watch.\nTrailer\nBonus\nThis South Korean film adaptation was based on the 2018 movie 《Us and Them》 (《后来的我们》 (The Future Us)).\n\n\n\n---\n\n\nIf this work has informed, been useful, or saved you time, please consider sending a tip. 🙇🏽 Your support keeps this sustainable. 🖖🏽\nCover image: Copyrighted to their respective owners, used under Fair Use.\nContent license: CC-BY-SA 4.0 International; see Legal Notice for more details."
}

did:plc:bpotnohnlgcj3fbmp7ugx4en | at://did:plc:bpotnohnlgcj3fbmp7ugx4en/site.standard.document/3mfs5iymmns23

at.markpub.markdown (nested within site.standard.document) (50 samples)
{
  "path": "/posts/2017/2017-04-18-go-channels/",
  "site": "at://did:plc:mracrip6qu3vw46nbewg44sm/site.standard.publication/self",
  "$type": "site.standard.document",
  "title": "Go channels",
  "content": {
    "text": {
      "$type": "at.markpub.text",
      "rawMarkdown": "Go uses goroutines to execute multiple bits of code at the same time. Channels allow for the aggregation of the results of these concurrent calls after they have finished.\n\nConsider a case where we want to make several `GET` requests to a server. The server takes some time to process each request, in many cases can handle many simultaneous connections. In a language like Python, we might do the following to make several requests:\n\n<figure>\n<figcaption>client.py</figcaption>\n\n```python\nimport requests\nimport time\n\nstart = time.time()\nfor _ in range(10):\n    r = requests.get('http://localhost:8080/inc')\n    print r.content\nprint('Time elapsed: %.2f seconds' % (time.time() - start))\n```\n\n</figure>\n\nIf the server takes an average of 100ms to respond, it will take us about one second to do ten requests in native Python.\n\nLet's run the above Python code against the following Go HTTP server. The server prints the (random) request delay and a global counter it maintains to keep track of how many requests have been made. It responds to the caller with the string: \"The count is `count`\".\n\n<figure>\n<figcaption>server.go</figcaption>\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"log\"\n    \"math/rand\"\n    \"net/http\"\n    \"time\"\n)\n\nvar counter int\n\nfunc main() {\n    http.HandleFunc(\"/inc\", func(w http.ResponseWriter, r *http.Request) {\n        duration := time.Duration(rand.Float64()*200) * time.Millisecond\n        fmt.Println(\"Sleeping for: \", duration)\n        time.Sleep(duration)\n        counter++\n        msg := fmt.Sprintf(\"The count is: %d\", counter)\n        fmt.Println(msg)\n        fmt.Fprintf(w, msg)\n    })\n\n    log.Fatal(http.ListenAndServe(\":8080\", nil))\n}\n```\n\n</figure>\n\nWe run the server to accept incoming requests:\n\n```sh\ngo run server.go\n```\n\nThen we run the Python script:\n\n```sh\npython client.py\n```\n\nwhich outputs the following:\n\n```sh\nThe count is: 1\nThe count is: 2\nThe count is: 3\nThe count is: 4\nThe count is: 5\nThe count is: 6\nThe count is: 7\nThe count is: 8\nThe count is: 9\nThe count is: 10\nTime elapsed: 0.96 seconds\n```\n\nOur server output looks something like this:\n\n```sh\nSleeping for:  120ms\nThe count is: 1\nSleeping for:  188ms\nThe count is: 2\nSleeping for:  132ms\nThe count is: 3\nSleeping for:  87ms\nThe count is: 4\nSleeping for:  84ms\nThe count is: 5\nSleeping for:  137ms\nThe count is: 6\nSleeping for:  13ms\nThe count is: 7\nSleeping for:  31ms\nThe count is: 8\nSleeping for:  19ms\nThe count is: 9\nSleeping for:  60ms\nThe count is: 10\n```\n\nThe total elapsed time is about what we would expect. Ten requests at approximately 100ms each, gives us about one second for all requests. However, our Python script spends most of its time waiting for a response from the server which is sleeping. What would happen if we kicked off all ten requests to the server at the same time? We might expect this to be a problem. After all, if Python only can make one request at a time, why should our server be able to process more than one request at a time. For this to work in Python we need to use something like [uWSGI](https://uwsgi-docs.readthedocs.io/en/latest/) or [asyncio](https://docs.python.org/3/library/asyncio.html). It turns out that Go's builtin `net/http` library [uses goroutines](https://golang.org/src/net/http/server.go?s=83696:83751#L2668) to handle multiple incoming requests at once. Let's trying making our requests in a similar manner, using goroutines to kick off all the requests at once, with the following Go code:\n\n<figure>\n<figcaption>client.go</figcaption>\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"io/ioutil\"\n    \"net/http\"\n    \"time\"\n)\n\nfunc main() {\n    start := time.Now()\n    routineCount := 10\n    // create a go routine to make the HTTP request\n    // pass a channel into which the response will be written\n    channel := make(chan string)\n    for i := 0; i < routineCount; i++ {\n        go request(channel)\n    }\n    // read the responses from the channel\n    for i := 0; i < routineCount; i++ {\n        fmt.Println(<-channel)\n    }\n    secs := time.Since(start).Seconds()\n    fmt.Printf(\"Time elapased: %.2f seconds\", secs)\n}\n\nfunc request(channel chan<- string) {\n    resp, err := http.Get(\"http://localhost:8080/inc\")\n    if err != nil {\n        fmt.Println(err)\n        return\n    }\n    defer resp.Body.Close()\n    body, _ := ioutil.ReadAll(resp.Body)\n    channel <- fmt.Sprintf(string(body))\n}\n\n```\n\n</figure>\n\nWhen we run this code against the same (restarted) server, we get the following output:\n\n```sh\n$ go run threads.go\nThe count is: 1\nThe count is: 2\nThe count is: 3\nThe count is: 4\nThe count is: 5\nThe count is: 6\nThe count is: 7\nThe count is: 8\nThe count is: 9\nThe count is: 10\nTime elapased: 0.19 seconds\n```\n\nWith goroutines, the program runs about five times faster than our ten synchronous requests in Python. Look what happens on the server side:\n\n```sh\nSleeping for:  87ms\nSleeping for:  132ms\nSleeping for:  120ms\nSleeping for:  188ms\nSleeping for:  84ms\nSleeping for:  137ms\nSleeping for:  13ms\nSleeping for:  31ms\nSleeping for:  19ms\nSleeping for:  60ms\nThe count is: 1\nThe count is: 2\nThe count is: 3\nThe count is: 4\nThe count is: 5\nThe count is: 6\nThe count is: 7\nThe count is: 8\nThe count is: 9\nThe count is: 10\n```\n\nThis time on the server side, all the sleep durations are printed first, then the counter is incremented afterwards. So what happens is the server accepts all ten requests then all threads start sleeping. As each of the threads wakes up, they start incrementing the counter respectively and returning to the client callers. The responses on the client side look about the same as they did when we made the requests in series, but this time the total time elapsed was only 0.19 seconds. This corresponds to the longest sleep time printed by the server: 188ms. So, by using goroutines, we have reduced the runtime of our program from the sum of the time of all requests to the time of just the longest request. Not bad.\n\nAnother cool part about using goroutines in this scenario is that we can scale the number of threads to accomplish even more in the same amount of time. Keep in mind, even though creating goroutines is cheap, creating too many of them to make a large number of requests against an HTTP server all at once may cause the server to run out of resources or limit the number of connections it will accept. On my machine, scaling up `routineCount` to 300 is no problem for the server. However, at around 400, some of the requests start getting lost and at 800 I start seeing the following error:\n\n```sh\nGet http://localhost:8080/inc: read tcp [::1]:59928->[::1]:8080: read: connection reset by peer\n```\n\nFrom a more detailed explanation on what happens when we make too many concurrent requests, check out this [Stack Overflow post](http://stackoverflow.com/questions/37774624/go-http-get-concurrency-and-connection-reset-by-peer)."
    },
    "$type": "at.markpub.markdown",
    "flavor": "commonmark"
  },
  "updatedAt": "2017-04-18T21:30:00.000Z",
  "publishedAt": "2017-04-18T21:30:00.000Z",
  "textContent": "Go uses goroutines to execute multiple bits of code at the same time. Channels allow for the aggregation of the results of these concurrent calls after they have finished.\n\nConsider a case where we want to make several `GET` requests to a server. The server takes some time to process each request, in many cases can handle many simultaneous connections. In a language like Python, we might do the following to make several requests:\n\n<figure>\n<figcaption>client.py</figcaption>\n\n```python\nimport requests\nimport time\n\nstart = time.time()\nfor _ in range(10):\n    r = requests.get('http://localhost:8080/inc')\n    print r.content\nprint('Time elapsed: %.2f seconds' % (time.time() - start))\n```\n\n</figure>\n\nIf the server takes an average of 100ms to respond, it will take us about one second to do ten requests in native Python.\n\nLet's run the above Python code against the following Go HTTP server. The server prints the (random) request delay and a global counter it maintains to keep track of how many requests have been made. It responds to the caller with the string: \"The count is `count`\".\n\n<figure>\n<figcaption>server.go</figcaption>\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"log\"\n    \"math/rand\"\n    \"net/http\"\n    \"time\"\n)\n\nvar counter int\n\nfunc main() {\n    http.HandleFunc(\"/inc\", func(w http.ResponseWriter, r *http.Request) {\n        duration := time.Duration(rand.Float64()*200) * time.Millisecond\n        fmt.Println(\"Sleeping for: \", duration)\n        time.Sleep(duration)\n        counter++\n        msg := fmt.Sprintf(\"The count is: %d\", counter)\n        fmt.Println(msg)\n        fmt.Fprintf(w, msg)\n    })\n\n    log.Fatal(http.ListenAndServe(\":8080\", nil))\n}\n```\n\n</figure>\n\nWe run the server to accept incoming requests:\n\n```sh\ngo run server.go\n```\n\nThen we run the Python script:\n\n```sh\npython client.py\n```\n\nwhich outputs the following:\n\n```sh\nThe count is: 1\nThe count is: 2\nThe count is: 3\nThe count is: 4\nThe count is: 5\nThe count is: 6\nThe count is: 7\nThe count is: 8\nThe count is: 9\nThe count is: 10\nTime elapsed: 0.96 seconds\n```\n\nOur server output looks something like this:\n\n```sh\nSleeping for:  120ms\nThe count is: 1\nSleeping for:  188ms\nThe count is: 2\nSleeping for:  132ms\nThe count is: 3\nSleeping for:  87ms\nThe count is: 4\nSleeping for:  84ms\nThe count is: 5\nSleeping for:  137ms\nThe count is: 6\nSleeping for:  13ms\nThe count is: 7\nSleeping for:  31ms\nThe count is: 8\nSleeping for:  19ms\nThe count is: 9\nSleeping for:  60ms\nThe count is: 10\n```\n\nThe total elapsed time is about what we would expect. Ten requests at approximately 100ms each, gives us about one second for all requests. However, our Python script spends most of its time waiting for a response from the server which is sleeping. What would happen if we kicked off all ten requests to the server at the same time? We might expect this to be a problem. After all, if Python only can make one request at a time, why should our server be able to process more than one request at a time. For this to work in Python we need to use something like [uWSGI](https://uwsgi-docs.readthedocs.io/en/latest/) or [asyncio](https://docs.python.org/3/library/asyncio.html). It turns out that Go's builtin `net/http` library [uses goroutines](https://golang.org/src/net/http/server.go?s=83696:83751#L2668) to handle multiple incoming requests at once. Let's trying making our requests in a similar manner, using goroutines to kick off all the requests at once, with the following Go code:\n\n<figure>\n<figcaption>client.go</figcaption>\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"io/ioutil\"\n    \"net/http\"\n    \"time\"\n)\n\nfunc main() {\n    start := time.Now()\n    routineCount := 10\n    // create a go routine to make the HTTP request\n    // pass a channel into which the response will be written\n    channel := make(chan string)\n    for i := 0; i < routineCount; i++ {\n        go request(channel)\n    }\n    // read the responses from the channel\n    for i := 0; i < routineCount; i++ {\n        fmt.Println(<-channel)\n    }\n    secs := time.Since(start).Seconds()\n    fmt.Printf(\"Time elapased: %.2f seconds\", secs)\n}\n\nfunc request(channel chan<- string) {\n    resp, err := http.Get(\"http://localhost:8080/inc\")\n    if err != nil {\n        fmt.Println(err)\n        return\n    }\n    defer resp.Body.Close()\n    body, _ := ioutil.ReadAll(resp.Body)\n    channel <- fmt.Sprintf(string(body))\n}\n\n```\n\n</figure>\n\nWhen we run this code against the same (restarted) server, we get the following output:\n\n```sh\n$ go run threads.go\nThe count is: 1\nThe count is: 2\nThe count is: 3\nThe count is: 4\nThe count is: 5\nThe count is: 6\nThe count is: 7\nThe count is: 8\nThe count is: 9\nThe count is: 10\nTime elapased: 0.19 seconds\n```\n\nWith goroutines, the program runs about five times faster than our ten synchronous requests in Python. Look what happens on the server side:\n\n```sh\nSleeping for:  87ms\nSleeping for:  132ms\nSleeping for:  120ms\nSleeping for:  188ms\nSleeping for:  84ms\nSleeping for:  137ms\nSleeping for:  13ms\nSleeping for:  31ms\nSleeping for:  19ms\nSleeping for:  60ms\nThe count is: 1\nThe count is: 2\nThe count is: 3\nThe count is: 4\nThe count is: 5\nThe count is: 6\nThe count is: 7\nThe count is: 8\nThe count is: 9\nThe count is: 10\n```\n\nThis time on the server side, all the sleep durations are printed first, then the counter is incremented afterwards. So what happens is the server accepts all ten requests then all threads start sleeping. As each of the threads wakes up, they start incrementing the counter respectively and returning to the client callers. The responses on the client side look about the same as they did when we made the requests in series, but this time the total time elapsed was only 0.19 seconds. This corresponds to the longest sleep time printed by the server: 188ms. So, by using goroutines, we have reduced the runtime of our program from the sum of the time of all requests to the time of just the longest request. Not bad.\n\nAnother cool part about using goroutines in this scenario is that we can scale the number of threads to accomplish even more in the same amount of time. Keep in mind, even though creating goroutines is cheap, creating too many of them to make a large number of requests against an HTTP server all at once may cause the server to run out of resources or limit the number of connections it will accept. On my machine, scaling up `routineCount` to 300 is no problem for the server. However, at around 400, some of the requests start getting lost and at 800 I start seeing the following error:\n\n```sh\nGet http://localhost:8080/inc: read tcp [::1]:59928->[::1]:8080: read: connection reset by peer\n```\n\nFrom a more detailed explanation on what happens when we make too many concurrent requests, check out this [Stack Overflow post](http://stackoverflow.com/questions/37774624/go-http-get-concurrency-and-connection-reset-by-peer)."
}

did:plc:mracrip6qu3vw46nbewg44sm | at://did:plc:mracrip6qu3vw46nbewg44sm/site.standard.document/2017-2017-04-18-go-channels

at.markpub.text (nested within site.standard.document) (50 samples)
{
  "path": "/posts/2019/2019-01-06-unix-files-with-spaces/",
  "site": "at://did:plc:mracrip6qu3vw46nbewg44sm/site.standard.publication/self",
  "$type": "site.standard.document",
  "title": "Go and UNIX files",
  "content": {
    "text": {
      "$type": "at.markpub.text",
      "rawMarkdown": "I ran into an odd UNIX filename issue while writing Go code the other day.\n\nHere's a simplified example:\n\nLet's read a JSON file and unmarshal its contents into a `struct` in go. First, let's set an environment variable with our file name to avoid hardcoded constants in our program.\n\n```sh\nexport MY_FILE=\"/Users/dancorin/Desktop/test.json \"\n```\n\nNow, let's read the file into our struct:\n\n```go\npackage main\n\nimport (\n    \"encoding/json\"\n    \"fmt\"\n    \"io/ioutil\"\n    \"os\"\n)\n\n// Stuff struct holds the json contents\ntype Stuff struct {\n    Test string `json:\"test\"`\n}\n\nfunc main() {\n    stuff := Stuff{}\n    place := os.Getenv(\"MY_FILE\")\n    data, err := ioutil.ReadFile(place)\n    if err != nil {\n        panic(err)\n    }\n    json.Unmarshal(data, &stuff)\n    fmt.Printf(\"%+v\\n\", stuff)\n}\n```\n\n```sh\n❯ go run program.go\npanic: open /Users/dancorin/Desktop/test.json : no such file or directory\n\ngoroutine 1 [running]:\nmain.main()\n    /Users/dancorin/Desktop/program.go:20 +0x156\nexit status 2\n```\n\nLooks like Go couldn't find my file.\n\n```sh\n❯ pwd\n/Users/dancorin/Desktop\n❯ ls test*\ntest.json\n```\n\nThe file definitely exists. What about its permissions?\n\n```sh\n❯ ls -ltrah test*\n-rw-r--r--  1 dancorin  staff    18B May  9 15:56 test.json\n```\n\nLooks like the file is readable by my program too. So, what is happening?\n\n```sh\n❯ cat test.json\n{\"test\": \"stuff\"}\n```\n\nI can see the file contents too.\n\n```sh\n❯ cat /Users/dancorin/Desktop/test.json\n{\"test\": \"stuff\"}\n```\n\nI am using the proper path. Let's check that Go is trying to read the correct file path.\n\n```go\npackage main\n\nimport (\n    \"encoding/json\"\n    \"fmt\"\n    \"io/ioutil\"\n    \"os\"\n)\n\n// Stuff struct holds the JSON contents\ntype Stuff struct {\n    Test string `json:\"test\"`\n}\n\nfunc main() {\n    stuff := Stuff{}\n    place := os.Getenv(\"MY_FILE\")\n    fmt.Printf(\"PLACE: %s\\n\", place)\n    data, err := ioutil.ReadFile(place)\n    if err != nil {\n        panic(err)\n    }\n    json.Unmarshal(data, &stuff)\n    fmt.Printf(\"%+v\\n\", stuff)\n}\n```\n\nRunning the code:\n\n```sh\n❯ go run program.go\nPLACE: /Users/dancorin/Desktop/test.json\npanic: open /Users/dancorin/Desktop/test.json : no such file or directory\n\ngoroutine 1 [running]:\nmain.main()\n    /Users/dancorin/Desktop/program.go:21 +0x202\nexit status 2\n```\n\nThe value of the environment variable seems to be correct.\n\nLet's see if we can find any weird characters hiding in the string:\n\n```go\npackage main\n\nimport (\n    \"encoding/json\"\n    \"fmt\"\n    \"io/ioutil\"\n    \"os\"\n)\n\n// Stuff struct holds the JSON contents\ntype Stuff struct {\n    Test string `json:\"test\"`\n}\n\nfunc main() {\n    stuff := Stuff{}\n    place := os.Getenv(\"MY_FILE\")\n    fmt.Printf(\">%s<\\n\", place)\n    data, err := ioutil.ReadFile(place)\n    if err != nil {\n        panic(err)\n    }\n    json.Unmarshal(data, &stuff)\n    fmt.Printf(\"%+v\\n\", stuff)\n}\n```\n\n```sh\n❯ go run program.go\n>/Users/dancorin/Desktop/test.json <\npanic: open /Users/dancorin/Desktop/test.json : no such file or directory\n\ngoroutine 1 [running]:\nmain.main()\n    /Users/dancorin/Desktop/program.go:21 +0x202\nexit status 2\n```\n\nIt looks like there is an unexpected space showing up in ` >/Users/dancorin/Desktop/test.json <`. Where is this coming from?\n\nWhen we set our environment variable, it seems like we accidentally added a trailing space.\n\n```sh\nexport MY_FILE=\"/Users/dancorin/Desktop/test.json \"\n```\n\nGo is trying to tell us this:\n\n```sh\npanic: open /Users/dancorin/Desktop/test.json : no such file or directory\n```\n\nIt's just not _that_ obvious that there is a space in there. Something like the following could have helped:\n\n```sh\npanic: open \"/Users/dancorin/Desktop/test.json \": no such file or directory\n```\n\nUNIX makes this issue a little more confusing because it has no problem allowing you to create filenames with trailing spaces. We can resolve our issue by running\n\n```sh\n❯ cp test.json \"test.json \"\n\n❯ go run program.go\n>/Users/dancorin/Desktop/test.json <\n{Test:stuff}\n```\n\nOr, better yet, we can fix our `export` command:\n\n```sh\nexport MY_FILE=\"/Users/dancorin/Desktop/test.json\"\n```\n\nI hope you never run into this one!"
    },
    "$type": "at.markpub.markdown",
    "flavor": "commonmark"
  },
  "updatedAt": "2019-01-06T00:00:00.000Z",
  "publishedAt": "2019-01-06T00:00:00.000Z",
  "textContent": "I ran into an odd UNIX filename issue while writing Go code the other day.\n\nHere's a simplified example:\n\nLet's read a JSON file and unmarshal its contents into a `struct` in go. First, let's set an environment variable with our file name to avoid hardcoded constants in our program.\n\n```sh\nexport MY_FILE=\"/Users/dancorin/Desktop/test.json \"\n```\n\nNow, let's read the file into our struct:\n\n```go\npackage main\n\nimport (\n    \"encoding/json\"\n    \"fmt\"\n    \"io/ioutil\"\n    \"os\"\n)\n\n// Stuff struct holds the json contents\ntype Stuff struct {\n    Test string `json:\"test\"`\n}\n\nfunc main() {\n    stuff := Stuff{}\n    place := os.Getenv(\"MY_FILE\")\n    data, err := ioutil.ReadFile(place)\n    if err != nil {\n        panic(err)\n    }\n    json.Unmarshal(data, &stuff)\n    fmt.Printf(\"%+v\\n\", stuff)\n}\n```\n\n```sh\n❯ go run program.go\npanic: open /Users/dancorin/Desktop/test.json : no such file or directory\n\ngoroutine 1 [running]:\nmain.main()\n    /Users/dancorin/Desktop/program.go:20 +0x156\nexit status 2\n```\n\nLooks like Go couldn't find my file.\n\n```sh\n❯ pwd\n/Users/dancorin/Desktop\n❯ ls test*\ntest.json\n```\n\nThe file definitely exists. What about its permissions?\n\n```sh\n❯ ls -ltrah test*\n-rw-r--r--  1 dancorin  staff    18B May  9 15:56 test.json\n```\n\nLooks like the file is readable by my program too. So, what is happening?\n\n```sh\n❯ cat test.json\n{\"test\": \"stuff\"}\n```\n\nI can see the file contents too.\n\n```sh\n❯ cat /Users/dancorin/Desktop/test.json\n{\"test\": \"stuff\"}\n```\n\nI am using the proper path. Let's check that Go is trying to read the correct file path.\n\n```go\npackage main\n\nimport (\n    \"encoding/json\"\n    \"fmt\"\n    \"io/ioutil\"\n    \"os\"\n)\n\n// Stuff struct holds the JSON contents\ntype Stuff struct {\n    Test string `json:\"test\"`\n}\n\nfunc main() {\n    stuff := Stuff{}\n    place := os.Getenv(\"MY_FILE\")\n    fmt.Printf(\"PLACE: %s\\n\", place)\n    data, err := ioutil.ReadFile(place)\n    if err != nil {\n        panic(err)\n    }\n    json.Unmarshal(data, &stuff)\n    fmt.Printf(\"%+v\\n\", stuff)\n}\n```\n\nRunning the code:\n\n```sh\n❯ go run program.go\nPLACE: /Users/dancorin/Desktop/test.json\npanic: open /Users/dancorin/Desktop/test.json : no such file or directory\n\ngoroutine 1 [running]:\nmain.main()\n    /Users/dancorin/Desktop/program.go:21 +0x202\nexit status 2\n```\n\nThe value of the environment variable seems to be correct.\n\nLet's see if we can find any weird characters hiding in the string:\n\n```go\npackage main\n\nimport (\n    \"encoding/json\"\n    \"fmt\"\n    \"io/ioutil\"\n    \"os\"\n)\n\n// Stuff struct holds the JSON contents\ntype Stuff struct {\n    Test string `json:\"test\"`\n}\n\nfunc main() {\n    stuff := Stuff{}\n    place := os.Getenv(\"MY_FILE\")\n    fmt.Printf(\">%s<\\n\", place)\n    data, err := ioutil.ReadFile(place)\n    if err != nil {\n        panic(err)\n    }\n    json.Unmarshal(data, &stuff)\n    fmt.Printf(\"%+v\\n\", stuff)\n}\n```\n\n```sh\n❯ go run program.go\n>/Users/dancorin/Desktop/test.json <\npanic: open /Users/dancorin/Desktop/test.json : no such file or directory\n\ngoroutine 1 [running]:\nmain.main()\n    /Users/dancorin/Desktop/program.go:21 +0x202\nexit status 2\n```\n\nIt looks like there is an unexpected space showing up in ` >/Users/dancorin/Desktop/test.json <`. Where is this coming from?\n\nWhen we set our environment variable, it seems like we accidentally added a trailing space.\n\n```sh\nexport MY_FILE=\"/Users/dancorin/Desktop/test.json \"\n```\n\nGo is trying to tell us this:\n\n```sh\npanic: open /Users/dancorin/Desktop/test.json : no such file or directory\n```\n\nIt's just not _that_ obvious that there is a space in there. Something like the following could have helped:\n\n```sh\npanic: open \"/Users/dancorin/Desktop/test.json \": no such file or directory\n```\n\nUNIX makes this issue a little more confusing because it has no problem allowing you to create filenames with trailing spaces. We can resolve our issue by running\n\n```sh\n❯ cp test.json \"test.json \"\n\n❯ go run program.go\n>/Users/dancorin/Desktop/test.json <\n{Test:stuff}\n```\n\nOr, better yet, we can fix our `export` command:\n\n```sh\nexport MY_FILE=\"/Users/dancorin/Desktop/test.json\"\n```\n\nI hope you never run into this one!"
}

did:plc:mracrip6qu3vw46nbewg44sm | at://did:plc:mracrip6qu3vw46nbewg44sm/site.standard.document/2019-2019-01-06-unix-files-with-spaces

at.unthread.content (nested within site.standard.document) (1 sample)
{
  "path": "/@psingletary.com/3mhilxr2vxb23",
  "site": "https://unthread.at",
  "$type": "site.standard.document",
  "title": "Continue reading on Unthread",
  "content": {
    "$type": "at.unthread.content",
    "content": "feeling *melancholy*\nthis week has been a super hard hit in friends department\nmaybe I just had too many expectations\nyes im gonna talk to a therapist\n\nbut therapists aren't the same thing as talking to a friend\nand I just feel these days that i keep trying to invest in irl friendships, but it's hard when adults have so much of their time occupied with adulting, the barrier to making new friends just seems so high. it's demoralizing\n\nbut I know I have to keep trying because not being a friend / having a friend is not a future I can manage"
  },
  "createdAt": "2026-03-21T09:28:21.953Z",
  "bskyPostRef": {
    "cid": "bafyreibfyjaadrqzsem77wtdiujizj7tputxuyypjkom4t2idcnmvkg5pq",
    "uri": "at://did:plc:stznz7qsokto2345qtdzogjb/app.bsky.feed.post/3mhkpq5tnow2o",
    "$type": "com.atproto.repo.strongRef"
  },
  "publishedAt": "2026-03-21T09:28:21.953Z",
  "textContent": "feeling melancholy\nthis week has been a super hard hit in friends department\nmaybe I just had too many expectations\nyes im gonna talk to a therapist\n\nbut therapists aren't the same thing as talking to a friend\nand I just feel these days that i keep trying to invest in irl friendships, but it's hard when adults have so much of their time occupied with adulting, the barrier to making new friends just seems so high. it's demoralizing\n\nbut I know I have to keep trying because not being a friend / having a friend is not a future I can manage"
}

did:plc:stznz7qsokto2345qtdzogjb | at://did:plc:stznz7qsokto2345qtdzogjb/site.standard.document/3mhilxr2vxb23

blog.pckt.block.blockquote (nested within site.standard.document) (5 samples)
{
  "path": "/okie-so-this-is-a-try-86g6nwy",
  "site": "at://did:plc:nbgogx4yfdee67wggg7hk2q3/site.standard.publication/3mfu4xqn677p5",
  "tags": [],
  "$type": "site.standard.document",
  "title": "Okie, so this is a try",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Level 2 heading"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Okie, so basic functionality."
      },
      {
        "$type": "blog.pckt.block.blockquote",
        "content": [
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "... quotes like like this, ok"
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": ""
      }
    ]
  },
  "updatedAt": "2026-02-27T16:30:46+00:00",
  "description": "Okie, so basic functionality.",
  "publishedAt": "2026-02-27T16:29:10+00:00",
  "textContent": "Level 2 heading\nOkie, so basic functionality.\n... quotes like like this, ok"
}

did:plc:nbgogx4yfdee67wggg7hk2q3 | at://did:plc:nbgogx4yfdee67wggg7hk2q3/site.standard.document/3mfu4yeq43bjd

blog.pckt.block.blueskyEmbed (nested within site.standard.document) (1 sample)
{
  "path": "/undecided-b8nqcy2",
  "site": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.publication/3m5k77w2ne24u",
  "tags": [
    "Pinned",
    "Testing"
  ],
  "$type": "site.standard.document",
  "title": "Undecided...",
  "labels": {
    "$type": "com.atproto.label.defs#selfLabels",
    "values": [
      {
        "val": "sexual"
      }
    ]
  },
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here..."
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Experimenting with Blocks"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 13,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "BlueSky Embed"
      },
      {
        "$type": "blog.pckt.block.blueskyEmbed",
        "postRef": {
          "cid": "bafyreihzzjgmxenygfjbql7dwmvhxboqwgzhqctk5ejqydcbbb6vyptt3i",
          "uri": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/app.bsky.feed.post/3meka7lajvs2d"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Quote"
      },
      {
        "$type": "blog.pckt.block.blockquote",
        "content": [
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "Sharing my sexuality - it's just what I do!"
          },
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "- Valerie Rayne"
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 7,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Gallery"
      },
      {
        "ref": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/blog.pckt.gallery/3mfb7vx6cpeix",
        "$type": "blog.pckt.block.gallery"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 36,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Unordered Lists (aka My Other Blogs)"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 55,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Writes - https://valerierayne.leaflet.pub"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 24,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 68,
                      "byteStart": 27
                    },
                    "features": [
                      {
                        "uri": "https://eroticabyvalerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Erotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub "
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 62,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerieraynesmokes.worpress.com",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Smokes - https://valerieraynesmokes.worpress.com"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 12,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Single Image"
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "1000021773.png",
          "src": "blob:bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy",
          "blob": {
            "ref": {
              "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
            },
            "size": 158494,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 9,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Task List"
      },
      {
        "$type": "blog.pckt.block.taskList",
        "content": [
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": true,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Experiment with blocks on pckt"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Decide what this blog is going to be..."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Write the first real post"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Tell people about this new blogging platform..."
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Table"
      },
      {
        "$type": "blog.pckt.block.table",
        "content": [
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "BlueSky"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "LoyalFans"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "Fansly"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://bsky.app/profile/valerierayne13.bsky.social",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn.bsky.app/img/banner/plain/did:plc:pxxvg3q7gbzlbsdxbx6353wh/bafkreiatfbi2xgwfeq64k3vc4axncmxpscbgpetawesnladuzlpyopjwey@jpeg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://loyalfans.com/ValerieRayne",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn-static.loyalfans.com/loyalfans.jpg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://fansly.com/ValerieRayne13",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://fansly.com/assets/images/twitter-card-image.png"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "So now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 47,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "P.S. This post will be deleted once I decide..."
      }
    ]
  },
  "updatedAt": "2026-02-20T04:30:24+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
    },
    "size": 158494,
    "$type": "blob",
    "mimeType": "image/webp"
  },
  "description": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛 I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from...",
  "publishedAt": "2026-02-20T03:58:24+00:00",
  "textContent": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛\nI've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here...\nExperimenting with Blocks\nBlueSky Embed\nQuote\nSharing my sexuality - it's just what I do!- Valerie Rayne\nGallery\nUnordered Lists (aka My Other Blogs)\nValerie Rayne Writes - https://valerierayne.leaflet.pub\nErotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub \nValerie Rayne Smokes - https://valerieraynesmokes.worpress.com\nSingle Image\nTask List\nExperiment with blocks on pckt\nDecide what this blog is going to be...\nWrite the first real post\nTell people about this new blogging platform...\nTable\nBlueSkyLoyalFansFansly\nSo now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?\nP.S. This post will be deleted once I decide..."
}

did:plc:pxxvg3q7gbzlbsdxbx6353wh | at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.document/3mfb7rghi22ma

blog.pckt.block.bulletList (nested within site.standard.document) (7 samples)
{
  "path": "/fighting-back-against-techno-capitalist-authoritarianism-emzg48c",
  "site": "at://did:plc:na53or42uytb4al3p4g6dw7p/site.standard.publication/3md6q74rfm22c",
  "tags": [
    "privacy",
    "democracy"
  ],
  "$type": "site.standard.document",
  "title": "Fighting back against techno-capitalist-authoritarianism",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Lately I feel like the world's slow burn has been set to broil. Things are not good. And often times, I feel kind of hopeless, like we are going to have no choice but to succumb to authoritarianism and our new tech overlords. Sometimes it feels utterly impossible to do anything to shift the tide of doom."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "And that's the point. The people in control want us to feel hopeless, they want us to feel a sense of existential nihilism so that we don't fight back because we think it's useless to do so."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 93,
              "byteStart": 26
            },
            "features": [
              {
                "uri": "https://www.brookings.edu/articles/measuring-us-workers-capacity-to-adapt-to-ai-driven-job-displacement/",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Combine all this with the growing fear that Ai could potentially replace a whole host of jobs, and it is hard not to be pessimistic."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 71,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Which has had me asking - is there anything we can we do to fight back?"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Turns out, there are."
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "We the people are what make capitalism work, and that means we DO have some power"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Just 10 people in the world (0.00000121% of the world's population) control 1.2% ($1.5 trillion in wealth) of the global GDP."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 68,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "That's right - 10 people control 1.2% of the ENTIRE WORLD'S GDP 🌎"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "With a current world population of about 8,270,000,000, that means there's about 8,269,999,990 who can do something. Those odds should be good."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Those 10 people and the approximately 3,000 billionaires (0.000036% of the world population) in their orbit are only insanely wealthy because we have made them wealthy. We have the power to make them wealthy and we have the power to take a bite out of their fortune if we care to do so."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "🗳 Obviously, there is voting. Very important."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "💸 But there is also how we spend our money."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 44,
              "byteStart": 21
            },
            "features": [
              {
                "uri": "https://podcasts.voxmedia.com/show/pivot",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "I was listening to a recent episode of Pivot (my favorite podcast) in which Scott Galloway argued that in a capitalist society and world, how we spend our money is just as important as voting and protesting. And I 100% agree with him. And I'd take this a step further and say it's not just our money, but also our data, because for most of the people who control the world's wealth, their wealth is built on our data that we have freely given up."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "This leads to two very actionable things we can do."
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Resist and Unsubscribe"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 83,
              "byteStart": 50
            },
            "features": [
              {
                "uri": "https://www.resistandunsubscribe.com/",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Galloway introduced a very important effort - the \"Resist and Unsubscribe\" campaign. His approach here is brilliant - target the companies doing the most damage, and cancel subscriptions where you can, and then get others to do the same. You don't even need to stop using the services, just don't pay for the subscription level services because that is what companies pay attention to. And you don't have to do everything, just pick a couple that are less important to you personally and cancel them. Use the free version of ChatGPT, use Amazon without Prime. Whatever, just cancel those subscriptions."
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Data Strikes"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 35,
              "byteStart": 23
            },
            "features": [
              {
                "uri": "https://blog.datadividendproject.com/data-strikes/",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 386,
              "byteStart": 304
            },
            "features": [
              {
                "uri": "https://publish.obsidian.md/datastrike/Data+Strike+Information+Package/Action+Guide/Data+Strike+and+Digital+Surveillance+Breakdown",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 454,
              "byteStart": 392
            },
            "features": [
              {
                "uri": "https://publish.obsidian.md/datastrike/Data+Strike+Information+Package/Action+Guide/Data+Strike+Quick+Checklist/Data+Strike+Checklist",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Going even further are Data Strikes, another great form of resistance. Similar to Galloway's Resist and Unsubscribe campaign, this effort focuses on striking where you can. Many of these companies are doing what they are doing because we are giving them the data to do it. We can turn off that firehose. This person wrote a fantastic post and checklist on how to engage in a Data Strike, and they put together an awesome checklist to help you get started. Can I do all these things? Nope. But I can start doing a few, and then maybe a few more after that."
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Collectively this can work"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Both of these efforts - Resist and Unsubscribe and Data Strikes - are not \"all or nothing.\" They are about making small changes where you can, a couple of subscriptions here, a couple of services there. Chip away, encourage others to do the same. The ripple starts amounting to waves, and before you know it, a tsunami."
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "So what have I done so far?"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I am not going to lie, this was hard for me to wrap my head around. I have been a HUGE Amazon customer over the years and subscribe to a lot of services, including Ai services. But thinking about all this forced me to reevaluate exactly what I actually needed, and what I could live without."
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 22,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Canceled Amazon Prime. YUP. Never thought I would do that, but I did. I will still probably use Amazon, but not with Prime. I can wait for things to arrive, and I can also check out other retailers that have reasonable shipping. I still get free shipping with orders over $35 so our household decided we would try that instead of having things sent to our doorstep overnight."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Canceled Google One. I don't need Gemini Pro, and I have moved most of my photo storage off Google Photos at this point. I backed up my emails and reduced anything I have in Google storage so that I can use the free tier."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 23,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Switched to DuckDuckGo. I am already using Perplexity and Claude more these days for basic searches, and I really don't want to give Google more data than I have to."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 26,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 397,
                      "byteStart": 390
                    },
                    "features": [
                      {
                        "uri": "https://adguard.com/en/welcome.html",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 445,
                      "byteStart": 439
                    },
                    "features": [
                      {
                        "uri": "https://apps.apple.com/us/app/sink-it-for-reddit/id6449873635",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Deleted the Instagram app. I don't use Instagram a ton, mostly to keep up with friends. So when I do need/want to use it, I am just accessing it via my web browser on either my phone or desktop. I have an ad blocker and some other things on my devices that make it less data-harvesty when going through my browser. I do this also with Facebook and Reddit when I need to access those sites. AdGuard is a great ad blocker and I also use the SinkIt to block ads on Reddit."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Canceled Paramount+. We weren't using that much; honestly I kind of forgot we had a subscription."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 17,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Canceled ChatGPT. Again, I almost exclusively use Claude and Perplexity now anyway so this wasn't a huge deal. I can use the free version if I need it."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 25,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Looking into Proton Mail. This switch will be hard because we have so much tied to our Gmail accounts, but I am starting to seriously explore how to go about doing this."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 23,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Purchasing another VPN. I've been using NordVPN, but my subscription ends this month and Surfshark and Mullvad seem like better options. (Update: I picked Surfshark.)"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "None of these decisions are going to affect my life much. Just about all save me money. And maybe, just maybe, these actions, combined with other people doing these things, will have some effect."
      }
    ]
  },
  "updatedAt": "2026-03-20T17:29:22+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreif3hvcbkdgaqjxbkt4ca5sbcfvvlgepr5oflqkr74wergtf3vvvjm"
    },
    "size": 52243,
    "$type": "blob",
    "mimeType": "image/png"
  },
  "description": "Lately I feel like the world's slow burn has been set to broil. Things are not good. And often times, I feel kind of hopeless, like we are going to have no choice but to succumb to authoritarianism and our new tech overlords. Sometimes it feels utterly impossible to do anything to shift the tide of doom. And that's the point. The people in control want us to feel hopeless, they want us to feel a sense of existential nihilism so that we don't fight back because we think it's useless to do so. Com...",
  "publishedAt": "2026-03-19T23:07:34+00:00",
  "textContent": "Lately I feel like the world's slow burn has been set to broil. Things are not good. And often times, I feel kind of hopeless, like we are going to have no choice but to succumb to authoritarianism and our new tech overlords. Sometimes it feels utterly impossible to do anything to shift the tide of doom.\nAnd that's the point. The people in control want us to feel hopeless, they want us to feel a sense of existential nihilism so that we don't fight back because we think it's useless to do so.\nCombine all this with the growing fear that Ai could potentially replace a whole host of jobs, and it is hard not to be pessimistic.\nWhich has had me asking - is there anything we can we do to fight back?\nTurns out, there are.\nWe the people are what make capitalism work, and that means we DO have some power\nJust 10 people in the world (0.00000121% of the world's population) control 1.2% ($1.5 trillion in wealth) of the global GDP.\nThat's right - 10 people control 1.2% of the ENTIRE WORLD'S GDP 🌎\nWith a current world population of about 8,270,000,000, that means there's about 8,269,999,990 who can do something. Those odds should be good.\nThose 10 people and the approximately 3,000 billionaires (0.000036% of the world population) in their orbit are only insanely wealthy because we have made them wealthy. We have the power to make them wealthy and we have the power to take a bite out of their fortune if we care to do so.\n🗳 Obviously, there is voting. Very important.\n💸 But there is also how we spend our money.\nI was listening to a recent episode of Pivot (my favorite podcast) in which Scott Galloway argued that in a capitalist society and world, how we spend our money is just as important as voting and protesting. And I 100% agree with him. And I'd take this a step further and say it's not just our money, but also our data, because for most of the people who control the world's wealth, their wealth is built on our data that we have freely given up.\nThis leads to two very actionable things we can do.\nResist and Unsubscribe\nGalloway introduced a very important effort - the \"Resist and Unsubscribe\" campaign. His approach here is brilliant - target the companies doing the most damage, and cancel subscriptions where you can, and then get others to do the same. You don't even need to stop using the services, just don't pay for the subscription level services because that is what companies pay attention to. And you don't have to do everything, just pick a couple that are less important to you personally and cancel them. Use the free version of ChatGPT, use Amazon without Prime. Whatever, just cancel those subscriptions.\nData Strikes\nGoing even further are Data Strikes, another great form of resistance. Similar to Galloway's Resist and Unsubscribe campaign, this effort focuses on striking where you can. Many of these companies are doing what they are doing because we are giving them the data to do it. We can turn off that firehose. This person wrote a fantastic post and checklist on how to engage in a Data Strike, and they put together an awesome checklist to help you get started. Can I do all these things? Nope. But I can start doing a few, and then maybe a few more after that.\nCollectively this can work\nBoth of these efforts - Resist and Unsubscribe and Data Strikes - are not \"all or nothing.\" They are about making small changes where you can, a couple of subscriptions here, a couple of services there. Chip away, encourage others to do the same. The ripple starts amounting to waves, and before you know it, a tsunami.\nSo what have I done so far?\nI am not going to lie, this was hard for me to wrap my head around. I have been a HUGE Amazon customer over the years and subscribe to a lot of services, including Ai services. But thinking about all this forced me to reevaluate exactly what I actually needed, and what I could live without.\nCanceled Amazon Prime. YUP. Never thought I would do that, but I did. I will still probably use Amazon, but not with Prime. I can wait for things to arrive, and I can also check out other retailers that have reasonable shipping. I still get free shipping with orders over $35 so our household decided we would try that instead of having things sent to our doorstep overnight.\nCanceled Google One. I don't need Gemini Pro, and I have moved most of my photo storage off Google Photos at this point. I backed up my emails and reduced anything I have in Google storage so that I can use the free tier.\nSwitched to DuckDuckGo. I am already using Perplexity and Claude more these days for basic searches, and I really don't want to give Google more data than I have to.\nDeleted the Instagram app. I don't use Instagram a ton, mostly to keep up with friends. So when I do need/want to use it, I am just accessing it via my web browser on either my phone or desktop. I have an ad blocker and some other things on my devices that make it less data-harvesty when going through my browser. I do this also with Facebook and Reddit when I need to access those sites. AdGuard is a great ad blocker and I also use the SinkIt to block ads on Reddit.\nCanceled Paramount+. We weren't using that much; honestly I kind of forgot we had a subscription.\nCanceled ChatGPT. Again, I almost exclusively use Claude and Perplexity now anyway so this wasn't a huge deal. I can use the free version if I need it.\nLooking into Proton Mail. This switch will be hard because we have so much tied to our Gmail accounts, but I am starting to seriously explore how to go about doing this.\nPurchasing another VPN. I've been using NordVPN, but my subscription ends this month and Surfshark and Mullvad seem like better options. (Update: I picked Surfshark.)\nNone of these decisions are going to affect my life much. Just about all save me money. And maybe, just maybe, these actions, combined with other people doing these things, will have some effect."
}

did:plc:na53or42uytb4al3p4g6dw7p | at://did:plc:na53or42uytb4al3p4g6dw7p/site.standard.document/3mhh4l67l42q2

blog.pckt.block.codeBlock (nested within site.standard.document) (3 samples)
{
  "path": "/the-powershell-wiggum-loop-stez852",
  "site": "at://did:plc:hlchta7bwmobyum375ltycg5/site.standard.publication/3mdfcro5xe273",
  "tags": [
    "PowerShell",
    "Intro"
  ],
  "$type": "site.standard.document",
  "title": "The PowerShell Wiggum Loop",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 86,
              "byteStart": 78
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "One of the best things about PowerShell is that you can interactively explore anything.  Long before the Wiggum Loop was a thing, PowerShell let you explore interactively with prompting.  Here's how you can embody the spirit of Ralph Wiggum and find your way around PowerShell."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "All parts of the PowerShell Wiggum Loop are as old as PowerShell itself."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "To be fair, the Simpsons did it first (1989)."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "PowerShell did it second (2006)."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Generative AI came a lot later (~2020)"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "We used to call this many things that didn't imply you were an idiot.  I'm calling this the \"PowerShell Wiggum Loop\" now only to make it easier to understand."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "We used to call it:"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "The Trinity of Discoverability"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Three commands help you find your way around PowerShell."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "They are:"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Get-Command"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Get-Help"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Get-Member"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 4,
        "plaintext": "Get-Command"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "PowerShell commands tend to be named with verb-noun pairs.  Most people try to be as obvious as possible."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "With that in mind, getting commands is pretty obviously named.  To Get commands in PowerShell, you just run:"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Command"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "We can get the syntax for a command with -Syntax"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Command Get-Command -Syntax\n"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "We can find all commands from a module with -Module."
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Command -Module Microsoft.*"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "We can also get all commands of a -Verb.  Let's get all the gets:"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Command -Verb Get"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "We can also look for nouns.  Let's get all the -Module commands:"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Command -Noun Module"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "And of course, we just search by wildcard:"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Command Get*"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Any non-script file is considered an Application.  To see if ffmpeg is installed and in our path, we can use:"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Command ffmpeg* -CommandType Application"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 3,
        "plaintext": "Get-Help"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Continuing the obvious naming pattern, to get help we can:"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Help"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "There are two types of help built into PowerShell:  commands and topics."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Most topics are prefixed with about_.  To see all of these \"about\" topics, we run:"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Help about_*"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Now let's get help about Get-Help"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Help Get-Help"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 58,
              "byteStart": 52
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "All commands should have help (it may not always be great help, but some help is better than none)."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "We can always work with help consistently.  For example, if we wanted to get examples for Get-Help, it's just:"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Help Get-Help -Examples"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "If we wanted to see all of the parameter help, it's:"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Help Get-Help -Parameter *"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 3,
        "plaintext": "Get-Member"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Last but not least, let's talk about objects."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "PowerShell has a very flexible base object.  You can dynamically add properties or methods to anything, or use any .NET class and enjoy all the functionality it has to offer."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "The methods, properties, and events that make up an object are called it's \"members\"."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "So if we want to see the members of a bunch of objects, just pipe them to Get-Member:"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": ""
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "Get-Command | Get-Member"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "This shows us each method, property, and event available on each type of command object."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": ""
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "{\"hello world\"} | Get-Member"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": ""
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": {
          "language": "powershell"
        },
        "plaintext": "{\"hello world\"}.Ast | Get-Member"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": ""
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 3,
        "plaintext": "Conclusion"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Long before the \"Wiggum Loop\" existed for AI, PowerShell has had it's own ways to simply FAFO with any object.  Exploration is a key part of the language."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 133,
              "byteStart": 114
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "You may be much smarter than Ralph Wiggum, but you don't have to be a genius to find your way around PowerShell.  Anyone can explore."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 9,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Have Fun!"
      }
    ]
  },
  "updatedAt": "2026-02-22T00:31:50+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreidm4kk2ofgor7ausmmtfug4j64ufo66wjqvb4sx37x6busrm7w3eu"
    },
    "size": 314876,
    "$type": "blob",
    "mimeType": "image/gif"
  },
  "description": "One of the best things about PowerShell is that you can interactively explore anything. Long before the Wiggum Loop was a thing, PowerShell let you explore interactively with prompting. Here's how you can embody the spirit of Ralph Wiggum and find your way around PowerShell. All parts of the PowerShell Wiggum Loop are as old as PowerShell itself. To be fair, the Simpsons did it first (1989).",
  "publishedAt": "2026-02-01T21:15:50+00:00",
  "textContent": "One of the best things about PowerShell is that you can interactively explore anything.  Long before the Wiggum Loop was a thing, PowerShell let you explore interactively with prompting.  Here's how you can embody the spirit of Ralph Wiggum and find your way around PowerShell.\nAll parts of the PowerShell Wiggum Loop are as old as PowerShell itself.\nTo be fair, the Simpsons did it first (1989).\nPowerShell did it second (2006).\nGenerative AI came a lot later (~2020)\nWe used to call this many things that didn't imply you were an idiot.  I'm calling this the \"PowerShell Wiggum Loop\" now only to make it easier to understand.\nWe used to call it:\nThe Trinity of Discoverability\nThree commands help you find your way around PowerShell.\nThey are:\nGet-Command\nGet-Help\nGet-Member\nGet-Command\nPowerShell commands tend to be named with verb-noun pairs.  Most people try to be as obvious as possible.\nWith that in mind, getting commands is pretty obviously named.  To Get commands in PowerShell, you just run:\nGet-Command\nWe can get the syntax for a command with -Syntax\nGet-Command Get-Command -Syntax\n\nWe can find all commands from a module with -Module.\nGet-Command -Module Microsoft.*\nWe can also get all commands of a -Verb.  Let's get all the gets:\nGet-Command -Verb Get\nWe can also look for nouns.  Let's get all the -Module commands:\nGet-Command -Noun Module\nAnd of course, we just search by wildcard:\nGet-Command Get*\nAny non-script file is considered an Application.  To see if ffmpeg is installed and in our path, we can use:\nGet-Command ffmpeg* -CommandType Application\nGet-Help\nContinuing the obvious naming pattern, to get help we can:\nGet-Help\nThere are two types of help built into PowerShell:  commands and topics.\nMost topics are prefixed with about_.  To see all of these \"about\" topics, we run:\nGet-Help about_*\nNow let's get help about Get-Help\nGet-Help Get-Help\nAll commands should have help (it may not always be great help, but some help is better than none).\nWe can always work with help consistently.  For example, if we wanted to get examples for Get-Help, it's just:\nGet-Help Get-Help -Examples\nIf we wanted to see all of the parameter help, it's:\nGet-Help Get-Help -Parameter *\nGet-Member\nLast but not least, let's talk about objects.\nPowerShell has a very flexible base object.  You can dynamically add properties or methods to anything, or use any .NET class and enjoy all the functionality it has to offer.\nThe methods, properties, and events that make up an object are called it's \"members\".\nSo if we want to see the members of a bunch of objects, just pipe them to Get-Member:\nGet-Command | Get-Member\nThis shows us each method, property, and event available on each type of command object.\n{\"hello world\"} | Get-Member\n{\"hello world\"}.Ast | Get-Member\nConclusion\nLong before the \"Wiggum Loop\" existed for AI, PowerShell has had it's own ways to simply FAFO with any object.  Exploration is a key part of the language.\nYou may be much smarter than Ralph Wiggum, but you don't have to be a genius to find your way around PowerShell.  Anyone can explore.\nHave Fun!"
}

did:plc:hlchta7bwmobyum375ltycg5 | at://did:plc:hlchta7bwmobyum375ltycg5/site.standard.document/3mdtauz4fg2lb

blog.pckt.block.gallery (nested within site.standard.document) (3 samples)
{
  "path": "/acadia-national-park-zbehdj6",
  "site": "at://did:plc:na53or42uytb4al3p4g6dw7p/site.standard.publication/3md6q74rfm22c",
  "tags": [
    "travel",
    "national parks"
  ],
  "$type": "site.standard.document",
  "title": "Acadia National Park",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "image.jpeg",
          "src": "blob:bafkreif3lsgvoyhd3mgbjfcrlgwr2jgamf53aqg575o7tvff4td4ol5pgm",
          "blob": {
            "ref": {
              "$link": "bafkreif3lsgvoyhd3mgbjfcrlgwr2jgamf53aqg575o7tvff4td4ol5pgm"
            },
            "size": 356540,
            "$type": "blob",
            "mimeType": "image/jpeg"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "A few photos from an amazing trip to Acadia National Park in Maine (August 2022). This is a beautiful national park. We stayed in downtown Bar Harbor which was also fun, a great little town to explore when not in the national park. "
      },
      {
        "ref": "at://did:plc:na53or42uytb4al3p4g6dw7p/blog.pckt.gallery/3mhl34rgr2sbs",
        "$type": "blog.pckt.block.gallery"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": ""
      }
    ]
  },
  "updatedAt": "2026-03-21T16:21:21+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreif3lsgvoyhd3mgbjfcrlgwr2jgamf53aqg575o7tvff4td4ol5pgm"
    },
    "size": 356540,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "A few photos from an amazing trip to Acadia National Park in Maine (August 2022). This is a beautiful national park. We stayed in downtown Bar Harbor which was also fun, a great little town to explore when not in the national park.",
  "publishedAt": "2026-03-21T12:50:31+00:00",
  "textContent": "A few photos from an amazing trip to Acadia National Park in Maine (August 2022). This is a beautiful national park. We stayed in downtown Bar Harbor which was also fun, a great little town to explore when not in the national park."
}

did:plc:na53or42uytb4al3p4g6dw7p | at://did:plc:na53or42uytb4al3p4g6dw7p/site.standard.document/3mhl2zmvqc4iz

blog.pckt.block.hardBreak (nested within site.standard.document) (1 sample)
{
  "path": "/how-to-set-up-the-ghost-atproto-bridge-standardsite-support-z9ydj6c",
  "site": "at://did:plc:z3hwpi5wyjld2ehnjasyoe3k/site.standard.publication/3me5cmnayw2jy",
  "tags": [],
  "$type": "site.standard.document",
  "title": "How to set up the Ghost → ATProto Bridge (standard.site support)",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Hey everyone, I’m sharing a quick setup guide for the Ghost → ATProto bridge, including publishing to standard.site."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "What this does"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Connects any Ghost blog to ATProto"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Publishes posts as standard.site documents"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Optional dual‑post to Bluesky social feed"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 7,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Prereqs"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Ghost blog (Ghost(Pro) or self‑hosted)"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Ghost Admin API key"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Bluesky handle + app password"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "MySQL database"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 21,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Basic setup (backend)"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": [],
        "plaintext": "cd ghost-atproto-fullstack/backend\nnpm install\nnpx prisma migrate deploy\nnpm run dev"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 19,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Create user + login"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": [],
        "plaintext": "curl -X POST http://localhost:5001/api/auth/signup \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\":\"you@example.com\",\"password\":\"testpass123\",\"role\":\"AUTHOR\",\"name\":\"Your Name\"}'"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": [],
        "plaintext": "curl -X POST http://localhost:5001/api/auth/login \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\":\"you@example.com\",\"password\":\"testpass123\"}'"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 25,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Configure Ghost + Bluesky"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": [],
        "plaintext": "curl -X PUT http://localhost:5001/api/auth/me \\\n  -H \"Authorization: Bearer $JWT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"ghostUrl\": \"https://your-ghost-site.com\",\n    \"ghostApiKey\": \"YOUR_GHOST_ADMIN_API_KEY\",\n    \"blueskyHandle\": \"yourhandle.bsky.social\",\n    \"blueskyPassword\": \"YOUR_APP_PASSWORD\"\n  }'"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 20,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Enable standard.site"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": [],
        "plaintext": "curl -X POST http://localhost:5001/api/standard-site/enable \\\n  -H \"Authorization: Bearer $JWT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"publicationName\": \"My Blog\",\n    \"publicationDescription\": \"Testing standard.site\",\n    \"dualPost\": false\n  }'"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 14,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Sync + publish"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": [],
        "plaintext": "curl -X POST http://localhost:5001/api/ghost/sync-posts \\\n  -H \"Authorization: Bearer $JWT_TOKEN\"\n\ncurl -X POST http://localhost:5001/api/atproto/publish \\\n  -H \"Authorization: Bearer $JWT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"postId\": \"YOUR_POST_ID\",\n    \"customText\": \"New article on my Ghost blog!\"\n  }'"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 6,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Verify"
      },
      {
        "$type": "blog.pckt.block.codeBlock",
        "attrs": [],
        "plaintext": "curl http://localhost:5001/api/standard-site/status \\\n  -H \"Authorization: Bearer $JWT_TOKEN\"\n\ncurl \"http://localhost:5001/.well-known/site.standard.publication?handle=yourhandle.bsky.social\""
      },
      {
        "$type": "blog.pckt.block.text",
        "content": [
          {
            "text": "Happy to answer questions or help anyone test on a real Ghost domain.",
            "$type": "blog.pckt.block.text"
          },
          {
            "$type": "blog.pckt.block.hardBreak"
          },
          {
            "text": "Repo: ",
            "$type": "blog.pckt.block.text"
          },
          {
            "text": "https://github.com/Cooperation-org/ghost-atproto",
            "$type": "blog.pckt.block.text"
          }
        ]
      }
    ]
  },
  "updatedAt": "2026-02-05T23:04:50+00:00",
  "description": "Hey everyone, I’m sharing a quick setup guide for the Ghost → ATProto bridge, including publishing to standard.site. What this does Prereqs",
  "publishedAt": "2026-02-05T21:38:55+00:00",
  "textContent": "Hey everyone, I’m sharing a quick setup guide for the Ghost → ATProto bridge, including publishing to standard.site.\nWhat this does\nConnects any Ghost blog to ATProto\nPublishes posts as standard.site documents\nOptional dual‑post to Bluesky social feed\nPrereqs\nGhost blog (Ghost(Pro) or self‑hosted)\nGhost Admin API key\nBluesky handle + app password\nMySQL database\nBasic setup (backend)\ncd ghost-atproto-fullstack/backend\nnpm install\nnpx prisma migrate deploy\nnpm run dev\nCreate user + login\ncurl -X POST http://localhost:5001/api/auth/signup \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\":\"you@example.com\",\"password\":\"testpass123\",\"role\":\"AUTHOR\",\"name\":\"Your Name\"}'\ncurl -X POST http://localhost:5001/api/auth/login \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\":\"you@example.com\",\"password\":\"testpass123\"}'\nConfigure Ghost + Bluesky\ncurl -X PUT http://localhost:5001/api/auth/me \\\n  -H \"Authorization: Bearer $JWT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"ghostUrl\": \"https://your-ghost-site.com\",\n    \"ghostApiKey\": \"YOUR_GHOST_ADMIN_API_KEY\",\n    \"blueskyHandle\": \"yourhandle.bsky.social\",\n    \"blueskyPassword\": \"YOUR_APP_PASSWORD\"\n  }'\nEnable standard.site\ncurl -X POST http://localhost:5001/api/standard-site/enable \\\n  -H \"Authorization: Bearer $JWT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"publicationName\": \"My Blog\",\n    \"publicationDescription\": \"Testing standard.site\",\n    \"dualPost\": false\n  }'\nSync + publish\ncurl -X POST http://localhost:5001/api/ghost/sync-posts \\\n  -H \"Authorization: Bearer $JWT_TOKEN\"\n\ncurl -X POST http://localhost:5001/api/atproto/publish \\\n  -H \"Authorization: Bearer $JWT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"postId\": \"YOUR_POST_ID\",\n    \"customText\": \"New article on my Ghost blog!\"\n  }'\nVerify\ncurl http://localhost:5001/api/standard-site/status \\\n  -H \"Authorization: Bearer $JWT_TOKEN\"\n\ncurl \"http://localhost:5001/.well-known/site.standard.publication?handle=yourhandle.bsky.social\"\nHappy to answer questions or help anyone test on a real Ghost domain.Repo: https://github.com/Cooperation-org/ghost-atproto"
}

did:plc:z3hwpi5wyjld2ehnjasyoe3k | at://did:plc:z3hwpi5wyjld2ehnjasyoe3k/site.standard.document/3me5dzxsai2d2

blog.pckt.block.heading (nested within site.standard.document) (9 samples)
{
  "path": "/on-portability-and-notes-apps-9d54s7z",
  "site": "at://did:plc:na53or42uytb4al3p4g6dw7p/site.standard.publication/3md6q74rfm22c",
  "tags": [
    "notetaking",
    "obsidian",
    "markdown"
  ],
  "$type": "site.standard.document",
  "title": "On portability and notes apps",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 157,
              "byteStart": 107
            },
            "features": [
              {
                "uri": "https://www.the-executives.com/p/whats-the-secret-of-the-spoon-bending?utm_source=%2Fsearch%2FEvernote%20price%20increase&utm_medium=reader2",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 185,
              "byteStart": 175
            },
            "features": [
              {
                "uri": "https://us.macmillan.com/books/9780374619329/enshittification/",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 350,
              "byteStart": 255
            },
            "features": [
              {
                "uri": "https://evernote.com/compare-plans",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Evernote is getting a lot of flack lately and for good reason. It was recently acquired by Bending Spoons, a company that has acquired a number of other apps and proceeded to enshittify them. It appears Bending Spoons is now doing the same with Evernote. Evernote’s pricing recently jumped to $250 year (or $25/month) for their “advanced” plan."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 17,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "THAT. IS. INSANE."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 93,
              "byteStart": 89
            },
            "features": [
              {
                "uri": "https://bsky.app/profile/adamcbassett.com/post/3mcky4x25xk2r",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 99,
              "byteStart": 95
            },
            "features": [
              {
                "uri": "https://bsky.app/profile/qevium.bsky.social/post/3mbsjpjj5is2e",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 105,
              "byteStart": 101
            },
            "features": [
              {
                "uri": "https://bsky.app/profile/nikchick.bsky.social/post/3mabjjrsp6k22",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 115,
              "byteStart": 111
            },
            "features": [
              {
                "uri": "https://bsky.app/profile/drsaddison.bsky.social/post/3kskj2azx5r2w",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "And people are rightfully getting very annoyed with up Evernote (see just a few examples here, here, here, and here)."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "It has been many years since I used Evernote. I ditched the app back in 2016 and a big reason I ditched it at the time was because I was worried about my data being locked into an app. Evernote was already getting bloated and I was slowly realizing how difficult it would be to get my precious information OUT of Evernote."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "🔓 My goal from that point forward was to never have my information locked into a single app. So far, this approach has served me generally well. I have used a few different note taking apps over the years, gravitating over time to more local and direct control of my information. Markdown files is a huge part of that."
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 3,
        "plaintext": "Here’s what I’ve learned exporting and importing notes over the years across different apps"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 138,
                      "byteStart": 106
                    },
                    "features": [
                      {
                        "uri": "https://bear.app/faq/where-are-bears-notes-located/",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 199,
                      "byteStart": 140
                    },
                    "features": [
                      {
                        "uri": "https://bear.app/faq/export-your-notes/",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 319,
                      "byteStart": 306
                    },
                    "features": [
                      {
                        "uri": "https://bear.app/faq/export-your-tags/",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 391,
                      "byteStart": 345
                    },
                    "features": [
                      {
                        "uri": "https://community.bear.app/t/panda-sneak-peek-a-work-in-progress-markdown-editor-and-library/12332",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Bear Notes, the first Markdown notes app I used, has been great for exporting notes in Markdown. While it saves files in a SQLite database, exporting them into Markdown and a variety of other formats is easy to do and works great. The biggest issue is that Bear Notes doesn’t use folders, so you have to export by tag if structure is needed. (Bear devs are also working on the Panda editor), which if it ever actually comes to fruition could be a cool option for Bear Notes fans who want more local control and storage of their notes."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 8,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "uri": "https://obsidian.md/",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 19,
                      "byteStart": 13
                    },
                    "features": [
                      {
                        "uri": "https://logseq.com/",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Obsidian and Logseq are the leaders of \"local first\" file storage and the ones I recommend most for those who really want total control over their information. However, use plugins with caution. In Obsidian especially it is easy to quickly become dependent on plugins, and this means that less and less of your \"vault\" will work outside of the Obsidian environment. I generally try to avoid plugins that inject HTML into notes (like a plugin that highlights text in different colors), as this can be really messy if you ever export those notes."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 85,
                      "byteStart": 54
                    },
                    "features": [
                      {
                        "uri": "https://support.apple.com/guide/notes/import-export-and-print-notes-not201900c07/mac",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Apple Notes recently surprised me with its ability to bulk export notes into Markdown. Bulk export is only available on the Mac, but I used it recently for exporting hundreds of notes and it worked FLAWLESSLY. I was able to move the exported Markdown files into Obsidian with zero issues, attachments and links preserved."
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Developers are clearly understanding that portability with note taking apps it an important concern and something people look for when moving between apps. But promises of portability are not always as they appear."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "For example, Craft says its files are portable, but I ran into a lot of issues when I exported notes from Craft (mostly with formatting and how embedded notes were handled). This is to be expected since Craft has a very different approach to note creation, but it still made it feel like the app was trying to lock me in. When I did move notes from Craft to Obsidian, things were a mess that took a solid week to clean up."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Also, just because you use flat, locally stored Markdown files, that does not mean that apps will all be able to access those files equally. For example, I had once thought it would be great to use Obsidian and Noteplan interchangeably, but quickly realized this was impossible because Noteplan does not use the same file naming convention as Obsidian."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Portability has improved, but true portability and the ability to simply point an app to a folder of notes is still not possible. There aren’t enough standards for things like plugins and add-ons to make this possible."
      }
    ]
  },
  "updatedAt": "2026-03-20T17:29:08+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreic7sdhpuf5m7m6oa5zqasqx6sx42erc4n7d6b2uzagvwfgnzfa5ua"
    },
    "size": 52827,
    "$type": "blob",
    "mimeType": "image/png"
  },
  "description": "Evernote is getting a lot of flack lately and for good reason. It was recently acquired by Bending Spoons, a company that has acquired a number of other apps and proceeded to enshittify them. It appears Bending Spoons is now doing the same with Evernote. Evernote’s pricing recently jumped to $250 year (or $25/month) for their “advanced” plan. THAT. IS. INSANE. And people are rightfully getting very annoyed with up Evernote (see just a few examples here, here, here, and here).",
  "publishedAt": "2026-03-19T19:18:58+00:00",
  "textContent": "Evernote is getting a lot of flack lately and for good reason. It was recently acquired by Bending Spoons, a company that has acquired a number of other apps and proceeded to enshittify them. It appears Bending Spoons is now doing the same with Evernote. Evernote’s pricing recently jumped to $250 year (or $25/month) for their “advanced” plan.\nTHAT. IS. INSANE.\nAnd people are rightfully getting very annoyed with up Evernote (see just a few examples here, here, here, and here).\nIt has been many years since I used Evernote. I ditched the app back in 2016 and a big reason I ditched it at the time was because I was worried about my data being locked into an app. Evernote was already getting bloated and I was slowly realizing how difficult it would be to get my precious information OUT of Evernote.\n🔓 My goal from that point forward was to never have my information locked into a single app. So far, this approach has served me generally well. I have used a few different note taking apps over the years, gravitating over time to more local and direct control of my information. Markdown files is a huge part of that.\nHere’s what I’ve learned exporting and importing notes over the years across different apps\nBear Notes, the first Markdown notes app I used, has been great for exporting notes in Markdown. While it saves files in a SQLite database, exporting them into Markdown and a variety of other formats is easy to do and works great. The biggest issue is that Bear Notes doesn’t use folders, so you have to export by tag if structure is needed. (Bear devs are also working on the Panda editor), which if it ever actually comes to fruition could be a cool option for Bear Notes fans who want more local control and storage of their notes.\nObsidian and Logseq are the leaders of \"local first\" file storage and the ones I recommend most for those who really want total control over their information. However, use plugins with caution. In Obsidian especially it is easy to quickly become dependent on plugins, and this means that less and less of your \"vault\" will work outside of the Obsidian environment. I generally try to avoid plugins that inject HTML into notes (like a plugin that highlights text in different colors), as this can be really messy if you ever export those notes.\nApple Notes recently surprised me with its ability to bulk export notes into Markdown. Bulk export is only available on the Mac, but I used it recently for exporting hundreds of notes and it worked FLAWLESSLY. I was able to move the exported Markdown files into Obsidian with zero issues, attachments and links preserved.\nDevelopers are clearly understanding that portability with note taking apps it an important concern and something people look for when moving between apps. But promises of portability are not always as they appear.\nFor example, Craft says its files are portable, but I ran into a lot of issues when I exported notes from Craft (mostly with formatting and how embedded notes were handled). This is to be expected since Craft has a very different approach to note creation, but it still made it feel like the app was trying to lock me in. When I did move notes from Craft to Obsidian, things were a mess that took a solid week to clean up.\nAlso, just because you use flat, locally stored Markdown files, that does not mean that apps will all be able to access those files equally. For example, I had once thought it would be great to use Obsidian and Noteplan interchangeably, but quickly realized this was impossible because Noteplan does not use the same file naming convention as Obsidian.\nPortability has improved, but true portability and the ability to simply point an app to a folder of notes is still not possible. There aren’t enough standards for things like plugins and add-ons to make this possible."
}

did:plc:na53or42uytb4al3p4g6dw7p | at://did:plc:na53or42uytb4al3p4g6dw7p/site.standard.document/3mhgpsf6d4gmk

blog.pckt.block.horizontalRule (nested within site.standard.document) (4 samples)
{
  "path": "/-h9cst4e",
  "site": "at://did:plc:4kzexuq4xieuarc3q6lmkeou/site.standard.publication/3mg767qzozj2r",
  "tags": [
    "osanpo-camera",
    "photography",
    "flickr",
    "bike",
    "seaside"
  ],
  "$type": "site.standard.document",
  "title": "中海周遊サイクリングコース",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "54618565306_8de09666a9_o.jpg",
          "src": "blob:bafkreia6ysqj477jj3ogezapossf6rhrgt7ovkohg4n3pmuxptu5nek7p4",
          "blob": {
            "ref": {
              "$link": "bafkreia6ysqj477jj3ogezapossf6rhrgt7ovkohg4n3pmuxptu5nek7p4"
            },
            "size": 978902,
            "$type": "blob",
            "mimeType": "image/jpeg"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 79,
              "byteStart": 29
            },
            "features": [
              {
                "uri": "https://www.flickr.com/photos/spiegel/54618565306/",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Taken on 2025-07-28, Flickr: https://www.flickr.com/photos/spiegel/54618565306/"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "島根県と鳥取県を跨ぐ中海は実際には汽水湖で,島根県の一級河川,斐伊川水系の一部である。この中海をぐるっと巡るコースが「中海周遊サイクリングコース」で,全長72kmほどの道のりである。"
      },
      {
        "src": "https://www.kankou-shimane.com/cycling/cyclingroute/nakaumi/",
        "$type": "blog.pckt.block.website",
        "attrs": [],
        "title": "中海周遊サイクリングコース",
        "description": "しまねサイクリングNavi 公式サイト"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "私は脚力も体力も心もとないのとコース中に通称「ベタ踏み坂」とよばれる江島大橋があるため,それ以外のコースの一部を楽しむ程度だが。"
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "54725811028_d302f60e77_o.jpg",
          "src": "blob:bafkreiava2syfjzakmtlrolnw37a64hyxodrjn7x6a3um427bopyppngiu",
          "blob": {
            "ref": {
              "$link": "bafkreiava2syfjzakmtlrolnw37a64hyxodrjn7x6a3um427bopyppngiu"
            },
            "size": 461032,
            "$type": "blob",
            "mimeType": "image/jpeg"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 79,
              "byteStart": 29
            },
            "features": [
              {
                "uri": "https://www.flickr.com/photos/spiegel/54725811028/",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Taken on 2025-08-17, Flickr: https://www.flickr.com/photos/spiegel/54725811028/"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "(急勾配に見えるが実際には5%ほどで歩道もしっかりしてるため徒歩でも自転車でも渡れる。ただ距離が長い)"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "松江市内はこういったサイクリングコースが多く,スポーツサイクルのレンタルも盛んである。観光の折にはこういったものに挑戦するのもよいだろう(宣伝)"
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "同じものを Leaflet にも投稿しています。"
      },
      {
        "src": "https://spiegel.leaflet.pub/3mgcaleiynk2j",
        "$type": "blog.pckt.block.website",
        "title": "中海周遊サイクリングコース - お散歩カメラ",
        "description": "松江市内はこういったサイクリングコースが多く,スポーツサイクルのレンタルも盛んである。",
        "previewImage": "https://pckt-blog-media.s3.us-east-2.amazonaws.com/images/122f8c36-00cd-486d-8900-a0ebd43d48e0/opengraph-image.jpeg"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": ""
      }
    ]
  },
  "updatedAt": "2026-03-21T09:43:46+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreia6ysqj477jj3ogezapossf6rhrgt7ovkohg4n3pmuxptu5nek7p4"
    },
    "size": 978902,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "Taken on 2025-07-28, Flickr: https://www.flickr.com/photos/spiegel/54618565306/ 島根県と鳥取県を跨ぐ中海は実際には汽水湖で,島根県の一級河川,斐伊川水系の一部である。この中海をぐるっと巡るコースが「中海周遊サイクリングコース」で,全長72kmほどの道のりである。 私は脚力も体力も心もとないのとコース中に通称「ベタ踏み坂」とよばれる江島大橋があるため,それ以外のコースの一部を楽しむ程度だが。",
  "publishedAt": "2026-03-05T08:30:57+00:00",
  "textContent": "Taken on 2025-07-28, Flickr: https://www.flickr.com/photos/spiegel/54618565306/\n島根県と鳥取県を跨ぐ中海は実際には汽水湖で,島根県の一級河川,斐伊川水系の一部である。この中海をぐるっと巡るコースが「中海周遊サイクリングコース」で,全長72kmほどの道のりである。\n私は脚力も体力も心もとないのとコース中に通称「ベタ踏み坂」とよばれる江島大橋があるため,それ以外のコースの一部を楽しむ程度だが。\nTaken on 2025-08-17, Flickr: https://www.flickr.com/photos/spiegel/54725811028/\n(急勾配に見えるが実際には5%ほどで歩道もしっかりしてるため徒歩でも自転車でも渡れる。ただ距離が長い)\n松江市内はこういったサイクリングコースが多く,スポーツサイクルのレンタルも盛んである。観光の折にはこういったものに挑戦するのもよいだろう(宣伝)\n同じものを Leaflet にも投稿しています。"
}

did:plc:4kzexuq4xieuarc3q6lmkeou | at://did:plc:4kzexuq4xieuarc3q6lmkeou/site.standard.document/3mgcf2qxofybu

blog.pckt.block.iframe (nested within site.standard.document) (14 samples)
{
  "path": "/tadc-episode-8-worth-the-wait-wrj964p",
  "site": "at://did:plc:na53or42uytb4al3p4g6dw7p/site.standard.publication/3md6q74rfm22c",
  "tags": [
    "watchlist",
    "tv"
  ],
  "$type": "site.standard.document",
  "title": "TADC Episode 8 - worth the wait",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "IMG_0161.webp",
          "src": "blob:bafkreiaailupzsolhjkqauxolbihcjmz5y6yyjak5cvcxdopeb3f4gcxfu",
          "blob": {
            "ref": {
              "$link": "bafkreiaailupzsolhjkqauxolbihcjmz5y6yyjak5cvcxdopeb3f4gcxfu"
            },
            "size": 194502,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 36,
              "byteStart": 0
            },
            "features": [
              {
                "uri": "https://tadc.fandom.com/wiki/Hjsakldfhl",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 78,
              "byteStart": 60
            },
            "features": [
              {
                "uri": "https://drea.pckt.blog/the-amazing-digital-circus-is-deeper-than-i-thought-8674nwy",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "The Amazing Digital Circus episode 8 finally dropped today. I adore this show. There’s a crazy juxtaposition between the colorful, childlike cartoonish visual effects and the deep, dark nature of the plot. "
      },
      {
        "url": "https://www.youtube.com/embed/DMNlzf8PiEM?rel=0&hl=en-US",
        "$type": "blog.pckt.block.iframe",
        "attrs": []
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 35,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "🚨 WARNING!! SPOILER ALERT!! 🚨"
      },
      {
        "$type": "blog.pckt.block.blockquote",
        "content": [
          {
            "$type": "blog.pckt.block.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 56,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "blog.pckt.richtext.facet#bold"
                  },
                  {
                    "$type": "blog.pckt.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“Don’t need to scream if you ain’t got a mouth.”"
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "My unfiltered observations:"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "The scene with Kinger and Queenie was heartbreaking also implies that Kinger did something to drag Queenie into this  "
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Kinger deleting Cain raises so many question now. Will they remember their true identities? Will they be able to recreate their world how they want it? Can they escape it?"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Was Bubble the AI that worked? Is that why he torments Caine?"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Was Scratch terminally ill and that’s why he created the circus? As a way to become immortal?"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "With Caine gone, will the characters be able to remember their true identities?"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "This also means that the episode 7 adventure wasn’t totally fabricated. So how was that possible? "
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.blockquote",
        "content": [
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "“I think I…killed Caine.” - Kinger"
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "It’s going to be a long 3 months until the finale drops. "
      }
    ]
  },
  "updatedAt": "2026-03-21T17:08:30+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreiaailupzsolhjkqauxolbihcjmz5y6yyjak5cvcxdopeb3f4gcxfu"
    },
    "size": 194502,
    "$type": "blob",
    "mimeType": "image/webp"
  },
  "description": "The Amazing Digital Circus episode 8 finally dropped today. I adore this show. There’s a crazy juxtaposition between the colorful, childlike cartoonish visual effects and the deep, dark nature of the plot. 🚨 WARNING!! SPOILER ALERT!! 🚨 My unfiltered observations:",
  "publishedAt": "2026-03-21T01:17:32+00:00",
  "textContent": "The Amazing Digital Circus episode 8 finally dropped today. I adore this show. There’s a crazy juxtaposition between the colorful, childlike cartoonish visual effects and the deep, dark nature of the plot. \n🚨 WARNING!! SPOILER ALERT!! 🚨\n“Don’t need to scream if you ain’t got a mouth.”\nMy unfiltered observations:\nThe scene with Kinger and Queenie was heartbreaking also implies that Kinger did something to drag Queenie into this  \nKinger deleting Cain raises so many question now. Will they remember their true identities? Will they be able to recreate their world how they want it? Can they escape it?\nWas Bubble the AI that worked? Is that why he torments Caine?\nWas Scratch terminally ill and that’s why he created the circus? As a way to become immortal?\nWith Caine gone, will the characters be able to remember their true identities?\nThis also means that the episode 7 adventure wasn’t totally fabricated. So how was that possible? \n“I think I…killed Caine.” - Kinger\nIt’s going to be a long 3 months until the finale drops."
}

did:plc:na53or42uytb4al3p4g6dw7p | at://did:plc:na53or42uytb4al3p4g6dw7p/site.standard.document/3mhjucijzefxe

blog.pckt.block.image (nested within site.standard.document) (24 samples)
{
  "path": "/tadc-episode-8-retro-tech-breakdown-tsgxqge",
  "site": "at://did:plc:ixejoosmp57g2zv4c7s6n7ng/site.standard.publication/3mfnfbmih5ts3",
  "tags": [],
  "$type": "site.standard.document",
  "title": "TADC Episode 8 Retro-Tech Breakdown",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Well shit... I wasn't too far off on my own theory."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "(spoilers obviously)"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "C&A wasn't a game company they were in fact developing AI just like in my theory post. CAINE also wasn't running locally on that computer in the Episode 1 C&A office. \nOther parts of my theory haven't been proven right or wrong, like how they were bringing in new people to keep CAINE entertained, though there's some thought that part is wrong. We'll see. "
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I knew however that Caine had to be more than just that computer, that computer isn't powerful enough to produce an entity like Caine. Sure enough the proof is in the console that Kinger was working on."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "This is a screenshot of Kinger's console, he's using Telnet to make a remote connection to a Mainframe. "
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "Screenshot 2026-03-20 at 11.21.17 PM.png",
          "src": "blob:bafkreidaesit4wddbqpihyn3z2oh4muncoh6xzi6sqpzdahglakjpg642u",
          "blob": {
            "ref": {
              "$link": "bafkreidaesit4wddbqpihyn3z2oh4muncoh6xzi6sqpzdahglakjpg642u"
            },
            "size": 54596,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "The remote Mainframe seems to be unix based, going by the file formatting, file permissions, and use of root. "
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "Screenshot 2026-03-20 at 11.23.25 PM.png",
          "src": "blob:bafkreiaa7stylcweor7tbay3g3htm66btn4hhipafazpbtwv52bv2hy5gi",
          "blob": {
            "ref": {
              "$link": "bafkreiaa7stylcweor7tbay3g3htm66btn4hhipafazpbtwv52bv2hy5gi"
            },
            "size": 96814,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Some interesting things from this screenshot."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "The .dat files for Ragatha and Scratch tell which time they were created which coincides with when they were digitized into the circus. Scratch in 1999, Ragatha in 2008. All other TADC AI related files including what looks to be .lisp script file for bubble are from 1996."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "One of the things Kinger tries to do right away was debug Caine, but there was an AI protection system in place that prevented Kinger from accessing this process. These Warning and Error messages are probably coming from that AI and that AI process is part of Caine. So these messages could be read as coming from Caine. "
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "Screenshot 2026-03-20 at 11.24.07 PM.png",
          "src": "blob:bafkreigtbzqfsj3dnb5crgbr3aiohxorg3b6mo3nxw723rlhziwg5zr56u",
          "blob": {
            "ref": {
              "$link": "bafkreigtbzqfsj3dnb5crgbr3aiohxorg3b6mo3nxw723rlhziwg5zr56u"
            },
            "size": 120722,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "It's even more evident in this screenshot, this is Caine trying to respond to Kinger's debugging attempts. Here's one interesting thing though, this might be Kinger's real name."
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "Screenshot 2026-03-20 at 11.44.24 PM.png",
          "src": "blob:bafkreigcinffwcuqqay4wddsatfo2jcthoti67gtdj634otzpumqatfuia",
          "blob": {
            "ref": {
              "$link": "bafkreigcinffwcuqqay4wddsatfo2jcthoti67gtdj634otzpumqatfuia"
            },
            "size": 12278,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Is Kinger's real name Grant?"
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "Screenshot 2026-03-20 at 11.26.31 PM.png",
          "src": "blob:bafkreihet6n6i6jet2lczcpt4yb4hmfsulzba5ws2rnjoemmtxjxj4ld4a",
          "blob": {
            "ref": {
              "$link": "bafkreihet6n6i6jet2lczcpt4yb4hmfsulzba5ws2rnjoemmtxjxj4ld4a"
            },
            "size": 144532,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Another thing I found interesting is Kinger tried to restore Caine to an older backup, but he couldn't. So instead seems a delete Caine failsafe was launched which lead to Caine being deleted."
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "Screenshot 2026-03-20 at 11.27.09 PM.png",
          "src": "blob:bafkreia2fdaryxnfhi3mlxjvr7s6ukygzbduql4ybds27y3p4gjzeq6xby",
          "blob": {
            "ref": {
              "$link": "bafkreia2fdaryxnfhi3mlxjvr7s6ukygzbduql4ybds27y3p4gjzeq6xby"
            },
            "size": 149614,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "For anybody on Unix/Linux that has had to force terminate a process before, you know that for a very resource intensive process, the system kills the child processes before it kills the parent process. Caine's final words was him probably realizing he was about to be deleted as all his child processes were being deleted. "
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "This episode was amazing, one of my top favorites, definitely a huge payoff for us fans before the finale. I'm curious where we will finally end up. It is possible the \"mind copy\" theory is still accurate, as a .dat file is just a data file. It doesn't seem to be connected to anything it's not like it's a datastream coming from some source, but then again, if Caine created the Circus and the ability to suck in all these minds, it's possible they weren't copies but an actual conscious mind being absorbed extracting it from the body and being placed into storage somewhere. I want to analyze it further but for now I just wanted to talk about the cool stuff from the terminal."
      }
    ]
  },
  "updatedAt": "2026-03-21T04:52:08+00:00",
  "description": "Well shit... I wasn't too far off on my own theory. (spoilers obviously) C&A wasn't a game company they were in fact developing AI just like in my theory post. CAINE also wasn't running locally on that computer in the Episode 1 C&A office. Other parts of my theory haven't been proven right or wrong, like how they were bringing in new people to keep CAINE entertained, though there's some thought that part is wrong. We'll see.",
  "publishedAt": "2026-03-21T04:30:20+00:00",
  "textContent": "Well shit... I wasn't too far off on my own theory.\n(spoilers obviously)\nC&A wasn't a game company they were in fact developing AI just like in my theory post. CAINE also wasn't running locally on that computer in the Episode 1 C&A office. Other parts of my theory haven't been proven right or wrong, like how they were bringing in new people to keep CAINE entertained, though there's some thought that part is wrong. We'll see. \nI knew however that Caine had to be more than just that computer, that computer isn't powerful enough to produce an entity like Caine. Sure enough the proof is in the console that Kinger was working on.\nThis is a screenshot of Kinger's console, he's using Telnet to make a remote connection to a Mainframe. \nThe remote Mainframe seems to be unix based, going by the file formatting, file permissions, and use of root. \nSome interesting things from this screenshot.\nThe .dat files for Ragatha and Scratch tell which time they were created which coincides with when they were digitized into the circus. Scratch in 1999, Ragatha in 2008. All other TADC AI related files including what looks to be .lisp script file for bubble are from 1996.\nOne of the things Kinger tries to do right away was debug Caine, but there was an AI protection system in place that prevented Kinger from accessing this process. These Warning and Error messages are probably coming from that AI and that AI process is part of Caine. So these messages could be read as coming from Caine. \nIt's even more evident in this screenshot, this is Caine trying to respond to Kinger's debugging attempts. Here's one interesting thing though, this might be Kinger's real name.\nIs Kinger's real name Grant?\nAnother thing I found interesting is Kinger tried to restore Caine to an older backup, but he couldn't. So instead seems a delete Caine failsafe was launched which lead to Caine being deleted.\nFor anybody on Unix/Linux that has had to force terminate a process before, you know that for a very resource intensive process, the system kills the child processes before it kills the parent process. Caine's final words was him probably realizing he was about to be deleted as all his child processes were being deleted. \nThis episode was amazing, one of my top favorites, definitely a huge payoff for us fans before the finale. I'm curious where we will finally end up. It is possible the \"mind copy\" theory is still accurate, as a .dat file is just a data file. It doesn't seem to be connected to anything it's not like it's a datastream coming from some source, but then again, if Caine created the Circus and the ability to suck in all these minds, it's possible they weren't copies but an actual conscious mind being absorbed extracting it from the body and being placed into storage somewhere. I want to analyze it further but for now I just wanted to talk about the cool stuff from the terminal."
}

did:plc:ixejoosmp57g2zv4c7s6n7ng | at://did:plc:ixejoosmp57g2zv4c7s6n7ng/site.standard.document/3mhk73atblkfx

blog.pckt.block.listItem (nested within site.standard.document) (7 samples)
{
  "path": "/fighting-back-against-techno-capitalist-authoritarianism-emzg48c",
  "site": "at://did:plc:na53or42uytb4al3p4g6dw7p/site.standard.publication/3md6q74rfm22c",
  "tags": [
    "privacy",
    "democracy"
  ],
  "$type": "site.standard.document",
  "title": "Fighting back against techno-capitalist-authoritarianism",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Lately I feel like the world's slow burn has been set to broil. Things are not good. And often times, I feel kind of hopeless, like we are going to have no choice but to succumb to authoritarianism and our new tech overlords. Sometimes it feels utterly impossible to do anything to shift the tide of doom."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "And that's the point. The people in control want us to feel hopeless, they want us to feel a sense of existential nihilism so that we don't fight back because we think it's useless to do so."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 93,
              "byteStart": 26
            },
            "features": [
              {
                "uri": "https://www.brookings.edu/articles/measuring-us-workers-capacity-to-adapt-to-ai-driven-job-displacement/",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Combine all this with the growing fear that Ai could potentially replace a whole host of jobs, and it is hard not to be pessimistic."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 71,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Which has had me asking - is there anything we can we do to fight back?"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Turns out, there are."
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "We the people are what make capitalism work, and that means we DO have some power"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Just 10 people in the world (0.00000121% of the world's population) control 1.2% ($1.5 trillion in wealth) of the global GDP."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 68,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "That's right - 10 people control 1.2% of the ENTIRE WORLD'S GDP 🌎"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "With a current world population of about 8,270,000,000, that means there's about 8,269,999,990 who can do something. Those odds should be good."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Those 10 people and the approximately 3,000 billionaires (0.000036% of the world population) in their orbit are only insanely wealthy because we have made them wealthy. We have the power to make them wealthy and we have the power to take a bite out of their fortune if we care to do so."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "🗳 Obviously, there is voting. Very important."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "💸 But there is also how we spend our money."
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 44,
              "byteStart": 21
            },
            "features": [
              {
                "uri": "https://podcasts.voxmedia.com/show/pivot",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "I was listening to a recent episode of Pivot (my favorite podcast) in which Scott Galloway argued that in a capitalist society and world, how we spend our money is just as important as voting and protesting. And I 100% agree with him. And I'd take this a step further and say it's not just our money, but also our data, because for most of the people who control the world's wealth, their wealth is built on our data that we have freely given up."
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "This leads to two very actionable things we can do."
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Resist and Unsubscribe"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 83,
              "byteStart": 50
            },
            "features": [
              {
                "uri": "https://www.resistandunsubscribe.com/",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Galloway introduced a very important effort - the \"Resist and Unsubscribe\" campaign. His approach here is brilliant - target the companies doing the most damage, and cancel subscriptions where you can, and then get others to do the same. You don't even need to stop using the services, just don't pay for the subscription level services because that is what companies pay attention to. And you don't have to do everything, just pick a couple that are less important to you personally and cancel them. Use the free version of ChatGPT, use Amazon without Prime. Whatever, just cancel those subscriptions."
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Data Strikes"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 35,
              "byteStart": 23
            },
            "features": [
              {
                "uri": "https://blog.datadividendproject.com/data-strikes/",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 386,
              "byteStart": 304
            },
            "features": [
              {
                "uri": "https://publish.obsidian.md/datastrike/Data+Strike+Information+Package/Action+Guide/Data+Strike+and+Digital+Surveillance+Breakdown",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          },
          {
            "index": {
              "byteEnd": 454,
              "byteStart": 392
            },
            "features": [
              {
                "uri": "https://publish.obsidian.md/datastrike/Data+Strike+Information+Package/Action+Guide/Data+Strike+Quick+Checklist/Data+Strike+Checklist",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Going even further are Data Strikes, another great form of resistance. Similar to Galloway's Resist and Unsubscribe campaign, this effort focuses on striking where you can. Many of these companies are doing what they are doing because we are giving them the data to do it. We can turn off that firehose. This person wrote a fantastic post and checklist on how to engage in a Data Strike, and they put together an awesome checklist to help you get started. Can I do all these things? Nope. But I can start doing a few, and then maybe a few more after that."
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Collectively this can work"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Both of these efforts - Resist and Unsubscribe and Data Strikes - are not \"all or nothing.\" They are about making small changes where you can, a couple of subscriptions here, a couple of services there. Chip away, encourage others to do the same. The ripple starts amounting to waves, and before you know it, a tsunami."
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "So what have I done so far?"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I am not going to lie, this was hard for me to wrap my head around. I have been a HUGE Amazon customer over the years and subscribe to a lot of services, including Ai services. But thinking about all this forced me to reevaluate exactly what I actually needed, and what I could live without."
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 22,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Canceled Amazon Prime. YUP. Never thought I would do that, but I did. I will still probably use Amazon, but not with Prime. I can wait for things to arrive, and I can also check out other retailers that have reasonable shipping. I still get free shipping with orders over $35 so our household decided we would try that instead of having things sent to our doorstep overnight."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Canceled Google One. I don't need Gemini Pro, and I have moved most of my photo storage off Google Photos at this point. I backed up my emails and reduced anything I have in Google storage so that I can use the free tier."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 23,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Switched to DuckDuckGo. I am already using Perplexity and Claude more these days for basic searches, and I really don't want to give Google more data than I have to."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 26,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 397,
                      "byteStart": 390
                    },
                    "features": [
                      {
                        "uri": "https://adguard.com/en/welcome.html",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 445,
                      "byteStart": 439
                    },
                    "features": [
                      {
                        "uri": "https://apps.apple.com/us/app/sink-it-for-reddit/id6449873635",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Deleted the Instagram app. I don't use Instagram a ton, mostly to keep up with friends. So when I do need/want to use it, I am just accessing it via my web browser on either my phone or desktop. I have an ad blocker and some other things on my devices that make it less data-harvesty when going through my browser. I do this also with Facebook and Reddit when I need to access those sites. AdGuard is a great ad blocker and I also use the SinkIt to block ads on Reddit."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Canceled Paramount+. We weren't using that much; honestly I kind of forgot we had a subscription."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 17,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Canceled ChatGPT. Again, I almost exclusively use Claude and Perplexity now anyway so this wasn't a huge deal. I can use the free version if I need it."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 25,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Looking into Proton Mail. This switch will be hard because we have so much tied to our Gmail accounts, but I am starting to seriously explore how to go about doing this."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 23,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#bold"
                      }
                    ]
                  }
                ],
                "plaintext": "Purchasing another VPN. I've been using NordVPN, but my subscription ends this month and Surfshark and Mullvad seem like better options. (Update: I picked Surfshark.)"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "None of these decisions are going to affect my life much. Just about all save me money. And maybe, just maybe, these actions, combined with other people doing these things, will have some effect."
      }
    ]
  },
  "updatedAt": "2026-03-20T17:29:22+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreif3hvcbkdgaqjxbkt4ca5sbcfvvlgepr5oflqkr74wergtf3vvvjm"
    },
    "size": 52243,
    "$type": "blob",
    "mimeType": "image/png"
  },
  "description": "Lately I feel like the world's slow burn has been set to broil. Things are not good. And often times, I feel kind of hopeless, like we are going to have no choice but to succumb to authoritarianism and our new tech overlords. Sometimes it feels utterly impossible to do anything to shift the tide of doom. And that's the point. The people in control want us to feel hopeless, they want us to feel a sense of existential nihilism so that we don't fight back because we think it's useless to do so. Com...",
  "publishedAt": "2026-03-19T23:07:34+00:00",
  "textContent": "Lately I feel like the world's slow burn has been set to broil. Things are not good. And often times, I feel kind of hopeless, like we are going to have no choice but to succumb to authoritarianism and our new tech overlords. Sometimes it feels utterly impossible to do anything to shift the tide of doom.\nAnd that's the point. The people in control want us to feel hopeless, they want us to feel a sense of existential nihilism so that we don't fight back because we think it's useless to do so.\nCombine all this with the growing fear that Ai could potentially replace a whole host of jobs, and it is hard not to be pessimistic.\nWhich has had me asking - is there anything we can we do to fight back?\nTurns out, there are.\nWe the people are what make capitalism work, and that means we DO have some power\nJust 10 people in the world (0.00000121% of the world's population) control 1.2% ($1.5 trillion in wealth) of the global GDP.\nThat's right - 10 people control 1.2% of the ENTIRE WORLD'S GDP 🌎\nWith a current world population of about 8,270,000,000, that means there's about 8,269,999,990 who can do something. Those odds should be good.\nThose 10 people and the approximately 3,000 billionaires (0.000036% of the world population) in their orbit are only insanely wealthy because we have made them wealthy. We have the power to make them wealthy and we have the power to take a bite out of their fortune if we care to do so.\n🗳 Obviously, there is voting. Very important.\n💸 But there is also how we spend our money.\nI was listening to a recent episode of Pivot (my favorite podcast) in which Scott Galloway argued that in a capitalist society and world, how we spend our money is just as important as voting and protesting. And I 100% agree with him. And I'd take this a step further and say it's not just our money, but also our data, because for most of the people who control the world's wealth, their wealth is built on our data that we have freely given up.\nThis leads to two very actionable things we can do.\nResist and Unsubscribe\nGalloway introduced a very important effort - the \"Resist and Unsubscribe\" campaign. His approach here is brilliant - target the companies doing the most damage, and cancel subscriptions where you can, and then get others to do the same. You don't even need to stop using the services, just don't pay for the subscription level services because that is what companies pay attention to. And you don't have to do everything, just pick a couple that are less important to you personally and cancel them. Use the free version of ChatGPT, use Amazon without Prime. Whatever, just cancel those subscriptions.\nData Strikes\nGoing even further are Data Strikes, another great form of resistance. Similar to Galloway's Resist and Unsubscribe campaign, this effort focuses on striking where you can. Many of these companies are doing what they are doing because we are giving them the data to do it. We can turn off that firehose. This person wrote a fantastic post and checklist on how to engage in a Data Strike, and they put together an awesome checklist to help you get started. Can I do all these things? Nope. But I can start doing a few, and then maybe a few more after that.\nCollectively this can work\nBoth of these efforts - Resist and Unsubscribe and Data Strikes - are not \"all or nothing.\" They are about making small changes where you can, a couple of subscriptions here, a couple of services there. Chip away, encourage others to do the same. The ripple starts amounting to waves, and before you know it, a tsunami.\nSo what have I done so far?\nI am not going to lie, this was hard for me to wrap my head around. I have been a HUGE Amazon customer over the years and subscribe to a lot of services, including Ai services. But thinking about all this forced me to reevaluate exactly what I actually needed, and what I could live without.\nCanceled Amazon Prime. YUP. Never thought I would do that, but I did. I will still probably use Amazon, but not with Prime. I can wait for things to arrive, and I can also check out other retailers that have reasonable shipping. I still get free shipping with orders over $35 so our household decided we would try that instead of having things sent to our doorstep overnight.\nCanceled Google One. I don't need Gemini Pro, and I have moved most of my photo storage off Google Photos at this point. I backed up my emails and reduced anything I have in Google storage so that I can use the free tier.\nSwitched to DuckDuckGo. I am already using Perplexity and Claude more these days for basic searches, and I really don't want to give Google more data than I have to.\nDeleted the Instagram app. I don't use Instagram a ton, mostly to keep up with friends. So when I do need/want to use it, I am just accessing it via my web browser on either my phone or desktop. I have an ad blocker and some other things on my devices that make it less data-harvesty when going through my browser. I do this also with Facebook and Reddit when I need to access those sites. AdGuard is a great ad blocker and I also use the SinkIt to block ads on Reddit.\nCanceled Paramount+. We weren't using that much; honestly I kind of forgot we had a subscription.\nCanceled ChatGPT. Again, I almost exclusively use Claude and Perplexity now anyway so this wasn't a huge deal. I can use the free version if I need it.\nLooking into Proton Mail. This switch will be hard because we have so much tied to our Gmail accounts, but I am starting to seriously explore how to go about doing this.\nPurchasing another VPN. I've been using NordVPN, but my subscription ends this month and Surfshark and Mullvad seem like better options. (Update: I picked Surfshark.)\nNone of these decisions are going to affect my life much. Just about all save me money. And maybe, just maybe, these actions, combined with other people doing these things, will have some effect."
}

did:plc:na53or42uytb4al3p4g6dw7p | at://did:plc:na53or42uytb4al3p4g6dw7p/site.standard.document/3mhh4l67l42q2

blog.pckt.block.orderedList (nested within site.standard.document) (2 samples)
{
  "site": "at://did:plc:sppiplftd2sxt3hbw7htj3b5/site.standard.publication/3mcm4kdhva27c",
  "$type": "site.standard.document",
  "title": "pckt format test",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.heading",
        "level": 1,
        "plaintext": "Heading 1"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "This is a paragprah in heading 1"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "And here's a list"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "item 1"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "item 2"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Ordered list?"
      },
      {
        "$type": "blog.pckt.block.orderedList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "number 1"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "number 2"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "How about some italics and maybe some bold text?"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Heading 2"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Now lets quote \"someone\""
      },
      {
        "$type": "blog.pckt.block.blockquote",
        "content": [
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "This is a block quote"
          }
        ]
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 3,
        "plaintext": "Heading 3"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Some more text"
      }
    ]
  },
  "updatedAt": "2026-02-07T00:35:12.173Z",
  "publishedAt": "2026-02-07T00:35:12.173Z",
  "textContent": "Heading 1\n\nThis is a paragprah in heading 1\n\nAnd here's a list\n\nitem 1item 2\n\nOrdered list?\n\nnumber 1number 2\n\nHow about some italics and maybe some bold text?\n\nHeading 2\n\nNow lets quote \"someone\"\n\nThis is a block quote\n\n\n\nHeading 3\n\nSome more text"
}

did:plc:sppiplftd2sxt3hbw7htj3b5 | at://did:plc:sppiplftd2sxt3hbw7htj3b5/site.standard.document/3mea6e4iqsq2g

blog.pckt.block.table (nested within site.standard.document) (1 sample)
{
  "path": "/undecided-b8nqcy2",
  "site": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.publication/3m5k77w2ne24u",
  "tags": [
    "Pinned",
    "Testing"
  ],
  "$type": "site.standard.document",
  "title": "Undecided...",
  "labels": {
    "$type": "com.atproto.label.defs#selfLabels",
    "values": [
      {
        "val": "sexual"
      }
    ]
  },
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here..."
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Experimenting with Blocks"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 13,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "BlueSky Embed"
      },
      {
        "$type": "blog.pckt.block.blueskyEmbed",
        "postRef": {
          "cid": "bafyreihzzjgmxenygfjbql7dwmvhxboqwgzhqctk5ejqydcbbb6vyptt3i",
          "uri": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/app.bsky.feed.post/3meka7lajvs2d"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Quote"
      },
      {
        "$type": "blog.pckt.block.blockquote",
        "content": [
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "Sharing my sexuality - it's just what I do!"
          },
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "- Valerie Rayne"
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 7,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Gallery"
      },
      {
        "ref": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/blog.pckt.gallery/3mfb7vx6cpeix",
        "$type": "blog.pckt.block.gallery"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 36,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Unordered Lists (aka My Other Blogs)"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 55,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Writes - https://valerierayne.leaflet.pub"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 24,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 68,
                      "byteStart": 27
                    },
                    "features": [
                      {
                        "uri": "https://eroticabyvalerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Erotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub "
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 62,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerieraynesmokes.worpress.com",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Smokes - https://valerieraynesmokes.worpress.com"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 12,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Single Image"
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "1000021773.png",
          "src": "blob:bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy",
          "blob": {
            "ref": {
              "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
            },
            "size": 158494,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 9,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Task List"
      },
      {
        "$type": "blog.pckt.block.taskList",
        "content": [
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": true,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Experiment with blocks on pckt"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Decide what this blog is going to be..."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Write the first real post"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Tell people about this new blogging platform..."
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Table"
      },
      {
        "$type": "blog.pckt.block.table",
        "content": [
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "BlueSky"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "LoyalFans"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "Fansly"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://bsky.app/profile/valerierayne13.bsky.social",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn.bsky.app/img/banner/plain/did:plc:pxxvg3q7gbzlbsdxbx6353wh/bafkreiatfbi2xgwfeq64k3vc4axncmxpscbgpetawesnladuzlpyopjwey@jpeg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://loyalfans.com/ValerieRayne",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn-static.loyalfans.com/loyalfans.jpg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://fansly.com/ValerieRayne13",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://fansly.com/assets/images/twitter-card-image.png"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "So now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 47,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "P.S. This post will be deleted once I decide..."
      }
    ]
  },
  "updatedAt": "2026-02-20T04:30:24+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
    },
    "size": 158494,
    "$type": "blob",
    "mimeType": "image/webp"
  },
  "description": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛 I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from...",
  "publishedAt": "2026-02-20T03:58:24+00:00",
  "textContent": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛\nI've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here...\nExperimenting with Blocks\nBlueSky Embed\nQuote\nSharing my sexuality - it's just what I do!- Valerie Rayne\nGallery\nUnordered Lists (aka My Other Blogs)\nValerie Rayne Writes - https://valerierayne.leaflet.pub\nErotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub \nValerie Rayne Smokes - https://valerieraynesmokes.worpress.com\nSingle Image\nTask List\nExperiment with blocks on pckt\nDecide what this blog is going to be...\nWrite the first real post\nTell people about this new blogging platform...\nTable\nBlueSkyLoyalFansFansly\nSo now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?\nP.S. This post will be deleted once I decide..."
}

did:plc:pxxvg3q7gbzlbsdxbx6353wh | at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.document/3mfb7rghi22ma

blog.pckt.block.tableCell (nested within site.standard.document) (1 sample)
{
  "path": "/undecided-b8nqcy2",
  "site": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.publication/3m5k77w2ne24u",
  "tags": [
    "Pinned",
    "Testing"
  ],
  "$type": "site.standard.document",
  "title": "Undecided...",
  "labels": {
    "$type": "com.atproto.label.defs#selfLabels",
    "values": [
      {
        "val": "sexual"
      }
    ]
  },
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here..."
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Experimenting with Blocks"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 13,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "BlueSky Embed"
      },
      {
        "$type": "blog.pckt.block.blueskyEmbed",
        "postRef": {
          "cid": "bafyreihzzjgmxenygfjbql7dwmvhxboqwgzhqctk5ejqydcbbb6vyptt3i",
          "uri": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/app.bsky.feed.post/3meka7lajvs2d"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Quote"
      },
      {
        "$type": "blog.pckt.block.blockquote",
        "content": [
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "Sharing my sexuality - it's just what I do!"
          },
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "- Valerie Rayne"
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 7,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Gallery"
      },
      {
        "ref": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/blog.pckt.gallery/3mfb7vx6cpeix",
        "$type": "blog.pckt.block.gallery"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 36,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Unordered Lists (aka My Other Blogs)"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 55,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Writes - https://valerierayne.leaflet.pub"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 24,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 68,
                      "byteStart": 27
                    },
                    "features": [
                      {
                        "uri": "https://eroticabyvalerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Erotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub "
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 62,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerieraynesmokes.worpress.com",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Smokes - https://valerieraynesmokes.worpress.com"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 12,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Single Image"
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "1000021773.png",
          "src": "blob:bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy",
          "blob": {
            "ref": {
              "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
            },
            "size": 158494,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 9,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Task List"
      },
      {
        "$type": "blog.pckt.block.taskList",
        "content": [
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": true,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Experiment with blocks on pckt"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Decide what this blog is going to be..."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Write the first real post"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Tell people about this new blogging platform..."
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Table"
      },
      {
        "$type": "blog.pckt.block.table",
        "content": [
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "BlueSky"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "LoyalFans"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "Fansly"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://bsky.app/profile/valerierayne13.bsky.social",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn.bsky.app/img/banner/plain/did:plc:pxxvg3q7gbzlbsdxbx6353wh/bafkreiatfbi2xgwfeq64k3vc4axncmxpscbgpetawesnladuzlpyopjwey@jpeg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://loyalfans.com/ValerieRayne",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn-static.loyalfans.com/loyalfans.jpg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://fansly.com/ValerieRayne13",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://fansly.com/assets/images/twitter-card-image.png"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "So now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 47,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "P.S. This post will be deleted once I decide..."
      }
    ]
  },
  "updatedAt": "2026-02-20T04:30:24+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
    },
    "size": 158494,
    "$type": "blob",
    "mimeType": "image/webp"
  },
  "description": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛 I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from...",
  "publishedAt": "2026-02-20T03:58:24+00:00",
  "textContent": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛\nI've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here...\nExperimenting with Blocks\nBlueSky Embed\nQuote\nSharing my sexuality - it's just what I do!- Valerie Rayne\nGallery\nUnordered Lists (aka My Other Blogs)\nValerie Rayne Writes - https://valerierayne.leaflet.pub\nErotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub \nValerie Rayne Smokes - https://valerieraynesmokes.worpress.com\nSingle Image\nTask List\nExperiment with blocks on pckt\nDecide what this blog is going to be...\nWrite the first real post\nTell people about this new blogging platform...\nTable\nBlueSkyLoyalFansFansly\nSo now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?\nP.S. This post will be deleted once I decide..."
}

did:plc:pxxvg3q7gbzlbsdxbx6353wh | at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.document/3mfb7rghi22ma

blog.pckt.block.tableHeader (nested within site.standard.document) (1 sample)
{
  "path": "/undecided-b8nqcy2",
  "site": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.publication/3m5k77w2ne24u",
  "tags": [
    "Pinned",
    "Testing"
  ],
  "$type": "site.standard.document",
  "title": "Undecided...",
  "labels": {
    "$type": "com.atproto.label.defs#selfLabels",
    "values": [
      {
        "val": "sexual"
      }
    ]
  },
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here..."
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Experimenting with Blocks"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 13,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "BlueSky Embed"
      },
      {
        "$type": "blog.pckt.block.blueskyEmbed",
        "postRef": {
          "cid": "bafyreihzzjgmxenygfjbql7dwmvhxboqwgzhqctk5ejqydcbbb6vyptt3i",
          "uri": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/app.bsky.feed.post/3meka7lajvs2d"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Quote"
      },
      {
        "$type": "blog.pckt.block.blockquote",
        "content": [
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "Sharing my sexuality - it's just what I do!"
          },
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "- Valerie Rayne"
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 7,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Gallery"
      },
      {
        "ref": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/blog.pckt.gallery/3mfb7vx6cpeix",
        "$type": "blog.pckt.block.gallery"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 36,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Unordered Lists (aka My Other Blogs)"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 55,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Writes - https://valerierayne.leaflet.pub"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 24,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 68,
                      "byteStart": 27
                    },
                    "features": [
                      {
                        "uri": "https://eroticabyvalerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Erotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub "
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 62,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerieraynesmokes.worpress.com",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Smokes - https://valerieraynesmokes.worpress.com"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 12,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Single Image"
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "1000021773.png",
          "src": "blob:bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy",
          "blob": {
            "ref": {
              "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
            },
            "size": 158494,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 9,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Task List"
      },
      {
        "$type": "blog.pckt.block.taskList",
        "content": [
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": true,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Experiment with blocks on pckt"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Decide what this blog is going to be..."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Write the first real post"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Tell people about this new blogging platform..."
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Table"
      },
      {
        "$type": "blog.pckt.block.table",
        "content": [
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "BlueSky"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "LoyalFans"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "Fansly"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://bsky.app/profile/valerierayne13.bsky.social",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn.bsky.app/img/banner/plain/did:plc:pxxvg3q7gbzlbsdxbx6353wh/bafkreiatfbi2xgwfeq64k3vc4axncmxpscbgpetawesnladuzlpyopjwey@jpeg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://loyalfans.com/ValerieRayne",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn-static.loyalfans.com/loyalfans.jpg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://fansly.com/ValerieRayne13",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://fansly.com/assets/images/twitter-card-image.png"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "So now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 47,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "P.S. This post will be deleted once I decide..."
      }
    ]
  },
  "updatedAt": "2026-02-20T04:30:24+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
    },
    "size": 158494,
    "$type": "blob",
    "mimeType": "image/webp"
  },
  "description": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛 I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from...",
  "publishedAt": "2026-02-20T03:58:24+00:00",
  "textContent": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛\nI've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here...\nExperimenting with Blocks\nBlueSky Embed\nQuote\nSharing my sexuality - it's just what I do!- Valerie Rayne\nGallery\nUnordered Lists (aka My Other Blogs)\nValerie Rayne Writes - https://valerierayne.leaflet.pub\nErotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub \nValerie Rayne Smokes - https://valerieraynesmokes.worpress.com\nSingle Image\nTask List\nExperiment with blocks on pckt\nDecide what this blog is going to be...\nWrite the first real post\nTell people about this new blogging platform...\nTable\nBlueSkyLoyalFansFansly\nSo now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?\nP.S. This post will be deleted once I decide..."
}

did:plc:pxxvg3q7gbzlbsdxbx6353wh | at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.document/3mfb7rghi22ma

blog.pckt.block.tableRow (nested within site.standard.document) (1 sample)
{
  "path": "/undecided-b8nqcy2",
  "site": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.publication/3m5k77w2ne24u",
  "tags": [
    "Pinned",
    "Testing"
  ],
  "$type": "site.standard.document",
  "title": "Undecided...",
  "labels": {
    "$type": "com.atproto.label.defs#selfLabels",
    "values": [
      {
        "val": "sexual"
      }
    ]
  },
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here..."
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Experimenting with Blocks"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 13,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "BlueSky Embed"
      },
      {
        "$type": "blog.pckt.block.blueskyEmbed",
        "postRef": {
          "cid": "bafyreihzzjgmxenygfjbql7dwmvhxboqwgzhqctk5ejqydcbbb6vyptt3i",
          "uri": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/app.bsky.feed.post/3meka7lajvs2d"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Quote"
      },
      {
        "$type": "blog.pckt.block.blockquote",
        "content": [
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "Sharing my sexuality - it's just what I do!"
          },
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "- Valerie Rayne"
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 7,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Gallery"
      },
      {
        "ref": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/blog.pckt.gallery/3mfb7vx6cpeix",
        "$type": "blog.pckt.block.gallery"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 36,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Unordered Lists (aka My Other Blogs)"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 55,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Writes - https://valerierayne.leaflet.pub"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 24,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 68,
                      "byteStart": 27
                    },
                    "features": [
                      {
                        "uri": "https://eroticabyvalerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Erotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub "
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 62,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerieraynesmokes.worpress.com",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Smokes - https://valerieraynesmokes.worpress.com"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 12,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Single Image"
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "1000021773.png",
          "src": "blob:bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy",
          "blob": {
            "ref": {
              "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
            },
            "size": 158494,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 9,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Task List"
      },
      {
        "$type": "blog.pckt.block.taskList",
        "content": [
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": true,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Experiment with blocks on pckt"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Decide what this blog is going to be..."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Write the first real post"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Tell people about this new blogging platform..."
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Table"
      },
      {
        "$type": "blog.pckt.block.table",
        "content": [
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "BlueSky"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "LoyalFans"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "Fansly"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://bsky.app/profile/valerierayne13.bsky.social",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn.bsky.app/img/banner/plain/did:plc:pxxvg3q7gbzlbsdxbx6353wh/bafkreiatfbi2xgwfeq64k3vc4axncmxpscbgpetawesnladuzlpyopjwey@jpeg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://loyalfans.com/ValerieRayne",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn-static.loyalfans.com/loyalfans.jpg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://fansly.com/ValerieRayne13",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://fansly.com/assets/images/twitter-card-image.png"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "So now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 47,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "P.S. This post will be deleted once I decide..."
      }
    ]
  },
  "updatedAt": "2026-02-20T04:30:24+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
    },
    "size": 158494,
    "$type": "blob",
    "mimeType": "image/webp"
  },
  "description": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛 I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from...",
  "publishedAt": "2026-02-20T03:58:24+00:00",
  "textContent": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛\nI've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here...\nExperimenting with Blocks\nBlueSky Embed\nQuote\nSharing my sexuality - it's just what I do!- Valerie Rayne\nGallery\nUnordered Lists (aka My Other Blogs)\nValerie Rayne Writes - https://valerierayne.leaflet.pub\nErotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub \nValerie Rayne Smokes - https://valerieraynesmokes.worpress.com\nSingle Image\nTask List\nExperiment with blocks on pckt\nDecide what this blog is going to be...\nWrite the first real post\nTell people about this new blogging platform...\nTable\nBlueSkyLoyalFansFansly\nSo now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?\nP.S. This post will be deleted once I decide..."
}

did:plc:pxxvg3q7gbzlbsdxbx6353wh | at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.document/3mfb7rghi22ma

blog.pckt.block.taskItem (nested within site.standard.document) (2 samples)
{
  "path": "/undecided-b8nqcy2",
  "site": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.publication/3m5k77w2ne24u",
  "tags": [
    "Pinned",
    "Testing"
  ],
  "$type": "site.standard.document",
  "title": "Undecided...",
  "labels": {
    "$type": "com.atproto.label.defs#selfLabels",
    "values": [
      {
        "val": "sexual"
      }
    ]
  },
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here..."
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Experimenting with Blocks"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 13,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "BlueSky Embed"
      },
      {
        "$type": "blog.pckt.block.blueskyEmbed",
        "postRef": {
          "cid": "bafyreihzzjgmxenygfjbql7dwmvhxboqwgzhqctk5ejqydcbbb6vyptt3i",
          "uri": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/app.bsky.feed.post/3meka7lajvs2d"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Quote"
      },
      {
        "$type": "blog.pckt.block.blockquote",
        "content": [
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "Sharing my sexuality - it's just what I do!"
          },
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "- Valerie Rayne"
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 7,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Gallery"
      },
      {
        "ref": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/blog.pckt.gallery/3mfb7vx6cpeix",
        "$type": "blog.pckt.block.gallery"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 36,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Unordered Lists (aka My Other Blogs)"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 55,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Writes - https://valerierayne.leaflet.pub"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 24,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 68,
                      "byteStart": 27
                    },
                    "features": [
                      {
                        "uri": "https://eroticabyvalerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Erotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub "
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 62,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerieraynesmokes.worpress.com",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Smokes - https://valerieraynesmokes.worpress.com"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 12,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Single Image"
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "1000021773.png",
          "src": "blob:bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy",
          "blob": {
            "ref": {
              "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
            },
            "size": 158494,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 9,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Task List"
      },
      {
        "$type": "blog.pckt.block.taskList",
        "content": [
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": true,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Experiment with blocks on pckt"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Decide what this blog is going to be..."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Write the first real post"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Tell people about this new blogging platform..."
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Table"
      },
      {
        "$type": "blog.pckt.block.table",
        "content": [
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "BlueSky"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "LoyalFans"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "Fansly"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://bsky.app/profile/valerierayne13.bsky.social",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn.bsky.app/img/banner/plain/did:plc:pxxvg3q7gbzlbsdxbx6353wh/bafkreiatfbi2xgwfeq64k3vc4axncmxpscbgpetawesnladuzlpyopjwey@jpeg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://loyalfans.com/ValerieRayne",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn-static.loyalfans.com/loyalfans.jpg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://fansly.com/ValerieRayne13",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://fansly.com/assets/images/twitter-card-image.png"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "So now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 47,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "P.S. This post will be deleted once I decide..."
      }
    ]
  },
  "updatedAt": "2026-02-20T04:30:24+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
    },
    "size": 158494,
    "$type": "blob",
    "mimeType": "image/webp"
  },
  "description": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛 I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from...",
  "publishedAt": "2026-02-20T03:58:24+00:00",
  "textContent": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛\nI've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here...\nExperimenting with Blocks\nBlueSky Embed\nQuote\nSharing my sexuality - it's just what I do!- Valerie Rayne\nGallery\nUnordered Lists (aka My Other Blogs)\nValerie Rayne Writes - https://valerierayne.leaflet.pub\nErotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub \nValerie Rayne Smokes - https://valerieraynesmokes.worpress.com\nSingle Image\nTask List\nExperiment with blocks on pckt\nDecide what this blog is going to be...\nWrite the first real post\nTell people about this new blogging platform...\nTable\nBlueSkyLoyalFansFansly\nSo now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?\nP.S. This post will be deleted once I decide..."
}

did:plc:pxxvg3q7gbzlbsdxbx6353wh | at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.document/3mfb7rghi22ma

blog.pckt.block.taskList (nested within site.standard.document) (2 samples)
{
  "path": "/undecided-b8nqcy2",
  "site": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.publication/3m5k77w2ne24u",
  "tags": [
    "Pinned",
    "Testing"
  ],
  "$type": "site.standard.document",
  "title": "Undecided...",
  "labels": {
    "$type": "com.atproto.label.defs#selfLabels",
    "values": [
      {
        "val": "sexual"
      }
    ]
  },
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here..."
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.heading",
        "level": 2,
        "plaintext": "Experimenting with Blocks"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 13,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "BlueSky Embed"
      },
      {
        "$type": "blog.pckt.block.blueskyEmbed",
        "postRef": {
          "cid": "bafyreihzzjgmxenygfjbql7dwmvhxboqwgzhqctk5ejqydcbbb6vyptt3i",
          "uri": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/app.bsky.feed.post/3meka7lajvs2d"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Quote"
      },
      {
        "$type": "blog.pckt.block.blockquote",
        "content": [
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "Sharing my sexuality - it's just what I do!"
          },
          {
            "$type": "blog.pckt.block.text",
            "plaintext": "- Valerie Rayne"
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 7,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Gallery"
      },
      {
        "ref": "at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/blog.pckt.gallery/3mfb7vx6cpeix",
        "$type": "blog.pckt.block.gallery"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 36,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Unordered Lists (aka My Other Blogs)"
      },
      {
        "$type": "blog.pckt.block.bulletList",
        "content": [
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 55,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Writes - https://valerierayne.leaflet.pub"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 24,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 68,
                      "byteStart": 27
                    },
                    "features": [
                      {
                        "uri": "https://eroticabyvalerierayne.leaflet.pub",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Erotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub "
              }
            ]
          },
          {
            "$type": "blog.pckt.block.listItem",
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "facets": [
                  {
                    "index": {
                      "byteEnd": 20,
                      "byteStart": 0
                    },
                    "features": [
                      {
                        "$type": "blog.pckt.richtext.facet#italic"
                      }
                    ]
                  },
                  {
                    "index": {
                      "byteEnd": 62,
                      "byteStart": 23
                    },
                    "features": [
                      {
                        "uri": "https://valerieraynesmokes.worpress.com",
                        "$type": "blog.pckt.richtext.facet#link"
                      }
                    ]
                  }
                ],
                "plaintext": "Valerie Rayne Smokes - https://valerieraynesmokes.worpress.com"
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 12,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Single Image"
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "1000021773.png",
          "src": "blob:bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy",
          "blob": {
            "ref": {
              "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
            },
            "size": 158494,
            "$type": "blob",
            "mimeType": "image/webp"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 9,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Task List"
      },
      {
        "$type": "blog.pckt.block.taskList",
        "content": [
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": true,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Experiment with blocks on pckt"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Decide what this blog is going to be..."
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Write the first real post"
              }
            ]
          },
          {
            "$type": "blog.pckt.block.taskItem",
            "checked": false,
            "content": [
              {
                "$type": "blog.pckt.block.text",
                "plaintext": "Tell people about this new blogging platform..."
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 5,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#bold"
              }
            ]
          }
        ],
        "plaintext": "Table"
      },
      {
        "$type": "blog.pckt.block.table",
        "content": [
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "BlueSky"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "LoyalFans"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": "Fansly"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://bsky.app/profile/valerierayne13.bsky.social",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn.bsky.app/img/banner/plain/did:plc:pxxvg3q7gbzlbsdxbx6353wh/bafkreiatfbi2xgwfeq64k3vc4axncmxpscbgpetawesnladuzlpyopjwey@jpeg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://loyalfans.com/ValerieRayne",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://cdn-static.loyalfans.com/loyalfans.jpg"
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "src": "https://fansly.com/ValerieRayne13",
                    "$type": "blog.pckt.block.website",
                    "attrs": [],
                    "previewImage": "https://fansly.com/assets/images/twitter-card-image.png"
                  }
                ]
              }
            ]
          },
          {
            "$type": "blog.pckt.block.tableRow",
            "content": [
              {
                "$type": "blog.pckt.block.tableHeader",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              },
              {
                "$type": "blog.pckt.block.tableCell",
                "attrs": {
                  "colspan": 1,
                  "rowspan": 1
                },
                "content": [
                  {
                    "$type": "blog.pckt.block.text",
                    "plaintext": ""
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "So now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?"
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 47,
              "byteStart": 0
            },
            "features": [
              {
                "$type": "blog.pckt.richtext.facet#italic"
              }
            ]
          }
        ],
        "plaintext": "P.S. This post will be deleted once I decide..."
      }
    ]
  },
  "updatedAt": "2026-02-20T04:30:24+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreib5ppzyq5o2s2hg7mzywdzlxlwllvart7xoxmurofwvkjrfwobkmy"
    },
    "size": 158494,
    "$type": "blob",
    "mimeType": "image/webp"
  },
  "description": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛 I've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from...",
  "publishedAt": "2026-02-20T03:58:24+00:00",
  "textContent": "I have yet to decide what I want to do with this blog, even though I have ideas... I have multiple Leaflet publications, I have multiple WordPress blogs, I have active profiles just about everywhere and I really don't need another blog - but I want one 😛\nI've been busy experimenting with all the new ATproto tools and this is another one on the list! So, for now, I'm just experimenting with the blocks available on pckt and hopefully it'll give me some inspiration and direction of where to go from here. You could also tell me what you'd like to see here...\nExperimenting with Blocks\nBlueSky Embed\nQuote\nSharing my sexuality - it's just what I do!- Valerie Rayne\nGallery\nUnordered Lists (aka My Other Blogs)\nValerie Rayne Writes - https://valerierayne.leaflet.pub\nErotica by Valerie Rayne - https://eroticabyvalerierayne.leaflet.pub \nValerie Rayne Smokes - https://valerieraynesmokes.worpress.com\nSingle Image\nTask List\nExperiment with blocks on pckt\nDecide what this blog is going to be...\nWrite the first real post\nTell people about this new blogging platform...\nTable\nBlueSkyLoyalFansFansly\nSo now that we've experimented and played, what should this blog be about? Photo blog? Highlights of my favorite BlueSky posts? Livestream announcements and recaps? Poetry and songs? Just a daily journal? Give me some ideas, give me some direction, what do you think?\nP.S. This post will be deleted once I decide..."
}

did:plc:pxxvg3q7gbzlbsdxbx6353wh | at://did:plc:pxxvg3q7gbzlbsdxbx6353wh/site.standard.document/3mfb7rghi22ma

blog.pckt.block.text (nested within site.standard.document) (35 samples)
{
  "path": "/untitled-zb42dj6",
  "site": "at://did:plc:nibxl6shka245hviwn54fbvd/site.standard.publication/3mhlsakjsno3b",
  "tags": [],
  "$type": "site.standard.document",
  "title": "Untitled",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "what's all this, then?"
      }
    ]
  },
  "updatedAt": "2026-03-21T19:46:12+00:00",
  "description": "what's all this, then?",
  "publishedAt": "2026-03-21T19:46:04+00:00",
  "textContent": "what's all this, then?"
}

did:plc:nibxl6shka245hviwn54fbvd | at://did:plc:nibxl6shka245hviwn54fbvd/site.standard.document/3mhlsapmnz6yy

blog.pckt.block.website (nested within site.standard.document) (2 samples)
{
  "path": "/-h9cst4e",
  "site": "at://did:plc:4kzexuq4xieuarc3q6lmkeou/site.standard.publication/3mg767qzozj2r",
  "tags": [
    "osanpo-camera",
    "photography",
    "flickr",
    "bike",
    "seaside"
  ],
  "$type": "site.standard.document",
  "title": "中海周遊サイクリングコース",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "54618565306_8de09666a9_o.jpg",
          "src": "blob:bafkreia6ysqj477jj3ogezapossf6rhrgt7ovkohg4n3pmuxptu5nek7p4",
          "blob": {
            "ref": {
              "$link": "bafkreia6ysqj477jj3ogezapossf6rhrgt7ovkohg4n3pmuxptu5nek7p4"
            },
            "size": 978902,
            "$type": "blob",
            "mimeType": "image/jpeg"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 79,
              "byteStart": 29
            },
            "features": [
              {
                "uri": "https://www.flickr.com/photos/spiegel/54618565306/",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Taken on 2025-07-28, Flickr: https://www.flickr.com/photos/spiegel/54618565306/"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "島根県と鳥取県を跨ぐ中海は実際には汽水湖で,島根県の一級河川,斐伊川水系の一部である。この中海をぐるっと巡るコースが「中海周遊サイクリングコース」で,全長72kmほどの道のりである。"
      },
      {
        "src": "https://www.kankou-shimane.com/cycling/cyclingroute/nakaumi/",
        "$type": "blog.pckt.block.website",
        "attrs": [],
        "title": "中海周遊サイクリングコース",
        "description": "しまねサイクリングNavi 公式サイト"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "私は脚力も体力も心もとないのとコース中に通称「ベタ踏み坂」とよばれる江島大橋があるため,それ以外のコースの一部を楽しむ程度だが。"
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "54725811028_d302f60e77_o.jpg",
          "src": "blob:bafkreiava2syfjzakmtlrolnw37a64hyxodrjn7x6a3um427bopyppngiu",
          "blob": {
            "ref": {
              "$link": "bafkreiava2syfjzakmtlrolnw37a64hyxodrjn7x6a3um427bopyppngiu"
            },
            "size": 461032,
            "$type": "blob",
            "mimeType": "image/jpeg"
          },
          "align": "center"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "facets": [
          {
            "index": {
              "byteEnd": 79,
              "byteStart": 29
            },
            "features": [
              {
                "uri": "https://www.flickr.com/photos/spiegel/54725811028/",
                "$type": "blog.pckt.richtext.facet#link"
              }
            ]
          }
        ],
        "plaintext": "Taken on 2025-08-17, Flickr: https://www.flickr.com/photos/spiegel/54725811028/"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "(急勾配に見えるが実際には5%ほどで歩道もしっかりしてるため徒歩でも自転車でも渡れる。ただ距離が長い)"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "松江市内はこういったサイクリングコースが多く,スポーツサイクルのレンタルも盛んである。観光の折にはこういったものに挑戦するのもよいだろう(宣伝)"
      },
      {
        "$type": "blog.pckt.block.horizontalRule"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "同じものを Leaflet にも投稿しています。"
      },
      {
        "src": "https://spiegel.leaflet.pub/3mgcaleiynk2j",
        "$type": "blog.pckt.block.website",
        "title": "中海周遊サイクリングコース - お散歩カメラ",
        "description": "松江市内はこういったサイクリングコースが多く,スポーツサイクルのレンタルも盛んである。",
        "previewImage": "https://pckt-blog-media.s3.us-east-2.amazonaws.com/images/122f8c36-00cd-486d-8900-a0ebd43d48e0/opengraph-image.jpeg"
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": ""
      }
    ]
  },
  "updatedAt": "2026-03-21T09:43:46+00:00",
  "coverImage": {
    "ref": {
      "$link": "bafkreia6ysqj477jj3ogezapossf6rhrgt7ovkohg4n3pmuxptu5nek7p4"
    },
    "size": 978902,
    "$type": "blob",
    "mimeType": "image/jpeg"
  },
  "description": "Taken on 2025-07-28, Flickr: https://www.flickr.com/photos/spiegel/54618565306/ 島根県と鳥取県を跨ぐ中海は実際には汽水湖で,島根県の一級河川,斐伊川水系の一部である。この中海をぐるっと巡るコースが「中海周遊サイクリングコース」で,全長72kmほどの道のりである。 私は脚力も体力も心もとないのとコース中に通称「ベタ踏み坂」とよばれる江島大橋があるため,それ以外のコースの一部を楽しむ程度だが。",
  "publishedAt": "2026-03-05T08:30:57+00:00",
  "textContent": "Taken on 2025-07-28, Flickr: https://www.flickr.com/photos/spiegel/54618565306/\n島根県と鳥取県を跨ぐ中海は実際には汽水湖で,島根県の一級河川,斐伊川水系の一部である。この中海をぐるっと巡るコースが「中海周遊サイクリングコース」で,全長72kmほどの道のりである。\n私は脚力も体力も心もとないのとコース中に通称「ベタ踏み坂」とよばれる江島大橋があるため,それ以外のコースの一部を楽しむ程度だが。\nTaken on 2025-08-17, Flickr: https://www.flickr.com/photos/spiegel/54725811028/\n(急勾配に見えるが実際には5%ほどで歩道もしっかりしてるため徒歩でも自転車でも渡れる。ただ距離が長い)\n松江市内はこういったサイクリングコースが多く,スポーツサイクルのレンタルも盛んである。観光の折にはこういったものに挑戦するのもよいだろう(宣伝)\n同じものを Leaflet にも投稿しています。"
}

did:plc:4kzexuq4xieuarc3q6lmkeou | at://did:plc:4kzexuq4xieuarc3q6lmkeou/site.standard.document/3mgcf2qxofybu

blog.pckt.content (nested within site.standard.document) (6 samples)
{
  "path": "/test-post-qz5u9a9",
  "site": "at://did:plc:egm733cqvdvzzvo2r5cezb7g/site.standard.publication/3mhj7wazvfzih",
  "tags": [],
  "$type": "site.standard.document",
  "title": "Test post",
  "content": {
    "$type": "blog.pckt.content",
    "items": [
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "Oh this is fun "
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": ""
      },
      {
        "$type": "blog.pckt.block.image",
        "attrs": {
          "alt": "IMG_2320.jpg",
          "src": "blob:bafkreibtnh32pagy2sngomifafcyvu442dcksnulwidpwtrvxubgbh37iy",
          "blob": {
            "ref": {
              "$link": "bafkreibtnh32pagy2sngomifafcyvu442dcksnulwidpwtrvxubgbh37iy"
            },
            "size": 322011,
            "$type": "blob",
            "mimeType": "image/jpeg"
          },
          "align": "center",
          "width": "500"
        }
      },
      {
        "$type": "blog.pckt.block.text",
        "plaintext": "My cute kitty, Coltrane! "
      }
    ]
  },
  "updatedAt": "2026-03-20T19:15:46+00:00",
  "description": "Oh this is fun My cute kitty, Coltrane!",
  "publishedAt": "2026-03-20T19:12:57+00:00",
  "textContent": "Oh this is fun \nMy cute kitty, Coltrane!"
}

did:plc:egm733cqvdvzzvo2r5cezb7g | at://did:plc:egm733cqvdvzzvo2r5cezb7g/site.standard.document/3mhj7wknuae7q

Lexicon Garden

@