pub.leaflet.document

leaflet.pub

Samples

1137 randomly sampled records from the AT Protocol firehose

pub.leaflet.document (100 samples)
{
  "tags": [
    "weekly planet",
    "china",
    "artificial intelligence"
  ],
  "$type": "pub.leaflet.document",
  "pages": [
    {
      "id": "019abcea-0af3-7ee6-9c92-e9e8eb7423d9",
      "$type": "pub.leaflet.pages.linearDocument",
      "blocks": [
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.blockquote",
            "facets": [],
            "plaintext": "This is the very last post of the year. The Daily Planet will be back in 2026, though I am not sure when. I am going to take a long break, and will be back no later than the end of Feb. And the topics are going to change dramatically when I do so. Happy New Year!"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.image",
            "image": {
              "ref": {
                "$link": "bafkreievxwyw7cfpraii2nlfiryfqmfuumfilmzaynv7nwya2a3ojlgahi"
              },
              "size": 7328200,
              "$type": "blob",
              "mimeType": "image/png"
            },
            "aspectRatio": {
              "width": 2816,
              "height": 1536
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "When UBTech robots walked onto the factory floor at Zeekr's electric vehicle plant in March 2025, they did something no humanoid robots had done before: they worked as a coordinated team, lifting boxes, assembling car parts, and performing quality checks - all without human supervision. Powered by DeepSeek's reasoning model, these machines represented more than a manufacturing curiosity. They embodied a fundamentally different vision of artificial intelligence, one that may reshape the global technology competition in ways Silicon Valley hasn't fully grasped."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 616,
                  "byteStart": 457
                },
                "features": [
                  {
                    "uri": "https://carnegieendowment.org/research/2025/11/embodied-ai-china-smart-robots?lang=en&utm_source=carnegieemail&utm_medium=email&utm_campaign=announcement&mkt_tok=ODEzLVhZVS00MjIAAAGeW1ys4o3oh8xtCF65cW6Edl3VwN1QLyB1-d60IfKbSDpUcvGVcUAHtaz0fgy6Mki2vjUTZ7j89YU_d_4TJbolq1emUPGEJjEE35w437TpN4LY",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "While American tech companies pour hundreds of billions of dollars into data centers and language models, chasing the dream of artificial general intelligence through ever-larger neural networks, China has placed a different bet. Beijing believes that true AI dominance will come not from systems that generate text and images, but from systems capable of autonomous operation in the physical world - AI-powered robotics that can perceive, decide, and act. This is embodied AI, and understanding China's strategic commitment to it reveals a radically different approach to the technology that may define this century."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "The Real Economy, the Real Bet"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "To understand China's AI strategy, you must first understand Xi Jinping's economic philosophy. Since becoming party general secretary in 2012, Xi has repeatedly emphasized that the \"real economy\" - the production of tangible goods and essential services in the physical world - constitutes the foundation of China's economic strength. This conviction was shaped partly by the 2008 global financial crisis, which exposed the risks of excessive reliance on the \"virtual economy\" of financial services and digital platforms. For Xi, deep integration of digital technology with the real economy represents the key to China's long-term growth."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "When DeepSeek's R1 model shocked global markets in January 2025, demonstrating that Chinese AI capabilities had matured dramatically, the party concluded that the time had come to translate AI into the real economy. This wasn't just about keeping pace with American tech giants. It was about addressing China's most pressing domestic challenges: an economy slowing after decades of rapid growth, a property-market crisis, sluggish domestic consumption, and the beginnings of population decline. Embodied AI - robots that work alongside humans in factories, drones that survey infrastructure, autonomous vehicles that navigate cities - offered a path to revitalize productivity while solving practical problems."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 114,
                  "byteStart": 0
                },
                "features": [
                  {
                    "uri": "https://www.bjreview.com/China/202511/t20251103_800420927.html",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "The Fourth Plenary Session of the 20th Communist Party Central Committee, held in October 2025, made this official. The session outlined China's 15th Five-Year Plan for 2026-2030, identifying embodied AI alongside biomanufacturing, quantum technologies, and 6G as core tools for building the industries of the future. Premier Li Qiang's keynote at the World AI Conference in July 2025 highlighted embodied AI alongside large language models as areas experiencing major breakthroughs. The message was unmistakable: Beijing intends embodied AI to be a defining technology of China's future."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "A Different Path to Intelligence"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "The contrast with American AI development is striking. In Silicon Valley, the dominant conviction holds that artificial general intelligence will emerge from scaling up language models - that money converts reliably to compute, which converts to capability, and that AGI is merely a matter of investment. This semi-religious belief shapes investment decisions and market expectations, sustaining valuations for companies betting everything on the next breakthrough in text generation."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 793,
                  "byteStart": 771
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "Chinese AI communities haven't caught the same fever. The intellectual canon shaping Chinese entrepreneurs differs fundamentally from the one circulating in San Francisco. Where American founders read Peter Thiel alongside rationalist blogs speculating about superintelligence, their Chinese counterparts blend Western business classics with the \"Red Canon\" of political texts - Mao's selected works, Xi's writings on governance - that provide tactical guidance on organizational mobilization and survival in fiercely competitive markets. This is complemented by the \"Grey Canon\" of classical Chinese philosophy: Confucius on hierarchy and duty, Laozi on adaptability, Han Feizi on power and incentives. Literary works like Jin Yong's martial-arts novels and Liu Cixin's The Three-Body Problem offer frameworks for thinking about loyalty, strategy, and geopolitics in a hostile universe."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "This produces a distinctly different approach to AI development, one less focused on metaphysical speculation about superintelligence and more grounded in practical applications aligned with national strategic goals. Leading Chinese AI scientists like Zhang Bo of the Chinese Academy of Sciences have argued that while large language models laid a crucial foundation for AGI by enabling machines to understand and generate language, embodied AI will ultimately allow AI to replicate the full spectrum of human capabilities. The reasoning is straightforward: systems that interact with and learn from the physical world have access to limitless data, can learn autonomously, and can share knowledge between agents - conditions ideal for intelligence to emerge."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "Learning on the Factory Floor"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 231,
                  "byteStart": 204
                },
                "features": [
                  {
                    "uri": "https://www.forbes.com/sites/viviantoh/2025/09/26/chinas-android-for-robots-and-the-race-for-embodied-ai-supremacy/",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "The philosophical divide manifests in how robots are actually being developed. China is taking a bold, fast-paced approach by deploying large numbers of robots directly into real-world environments. This \"learn-on-the-job\" strategy allows machines to gather vast amounts of real-world data, which is then used to continuously improve their artificial intelligence. Companies like Unitree and Agibot are leading this effort, with Agibot offering an open-source operating system called Lingqu OS to encourage collaboration across the industry. By flooding the market with task-specific robots, China creates a massive, living laboratory that accelerates progress through collective learning and rapid iteration."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "American companies, by contrast, are adopting a more cautious and controlled approach. Google and Meta focus on developing robot intelligence in simulated, controlled environments before deploying machines in the real world. This method prioritizes precision, safety, and reliability, aiming to perfect cognitive abilities in the lab to avoid costly failures or public mistrust. Google maintains closed, proprietary systems to protect its innovations, while Meta uses virtual platforms to train robots before any real-world exposure."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "The tradeoffs are real. The American approach ensures more refined and dependable robots but limits exposure to the unpredictable challenges of actual environments. The Chinese approach accepts messier performance in exchange for rapid data collection and iterative improvement. Which strategy will prove superior remains to be seen - but the Chinese method aligns with Beijing's broader philosophy of moving fast, learning from mistakes, and scaling aggressively."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "The Playbook in Action"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 55,
                  "byteStart": 0
                },
                "features": [
                  {
                    "uri": "https://cset.georgetown.edu/article/chinas-artificial-general-intelligence/",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "China's development strategy follows a familiar pattern: encourage local governments to experiment, then scale the most successful approaches nationally. This \"pilot first, scale later\" method dates back to Deng Xiaoping's special economic zones in the 1980s and has proven remarkably effective for technologies from electric vehicles to digital currency."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Different provinces are now specializing in different segments of the embodied AI supply chain. Beijing, home to the chip developer Cambricon, has prioritized high-performance AI chips tailored for embodied applications. Shanghai, headquarters of the sensor company Hesai Technology, concentrates on core hardware components. Guangdong and Zhejiang - home to UBTech Robotics and Unitree Robotics respectively - focus on complete humanoid robotic platforms. Hubei province has established a laboratory for embodied intelligence technology in automobiles, leveraging the resources of local manufacturer Dongfeng Motor."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "The funding is substantial. Beijing has launched a 100 billion yuan investment fund with a fifteen-year lifespan to support AI and robotics. Shanghai has established an embodied AI fund with initial funding of 560 million yuan. These investments are building an ecosystem of national champions: Unitree and UBTech in humanoid robotics, DJI in drones, Baidu Apollo and XPeng in autonomous vehicles."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "Agentic AI and the Lexicon of Action"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 57,
                  "byteStart": 0
                },
                "features": [
                  {
                    "uri": "https://digichina.stanford.edu/work/lexicon-how-china-talks-about-agentic-ai/",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "Beyond robotics, China is advancing rapidly in agentic AI - systems capable of taking autonomous actions rather than simply generating responses. In March 2025, the Singapore-based firm backed by Tencent released Manus, an agentic system that reviewers described as \"mind-blowing, redefining what's possible.\" The same month, Beijing-based Zhipu AI launched AutoGLM-Rumination, claiming state-of-the-art performance on agent benchmarks. Alibaba, ByteDance, and Tencent have all released their own agentic frameworks."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 179,
                  "byteStart": 172
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 253,
                  "byteStart": 233
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "The proliferation of terminology in Chinese discussions reveals a technology still finding its conceptual footing. Some terms emphasize the AI acting on someone's behalf - dàilǐ, meaning agent or proxy. Others emphasize autonomy - zìzhǔ zhìnéngtǐ, autonomous intelligent entity. The China Academy of Information and Communications Technology has released standards focusing on technical capabilities, safety, reliability, and controllability. The government is working to balance rapid innovation with risk management—encouraging development while ensuring systems remain under human control."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "Strategic Advantages and Vulnerabilities"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "China's comparative advantages in embodied AI are significant. Its robust manufacturing base and comprehensive supply chains position it to rapidly scale production once the technology matures. The country leads in LiDAR sensor technology essential for 3D mapping and environmental navigation. Most importantly, China possesses vast real-world data from its hundreds of thousands of factories—the living laboratories where robots are being trained."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "But vulnerabilities remain. China still trails in access to advanced AI chips for training and inference. Some critical sensors, like high-precision torque and force sensors, still rely on Western imports. And the devolved, local-government-driven development strategy risks duplication and waste—a pattern seen in the electric vehicle sector, where fierce inter-provincial competition produced staggering overcapacity even as it generated technological breakthroughs."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "The Long Game"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Beijing's bet on embodied AI serves multiple strategic goals. Domestically, it could boost productivity in manufacturing and logistics, addressing the economic slowdown. It could provide eldercare services for an aging population, easing the burden on working-age individuals. Militarily, embodied AI systems could enable autonomous warfare with unprecedented resilience to electronic interference - not mere order-executors, but commander-fighters capable of real-time tactical decisions."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Geoeconomically, if China becomes the world's leading supplier of embodied AI systems, it could create dependence on Chinese technology that surpasses reliance on 5G networks or solar panels. Beijing has already begun laying institutional groundwork for global diffusion through its Global AI Governance Action Plan and the newly proposed World AI Cooperation Organization."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 50,
                  "byteStart": 0
                },
                "features": [
                  {
                    "uri": "https://www.the-innovation.org/article/doi/10.59717/j.xinn-inform.2025.100008",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "And if embodied AI ultimately holds the key to AGI - intelligence emerging from grounded interaction with reality rather than statistical patterns in text—China could gain a decisive edge in the frontier AI competition with the United States."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "What the Shock Means"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "The China shock in AI is not primarily about who builds the best chatbot. It's about two civilizations making fundamentally different bets on what intelligence is and how it should be developed. Silicon Valley is betting on scale and abstraction - that enough compute and enough data will produce general intelligence in digital form. Beijing is betting on embodiment and integration - that intelligence emerges from acting in the world, and that AI's value lies in transforming the real economy."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "The outcome will shape not only the trajectory of artificial intelligence but also the balance of economic and military power in the decades ahead. China's vision may prove correct: that the path to AGI runs through factory floors and delivery routes rather than data centers and language models. Or the American bet on scaling may eventually pay off, producing the breakthrough that renders embodied approaches obsolete."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Either way, we are witnessing a genuine civilizational divergence in how to approach the most consequential technology of our time. The China shock is not just about competition. It's about two different answers to the question of what artificial intelligence is for—and what kind of future it should build."
          }
        }
      ]
    }
  ],
  "title": "The Weekly Planet #19: The China Shock, Part 3: AI.",
  "author": "did:plc:f5bi3qiwfdxnlbvb44oudmrv",
  "postRef": {
    "cid": "bafyreib4i7zaffpji2jucrjcnpi44r7jevclqht47cuak34pwd2jlu4jpm",
    "uri": "at://did:plc:f5bi3qiwfdxnlbvb44oudmrv/app.bsky.feed.post/3mb2z2yljqs24",
    "commit": {
      "cid": "bafyreibharibu5gzrlp2lybqbg7tmtccd4mhjpad66d3uj2se35upu6a2q",
      "rev": "3mb2z2yoiin2z"
    },
    "validationStatus": "valid"
  },
  "description": "",
  "publication": "at://did:plc:f5bi3qiwfdxnlbvb44oudmrv/pub.leaflet.publication/3lwgwusi37s25",
  "publishedAt": "2025-12-28T19:01:36.430Z"
}

did:plc:f5bi3qiwfdxnlbvb44oudmrv | at://did:plc:f5bi3qiwfdxnlbvb44oudmrv/pub.leaflet.document/3mb2z2rioxk24

app.bsky.feed.post (nested within pub.leaflet.document) (100 samples)
{
  "tags": [
    "jobtrail",
    "devlog"
  ],
  "$type": "pub.leaflet.document",
  "pages": [
    {
      "id": "019b2789-c1d5-7338-8a43-92acd3a49b06",
      "$type": "pub.leaflet.pages.linearDocument",
      "blocks": [
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 37,
                  "byteStart": 22
                },
                "features": [
                  {
                    "uri": "https://mlogs.leaflet.pub/3m7nirslulc25",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "So I mentioned in the previous devlog that I would make a detailed architecture post; well that just got a whole lot simpler!"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "The initial architecture"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 57,
                  "byteStart": 43
                },
                "features": [
                  {
                    "uri": "https://www.better-t-stack.dev/",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "The initial architecture was created using better-t-stack which is an amazing tool to kickstart a js monorepo. The problem with this approach is that you now have a bunch of dependencies that need to be bundled correctly (which better-t-stack already sets up) and - in my usecase - containerized to have the smallest image size."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 353,
                  "byteStart": 345
                },
                "features": [
                  {
                    "uri": "https://adonisjs.com/",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "Then came the biggest issues: mails & scheduled jobs. Don't get me wrong, there are solutions for both in Javascript ecosystem (React Email, bullmq, pgboss and more come to mind) but I felt it would add another layer of complexity the app could probably do without. So the question now became; should I just move the api layer to something like AdonisJS to have a more batteries included setup and where I could easily"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "The new architecture"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 104,
                  "byteStart": 97
                },
                "features": [
                  {
                    "uri": "https://laravel.com",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 178,
                  "byteStart": 171
                },
                "features": [
                  {
                    "uri": "https://inertiajs.com/",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 376,
                  "byteStart": 357
                },
                "features": [
                  {
                    "uri": "https://spatie.be/docs/laravel-data/v4/introduction",
                    "$type": "pub.leaflet.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "Turns out I know of a framework that has scheduling, mails, queued jobs and more out of the box: Laravel. And I can kind of keep most of my frontend code by using it with Inertia. It's not a 1:1 port by any means, though. I lose out on better-auth and orpc, having to rely on Laravel's auth system and on making the calls typesafe in another way - by using spatie/laravel-data to generate types from my DTOs."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "The new deployment strategy"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Before, I had multiple docker images that I needed to maintain:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.unorderedList",
            "children": [
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [],
                  "plaintext": "a helper that ran the migrations if/when there was something new"
                },
                "children": []
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [],
                  "plaintext": "the actual server image"
                },
                "children": []
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Each of these images needed to have different packages copied inside them for the build step and it was kind of messy - though still manageable."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Now this is not yet finalized, but I think I might be able to either have:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.unorderedList",
            "children": [
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [],
                  "plaintext": "a single image with different start commands in a docker-compose stack"
                },
                "children": []
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 79,
                        "byteStart": 68
                      },
                      "features": [
                        {
                          "uri": "https://github.com/just-containers/s6-overlay/tree/master#writing-a-service-script",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "a single image and container with more services defined inside some s6 services"
                },
                "children": []
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Anyway I'll keep you updated when all of this is finished :)"
          }
        }
      ]
    }
  ],
  "title": "Jobtrail EP 3: Laravel New'd",
  "author": "did:plc:dgtaz4vldacvqhvvmdvoc4ad",
  "postRef": {
    "cid": "bafyreic66ly6kjdgabvhmlfc2gtswb4j6tivrelkewaq7jsh7s5tnevbne",
    "uri": "at://did:plc:dgtaz4vldacvqhvvmdvoc4ad/app.bsky.feed.post/3ma4mvzpvvk22",
    "commit": {
      "cid": "bafyreiescyrydrpa5yvriu7sqr6kry23zggurybuk6wamuunapktprr57q",
      "rev": "3ma4mvzskzz2q"
    },
    "validationStatus": "valid"
  },
  "description": "",
  "publication": "at://did:plc:dgtaz4vldacvqhvvmdvoc4ad/pub.leaflet.publication/3m7iwa2i6us22",
  "publishedAt": "2025-12-16T17:04:15.370Z"
}

did:plc:dgtaz4vldacvqhvvmdvoc4ad | at://did:plc:dgtaz4vldacvqhvvmdvoc4ad/pub.leaflet.document/3ma4mvv3lsk24

app.bsky.richtext.facet (nested within pub.leaflet.document) (1 sample)
{
  "$type": "pub.leaflet.document",
  "pages": [
    {
      "$type": "pub.leaflet.pages.linearDocument",
      "blocks": [
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Body"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 29,
                  "byteStart": 0
                },
                "features": [
                  {
                    "uri": "https://bsky.network/xrpc/com.atproto.sync.getBlob?did=did:plc:iq44hcebgqaom6jvtcd3ln73&cid=bafkreihxsazqjsm3dqs34e36odw4ngeb57i6nqqyo37g3pkgje2rzsopzm",
                    "$type": "app.bsky.richtext.facet#link"
                  }
                ]
              }
            ],
            "plaintext": "🖼️ View Image attachment"
          }
        }
      ]
    }
  ],
  "title": "Hello image 2",
  "author": "did:plc:iq44hcebgqaom6jvtcd3ln73",
  "description": "",
  "publishedAt": "2026-04-17T12:54:24.692Z"
}

did:plc:iq44hcebgqaom6jvtcd3ln73 | at://did:plc:iq44hcebgqaom6jvtcd3ln73/pub.leaflet.document/3mjoxth6e2z2e

com.atproto.label.defs (nested within pub.leaflet.document) (1 sample)
{
  "$type": "pub.leaflet.document",
  "pages": [
    {
      "$type": "pub.leaflet.pages.linearDocument",
      "blocks": [
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "It was raining and Kagami was stuck at Konata’s house."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 296,
                  "byteStart": 286
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "Just hours prior it hardly looked like it would rain, the sky was as blue as it had ever been and what clouds were there did not give any indication of what was to come, and yet the showers came - creating an ambient sound that would almost have been relaxing were it not for the inane video game that was being played."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "No, clouding the tranquil sound of rain falling was a soundtrack of murder and mayhem."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Kagami was hardly one to credit Konata for her taste in video games, but this felt like a turn from what she usually got up to - a shooter game full of blood, guts, and not much else. Not that she understood Konata’s video game habits all that well to begin with, but still… she wondered if she should be concerned or not."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 257,
                  "byteStart": 250
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“So this is the new game, huh?” Kagami asked, as she could faintly recall Konata mentioning the title of an upcoming game she was gonna pick up ‘at some point.’ Judging by what she was seeing on screen, the title she was remembering at least sounded like it could’ve been the one she had now."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“Hm,” Konata replied, affirmatively, not looking away from her game."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 11,
                  "byteStart": 9
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 196,
                  "byteStart": 190
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "What was up with her? It felt sometimes like Kagami knew way more about Konata than she’d ever asked to know, entirely against her will, and yet the blue-haired otaku could be an absolute enigma when she wanted to be - leaving Kagami to wonder…"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 158,
                  "byteStart": 152
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 185,
                  "byteStart": 182
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 220,
                  "byteStart": 216
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 333,
                  "byteStart": 325
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "Konata had been picking up a lot of games, lately, so it had gotten harder for Kagami to keep track of what she was onto next. Not that she was keeping track, just… well, it was a lot of games. Konata used to have some weird sense of discernment, much as it pained Kagami to admit, but it felt like now she was just buying anything she could get her hands on as soon as she could get her hands on it."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“Been playing much of that online game lately?” Kagami asked, pivoting away from the game Konata was currently on. She just didn’t really know how to make conversation about the violence that was as senseless as it was monotonous."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“Sorta,” Konata replied, “Ms. Kuroi’s been weirdly busy, and then the rest of the party is full of schedules that never line up anymore, so I haven’t had much to do besides getting my log-in bonuses every day.”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Kagami sighed. As weird as it all was for her, even she could understand on some level that this group Konata got together with was some sort of positive thing to have in her life."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“That sucks,” she sympathized, “I guess everyone has to move on from playing the same game eventually,” she figured, eliciting a very low hum of acknowledgement from Konata, “but wasn’t there one person on your team who you were close with besides Ms. Kuroi?”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“Hm?” Konata responded, curiously."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 118,
                  "byteStart": 115
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“Yeah,” Kagami said, as the knowledge came back to her, “I think you said you had a wife? Who was a guy? But you were playing a guy, even though you’re a girl, and you were married inside the game… or something weird like that.” It felt so convoluted when she said it all back to her."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“Not anymore,” Konata corrected her, near-monotone, “‘got divorced.”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 41,
                  "byteStart": 35
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 189,
                  "byteStart": 185
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“D-divorced?! You weren’t even really married to begin wi—” Kagami started to say, before catching herself as she realized she could’ve hurt Konata’s feelings, “I mean… ugh, I’m sorry Konata,” she apologized, before offering, “do you wanna talk at all about it?”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“Not much to talk about,” Konata replied, not breaking eye contact with her game and barely modulating her voice as she spoke, “his stupid wife didn’t like it.”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 73,
                  "byteStart": 60
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 109,
                  "byteStart": 101
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“Wait… you married someone in your game who was married in real-life? Doesn’t that mean he was cheating on her with you?” questioned Kagami, a little shocked."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“They weren’t married when we got married,” Konata answered, relieving Kagami somewhat, “actually, he met her afterward. She was ok with us being married in-game until she wasn’t, he likes her more than he likes me, so yeah. Divorce.”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 50,
                  "byteStart": 42
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "It turned out the situation was the exact opposite of what Kagami assumed, and the bluntness with which Konata spoke was almost painful."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 17,
                  "byteStart": 11
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 222,
                  "byteStart": 219
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“That… really sucks…” Kagami frowned, “I mean, to go back on what she said when you weren’t even standing in the way of her relationship… it’s not like you were waiting and hoping he’d decide he liked you better, right?”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Silence."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 12,
                  "byteStart": 3
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“Konata…”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“It’s whatever,” Konata replies, conspicuously pressing the buttons on her controller more harshly. It didn’t seem like it was really ‘whatever’ and Kagami didn’t feel right letting her drop the subject that quickly."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“You don’t have t—”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“It’s fine,” Konata stopped her, before being startled as Kagami reached over her shoulder to pause the game. Finally Konata turned around, only for Kagami to put her hand on her shoulder as they at last made direct eye contact."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 21,
                  "byteStart": 16
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“It doesn’t sound fine,” Kagami told her, as the vulnerability in Konata’s depressed heart began to well up like the tears in her green eyes. She could tell it made Konata uncomfortable, but she didn’t let that stop her from holding her gaze in hers."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“You… it…” Konata began to say a couple times, until finally…"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 12,
                  "byteStart": 7
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“… Fuck,” she sobbed, not offering any resistance when Kagami pulled her into a hug. Konata could hear nothing but the rain and the sound of her own weeping, now that the game had been paused, leaving her with no more distractions."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Her escape from her feelings was foiled - despite her best efforts, she was feeling them again."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 43,
                  "byteStart": 41
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“I just wish that someone would choose me one time, y’know?” Konata admitted, her voice muffled against Kagami’s chest, “it feels like I’ve been the second-most important person, at best, to anyone I’ve met my whole life…"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 43,
                  "byteStart": 36
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“Why does there always have to be someone anyone would rather be with than me?” she wept, not knowing if there was an answer to her question or that she would even want to hear it."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Not quite sure what to say to that, Kagami rubbed her back and held her. She really wasn’t used to seeing Konata like this, it was like there was an air of irreverence surrounding everything she did and said most of the time. Did she miss that irreverence? Did she want her to feel better just so she could go back to not talking about how she felt?"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 227,
                  "byteStart": 221
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 285,
                  "byteStart": 280
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "That didn’t feel right. Despite how unserious Konata so often was, and how inscrutable she could be with her weird interests, Kagami had gotten to know her surprisingly well - to the point where she’d decide she even wanted to hang out with her. That was why she was there… wait."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“No,” Kagami responded, “that’s not true,” she told her, causing Konata to let out a questioning whimper, “if it was, I wouldn’t be here with you right now.”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“That’s really nice of you to say, Kagamin… but you wouldn’t be here if you knew it was gonna rain and you’d be stuck with me,” countered Konata, with a sad smile, the depression still convincing her of the truth of her misery."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 9,
                  "byteStart": 3
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#underline"
                  }
                ]
              }
            ],
            "plaintext": "“Forget that,” replied Kagami, “I still chose to come hang out with you and I’m not sorry I did,” she told her, “even if I’m probably ‘triggering a flag’ or whatever you’d call it.” She felt stupid saying it, but she figured it might cheer Konata up."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Konata looked back at her with those tired green eyes of hers, but no witty comeback came out. Instead, Kagami watched the sadness ever so subtly drain away from her smile. It was probably one of the most beautiful things Kagami had ever seen, but she’d never admit to it."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 119,
                  "byteStart": 115
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“You actually remembered the terminology…” was, for some reason, what Konata said back to her after what had felt like a very meaningful pause."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 16,
                  "byteStart": 8
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 160,
                  "byteStart": 155
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“Ugh, that’s your takeaway?” Kagami reacted, “You mention it often enough I’d have a hard time forgetting it, it’s practically drilled into my skull at this point,” she complained half-heartedly, though she honestly couldn’t be too mad even at Konata’s gaming nonsense in that moment."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "The incorrigible otaku nestled her face back into Kagami’s chest and relaxed, with her latest lonely battle with depression won after receiving some much-needed reinforcements. It felt good to have another person in the house again, even if she was only visiting."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“Thanks, Kagamin…” Konata said, her muffled voice coming through clearly enough, “I guess it doesn’t really matter whether you’re here by choice or not, just how you feel about it, y’know?”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“Yeah… how I feel about it…” Kagami echoed, thinking back to what went through her mind earlier that day - back when the sun was still out."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.horizontalRule"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 8,
                  "byteStart": 3
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“Sure.” That was all Konata had written when Kagami had offered to come over. She’d been meaning to spend some time with her again for a while, but one thing or another would come up and she’d have to try and find another time to go and do it. Being holed up all alone for that long couldn’t be good for her."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 59,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“God knows she’s hardly going out enough these days,” thought Kagami, as she slipped into her shoes. She was just about to head out when she heard Tsukasa call after her."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“Sis!” Tsukasa said, “Before you go, I checked the weather app on my phone and it said there was a 30% chance of rain starting this evening!”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "At that, Kagami looked outside. Barely a cloud in sight."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“Are you sure there isn’t a setting wrong with your phone, Tsukasa?” Kagami asked, skeptically. She knew she had a habit of getting deep into her phone, but she still wasn’t above the occasional bout of absentmindedness."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 204,
                  "byteStart": 191
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 316,
                  "byteStart": 311
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“No, see? It says Saitama, and it could last all night after it starts,” Tsukasa replied, showing her screen, before her phone jingled as it notified her of a new text, “ahh, wait, no, don’t look!” she squeaked, turning her phone back around and attending to whomever had messaged her. Phones had the worst timing, sometimes."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 21,
                  "byteStart": 17
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 114,
                  "byteStart": 111
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "30% wasn’t all that likely, but it gave Kagami pause. If she went out without an umbrella or raincoat and it did rain, she’d be stuck at Konata’s. Would probably have to stay there overnight, by the sound of it…"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 162,
                  "byteStart": 139
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“I’m sure it’ll be fine,” Kagami told her sister, who offered a smile and nod before getting back to tapping out her next message. “Same old Tsukasa,” she thought, as she wondered if she could find the same old Konata in the house she was visiting."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.horizontalRule"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 204,
                  "byteStart": 200
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "It took some digging, sure, but eventually she did sorta find her. They were both a bit older, some time had passed, but she could still recognize the girl whose face was planted firmly in her chest. Very firmly, actually."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 79,
                  "byteStart": 73
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 214,
                  "byteStart": 211
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“Say…” Kagami started, suspiciously, “you’ve been down there a while, y’know…” she mentioned, only to hear a giggle she hadn’t heard in a long time… and could probably have gone a bit longer not hearing, honestly."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“You’ve put on some pounds, I see,” Konata remarked, mischievously, “your boobs are fuller than usual~”"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 23,
                  "byteStart": 13
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "Yep. She had definitely found the ‘same old Konata.’ God help her, she found her."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "“I’m only letting that one slide because you’re too pathetic to hit on the head, tonight, got it?” Kagami replied."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 239,
                  "byteStart": 227
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "“If you say so, Kagamin~” sighed Konata, wrapping her arms around her in a hug that elicited what would’ve been the cutest blush Konata had ever seen on Kagami’s face… had she seen it. The boobs giveth, and the boobs taketh away."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "She was going to be stuck there the rest of the night, Kagami realized. A whole night spent with the most inscrutable and annoying person she’d ever met. That was what she’d chosen."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "With any luck, the night wouldn’t run out too quickly."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 8,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#bold"
                  }
                ]
              }
            ],
            "plaintext": "The End."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.horizontalRule"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 17,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#bold"
                  }
                ]
              }
            ],
            "plaintext": "Author’s Notes: It’s my first Lucky Star fan-fic, and it’s of course dedicated to my favorite ship of the show - KonaKaga! I know I don’t have them officially start a relationship here or kiss, but this is a KonaKaga fan-fic and you are not allowed to enjoy it while imagining it’s just platonic. If you were doing so before you reached these notes, no you didn’t! I reach into the past and steal your enjoyment away! Mwahahaha! >:D"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Something readers may notice that I am a little self-conscious of is that, for a Lucky Star fan-fic, this doesn’t really have the casual conversational vibe of the source material nor is it authentically Japanese. Lucky Star has had more dramatic parts to it, though, and I like to think I stayed true enough to the characters and setting at least."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Hope you enjoyed reading! I’d love if you shared any thoughts you had while doing so! Thanks!"
          }
        }
      ]
    }
  ],
  "title": "A Chance of Rain",
  "author": "did:plc:2atpw7zrdrdptzqo7jw63rzv",
  "labels": {
    "$type": "com.atproto.label.defs#selfLabels",
    "values": [
      {
        "val": "sexual"
      }
    ]
  },
  "description": "Kagami visits Konata while she is in the midst of withdrawing into yet another video game. What could’ve been harmless escapism has turned into something else, and it falls upon Kagami to pull her out of it.",
  "publication": "at://did:plc:2atpw7zrdrdptzqo7jw63rzv/pub.leaflet.publication/3lvroq6qmac2o",
  "publishedAt": "2025-07-30T22:03:27.969Z"
}

did:plc:2atpw7zrdrdptzqo7jw63rzv | at://did:plc:2atpw7zrdrdptzqo7jw63rzv/pub.leaflet.document/3lygpwotxqk2d

pub.leaflet.blocks.blockquote (nested within pub.leaflet.document) (59 samples)
{
  "$type": "pub.leaflet.document",
  "pages": [
    {
      "$type": "pub.leaflet.pages.linearDocument",
      "blocks": [
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "The Daily Planet #43: The Petrostate, Part 4"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.blockquote",
            "facets": [],
            "plaintext": "\" Don't study OPEC,\" Juan Pablo Perez Alfonzo told me when I sought out the founder of the Organization of Petroleum Exporting Countries (OPEC) in his home in Caracas, Venezuela, during the height of the 1970s oil boom. \" It is boring. Study what oil is doing to Venezuela, what oil is doing to KS.\""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "So starts Terry Lynn Karl's \"Paradox of Plenty.\" And we might ask that question too: what does being a petrostate do to a country? Two influences immediately come to mind:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.unorderedList",
            "children": [
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [],
                  "plaintext": "The country's main revenue stream is oil revenue (at least 50% in Saudi Arabia, and 30-35% in Russia for example) rather than tax revenue, which means that the governing class is relatively insulated from their citizens. In fact, they have the money to buy off their citizens' loyalty. That makes for authoritarian politics."
                },
                "children": []
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [],
                  "plaintext": "There's much less incentive to diversify the economy - why do so when liquid gold is on tap? It's a comparative advantage of the Petrostate, after all. Hence the 'Paradox of Plenty.' In turn, that makes the Petrostate more vulnerable to oil prices."
                },
                "children": []
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.image",
            "image": {
              "ref": {
                "$link": "bafkreia7gqsl3c52vmurqjyt7my7qhjvyeg7ihz26ojkwlxsygzzkjo4wu"
              },
              "size": 980387,
              "$type": "blob",
              "mimeType": "image/jpeg"
            },
            "aspectRatio": {
              "width": 2048,
              "height": 1364
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "and finally, there's the universal link between natural resource extraction and violence - wherever the economy is dependent on mining or oil or some other natural resource, you have both state and private interests enforcing that extraction. And that conflict is often independent of the ideological bent of the state - both right-wing and left-wing governments have gone after those protesting extraction. As today's link says:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.blockquote",
            "facets": [],
            "plaintext": "But the increasing conflict between the Correa administration and social movements demonstrates a greater diversity among the continent’s leftist projects, at times dividing governments and movements with a shared history in the struggle against privatization and fiscal austerity."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "The Correa government was seen as a radical left wing government, and yet it wasn't immune to violence (and now has added drug violence on top of oil violence)."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 27,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#highlight"
                  }
                ]
              }
            ],
            "plaintext": "Metabolism trumps ideology."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "src": "https://www.dissentmagazine.org/article/riofrancos-beyond-petrostate-ecuador-left-dilemma/",
            "$type": "pub.leaflet.blocks.website",
            "title": "Beyond the Petrostate: Ecuador's Left Dilemma - Dissent Magazine",
            "description": "In Ecuador, to oppose resource extraction is to be an enemy of the state.",
            "previewImage": {
              "ref": {
                "$link": "bafkreihef7o5dndaovhq2rhhivt6qv5jek5n6d3uqycgmaldycdxwkrsqy"
              },
              "size": 52873,
              "$type": "blob",
              "mimeType": "image/png"
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        }
      ]
    }
  ],
  "title": "The Daily Planet #43: The Petrostate, Part 4",
  "author": "did:plc:f5bi3qiwfdxnlbvb44oudmrv",
  "postRef": {
    "cid": "bafyreid7njkoq67pvy6liaczq4ksgdkspvumxp6my3w3uzdn2m5qahtniq",
    "uri": "at://did:plc:f5bi3qiwfdxnlbvb44oudmrv/app.bsky.feed.post/3m2achwtvzk2t",
    "commit": {
      "cid": "bafyreiatvdqfc55dfdapjxxwoffbgy73hcfk3i5bc5feyxrus7beopckme",
      "rev": "3m2achwxd7q2o"
    },
    "validationStatus": "valid"
  },
  "description": "",
  "publication": "at://did:plc:f5bi3qiwfdxnlbvb44oudmrv/pub.leaflet.publication/3lwgwusi37s25",
  "publishedAt": "2025-10-02T19:36:52.861Z"
}

did:plc:f5bi3qiwfdxnlbvb44oudmrv | at://did:plc:f5bi3qiwfdxnlbvb44oudmrv/pub.leaflet.document/3m2achqrs4c2t

pub.leaflet.blocks.bskyPost (nested within pub.leaflet.document) (33 samples)
{
  "$type": "pub.leaflet.document",
  "pages": [
    {
      "$type": "pub.leaflet.pages.linearDocument",
      "blocks": [
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.image",
            "image": {
              "ref": {
                "$link": "bafkreibspjr6aje7u2o6nqjpls3hcnp4t5eclwmlsf7zt7lmt4weihucca"
              },
              "size": 19873,
              "$type": "blob",
              "mimeType": "image/avif"
            },
            "aspectRatio": {
              "width": 800,
              "height": 450
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "src": "https://writing.madebydanny.uk/ios-26-1-beta-4-lets-users-control-liquid-glass-transparency-with-a-new-toggle-3f4526c14279",
            "$type": "pub.leaflet.blocks.website",
            "title": "iOS 26.1 Beta 4 Lets Users Control Liquid Glass Transparency with a new Toggle",
            "description": "Liquid Glass on, Liquid Glass off",
            "previewImage": {
              "ref": {
                "$link": "bafkreierkzkee45ajuwpbiiz5odj4hgfjvci5jpxlonw2if3ppja6y46e4"
              },
              "size": 27091,
              "$type": "blob",
              "mimeType": "image/png"
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.horizontalRule"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "The new toggle lets users pick from a “Clear” option and a “Tinted” option."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "The Clear option is enabled by default and is the classic Liquid Glass Look. The Tinted option makes everything frosted and increases the opacity of elements, giving an iOS 18 Look."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.horizontalRule"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "To get to the toggle on iOS and iPadOS, go to"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 49,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#bold"
                  }
                ]
              }
            ],
            "plaintext": "Settings > Display and Brightness > Liquid Glass"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.bskyPost",
            "postRef": {
              "cid": "bafyreihwpfjp3xgemh4xu6babtge7bx4okywtrqrd66cw3kndtdfyzfrlq",
              "uri": "at://did:plc:l37td5yhxl2irrzrgvei4qay/app.bsky.feed.post/3m3soe4nprc2d"
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "For Mac Users, the toggle can be found at"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 28,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#bold"
                  }
                ]
              }
            ],
            "plaintext": "System Settings > Appearance "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.horizontalRule"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Apple says they added this feature after user feedback suggesting that some users would prefer a more opaque option than the traditional “Liquid” effect."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.bskyPost",
            "postRef": {
              "cid": "bafyreiabalrhn4yykzmzhpqawjkxjsye2lx57m4qvek3yo5q24ac2lmpkq",
              "uri": "at://did:plc:7rfssi44thh6f4ywcl3u5nvt/app.bsky.feed.post/3m3p2huhzm22t"
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.bskyPost",
            "postRef": {
              "cid": "bafyreidfhwoyk2awoikmf67nzk4itxfn5hnknsqrqx44b2wtrws44k5hke",
              "uri": "at://did:plc:u3tf2dmdiehllhr5fuyp7z5a/app.bsky.feed.post/3m3ngrfjybc2u"
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.bskyPost",
            "postRef": {
              "cid": "bafyreicnohemflqp5wx2ymcuqphxyuyxtvnxfldpysntwbo2ond4icwd4m",
              "uri": "at://did:plc:u3tf2dmdiehllhr5fuyp7z5a/app.bsky.feed.post/3m3nhnl45ds2u"
            }
          }
        }
      ]
    }
  ],
  "title": "iOS 26.1 Beta 4 Lets Users Control Liquid Glass Transparency with a new Toggle",
  "author": "did:plc:l37td5yhxl2irrzrgvei4qay",
  "postRef": {
    "cid": "bafyreigeqcdh2tjerdl4jjipj47dosrpfb3atdtretbknjmpdjpkgergsq",
    "uri": "at://did:plc:l37td5yhxl2irrzrgvei4qay/app.bsky.feed.post/3m3qixmxpe22n",
    "commit": {
      "cid": "bafyreieouvwgf6qlgcrokh6ahwaicp6qdww4tbmbbh3ptiacztykk567fy",
      "rev": "3m3qixn4kms2u"
    },
    "validationStatus": "valid"
  },
  "description": "Liquid Glass on, Liquid Glass off",
  "publication": "at://did:plc:l37td5yhxl2irrzrgvei4qay/pub.leaflet.publication/3m3lav73ujc27",
  "publishedAt": "2025-10-21T23:40:46.050Z"
}

did:plc:l37td5yhxl2irrzrgvei4qay | at://did:plc:l37td5yhxl2irrzrgvei4qay/pub.leaflet.document/3m3qixdtjqk2n

pub.leaflet.blocks.button (nested within pub.leaflet.document) (6 samples)
{
  "$type": "pub.leaflet.document",
  "pages": [
    {
      "id": "019afc26-6afb-7882-86fd-d28ae8bdf345",
      "$type": "pub.leaflet.pages.linearDocument",
      "blocks": [
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 36,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#bold"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 68,
                  "byteStart": 36
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#bold"
                  },
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 69,
                  "byteStart": 68
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#bold"
                  }
                ]
              }
            ],
            "plaintext": "Hello everyone, and welcome back to Dialogue with Cristobal Martinez!"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.image",
            "image": {
              "ref": {
                "$link": "bafkreigdpi66rf7b56e2nhkjni5nuly43l4dcx66etsmub4cb7z2ixjqsu"
              },
              "size": 46928,
              "$type": "blob",
              "mimeType": "image/png"
            },
            "aspectRatio": {
              "width": 200,
              "height": 200
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.horizontalRule"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "When it comes to the relationship with my mother, all I can say is that the main characters who are spoiled and immature like my mom look like this:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.image",
            "image": {
              "ref": {
                "$link": "bafkreia6yc6ujynsu7uumf7vgaqh5dxkwbre3hdke4owunpnqmkri7f44m"
              },
              "size": 360474,
              "$type": "blob",
              "mimeType": "image/gif"
            },
            "aspectRatio": {
              "width": 487,
              "height": 351
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "And are wide like this:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.image",
            "image": {
              "ref": {
                "$link": "bafkreihyk27kxjwo6lc56bhccezuvxbqo6eddtbeci56oldj2cszjtok5y"
              },
              "size": 2507895,
              "$type": "blob",
              "mimeType": "image/gif"
            },
            "aspectRatio": {
              "width": 480,
              "height": 256
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "My mom thinks she's one of the greatest protagonists in the room. She's actually one of the most delusional bitches who has no self awareness, or admit that her TV show of a life is one of many on God's green television sphere."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "My mom thinks she is owed something from me and others, yet she's just spoiled as is by her parasocial relationships with creators on social media. Does she know that sitting while looking at the phone is just an activity that does no favors?"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "My mom still has a round belly, she's still diabetic, yet she's able to have access to junk food. I guess Sharesmas for her is coming in strong."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.image",
            "image": {
              "ref": {
                "$link": "bafkreie5ypidru77i544dz6sqyjmezxs7pj5x5bijw65nokwp76knhvrj4"
              },
              "size": 1737422,
              "$type": "blob",
              "mimeType": "image/gif"
            },
            "aspectRatio": {
              "width": 480,
              "height": 480
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Now I'm not a fan of the whole \"sharing is caring\" rhetoric, only a fan of self care being caring. I mean that because who expects people to share their plate, or bowl, of food or snacks? My mom expects that from me, sadly, because since I'm autistic, I should be nice, be sweet, always say yes to everything. My mom wants a yes man in her life."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Sometimes, I need to tell my mom:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 73,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "\"No, mom, you should only be eating your sugar free chocolates or candy!\""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Or:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 68,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "\"No, mom, you should only eat chips that are in YOUR plate or bowl!\""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "At this point, my mom wants me to share for the sake of sharing. I don't see sharing as sharing itself. Instead, I see sharing as more of another way of saying \"giving.\""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "That bitch needs to keep count of her calories."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.image",
            "image": {
              "ref": {
                "$link": "bafkreihmgqg2dbfefu2c43sghv7dntovrb6wza65lsc2bnrhy7qg3rg4pq"
              },
              "size": 976245,
              "$type": "blob",
              "mimeType": "image/gif"
            },
            "aspectRatio": {
              "width": 480,
              "height": 270
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.horizontalRule"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "If you enjoyed anything about this article and want to support me in any way, you can leave me a tip on my Ko-fi page. It supports my living of writing on Leaflet."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "url": "https://ko-fi.com/thisiscristobal",
            "text": "Leave me a tip on Ko-fi",
            "$type": "pub.leaflet.blocks.button"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 89,
                  "byteStart": 64
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "If you are looking for a lifestyle blog, my Leaflet publication This Month With Cristobal is available for anyone to read."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "url": "https://this-month-with-cristobal.leaflet.pub/",
            "text": "This Month With Cristobal",
            "$type": "pub.leaflet.blocks.button"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 46,
                  "byteStart": 14
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "That's it for Dialogue with Cristobal Martinez. Thank you so much for reading, and I'll catch you guys in the next one. Later!"
          }
        }
      ]
    }
  ],
  "title": "My Mom | Everyone Gets a Show When They're Born, Not Just a Delusional Mother",
  "author": "did:plc:llumonvbk6mrkn3myaxpnsje",
  "postRef": {
    "cid": "bafyreia3e6khw2v3del4mghzi6i6aq63az4kqxkg2osewnrfdnm7tyeiwu",
    "uri": "at://did:plc:llumonvbk6mrkn3myaxpnsje/app.bsky.feed.post/3m7jidgumcc2m",
    "commit": {
      "cid": "bafyreifmq7g7ceuzbx2unjmtiihm4hy2ldegztqbp2qajv24pvvkcx34vu",
      "rev": "3m7jidgxepx2n"
    },
    "validationStatus": "valid"
  },
  "description": "(THERE IS NO WE IN ME) Merry Sharesmas!",
  "publication": "at://did:plc:llumonvbk6mrkn3myaxpnsje/pub.leaflet.publication/3m2anfdxjyc2z",
  "publishedAt": "2025-12-09T02:21:39.630Z"
}

did:plc:llumonvbk6mrkn3myaxpnsje | at://did:plc:llumonvbk6mrkn3myaxpnsje/pub.leaflet.document/3m7jidadfxk2n

pub.leaflet.blocks.code (nested within pub.leaflet.document) (22 samples)
{
  "tags": [
    "atproto",
    "did",
    "security",
    "rotation-keys"
  ],
  "$type": "pub.leaflet.document",
  "pages": [
    {
      "$type": "pub.leaflet.pages.linearDocument",
      "blocks": [
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 1,
            "plaintext": "DID:PLC Rotation Keys: How the 72-Hour Recovery Window Works"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "DID:PLC uses a sophisticated key rotation system. Every account has 1-5 rotation keys that control the identity. Understanding how these keys work is essential for securing your ATProto account."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "plaintext": "Key Types and Priority"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "DID:PLC supports two elliptic curve algorithms:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.unorderedList",
            "items": [
              {
                "$type": "pub.leaflet.blocks.unorderedList#item",
                "plaintext": "secp256k1 (Bitcoin/Ethereum curve)"
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#item",
                "plaintext": "P-256 (NIST standard, YubiKey compatible)"
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "Keys are stored in priority order. Index 0 has the highest authority. Lower index means higher authority."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "A typical setup:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.code",
            "language": "text",
            "plaintext": "rotationKeys[0] = your offline backup key (highest priority)\nrotationKeys[1] = your PDS operational key (lower priority)"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "Any key can sign operations. But higher-priority keys can override operations signed by lower-priority keys."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "plaintext": "The 72-Hour Recovery Window"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "This is the core security mechanism."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "When an operation is accepted by the PLC directory, a 72-hour clock starts. During this window, a higher-priority key can submit a recovery operation that forks from before the malicious change, effectively nullifying it."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "After 72 hours, operations become final."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "plaintext": "How Recovery Works"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "Scenario: Your PDS goes rogue and removes your backup key."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.orderedList",
            "items": [
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "PDS submits operation removing your key"
              },
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "You detect this within 72 hours"
              },
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "You sign a new operation with your backup key (higher priority)"
              },
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "Your operation points to the state before the attack"
              },
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "PLC directory accepts your operation and nullifies the PDS's change"
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "The math is simple: if your key has a lower index than the attacker's key, and you act within 72 hours, you recover."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "plaintext": "Practical Security"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "Adding your own rotation key:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.code",
            "language": "typescript",
            "plaintext": "const creds = await agent.com.atproto.identity.getRecommendedDidCredentials();\nconst { token } = await agent.com.atproto.identity.requestPlcOperationSignature();\n\nawait agent.com.atproto.identity.signPlcOperation({\n  token,\n  rotationKeys: [\n    'did:key:zQ3sh...YourKey',  // Your key first (highest priority)\n    ...creds.rotationKeys        // Existing keys\n  ]\n});"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "Storage options:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.orderedList",
            "items": [
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "YubiKey (P-256) - keys never leave hardware"
              },
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "Cold storage - air-gapped, metal/paper backup"
              },
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "Password manager - convenient, lower security"
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "Best practice: Your highest-priority key should never be online."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "plaintext": "Monitoring"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "Monitor your DID for unauthorized changes:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.code",
            "language": "yaml",
            "plaintext": "# urlwatch config\nurl: \"https://plc.directory/did:plc:your_did/log/audit\"\nfilter:\n  - diff: true\n  - shell: \"jq '.[-1]'\""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "Or use the firehose:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.code",
            "language": "typescript",
            "plaintext": "firehose.on('identity', (event) => {\n  if (event.did === 'did:plc:your_did') {\n    sendAlert(event);\n  }\n});"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "plaintext": "Attack Scenarios"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "**PDS compromised:**"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.unorderedList",
            "items": [
              {
                "$type": "pub.leaflet.blocks.unorderedList#item",
                "plaintext": "If you have a higher-priority key: recoverable within 72 hours"
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#item",
                "plaintext": "If PDS key is highest priority: irrecoverable"
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "**Rotation key leaked:**"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.unorderedList",
            "items": [
              {
                "$type": "pub.leaflet.blocks.unorderedList#item",
                "plaintext": "If you have other secure keys: rotate out the leaked key within 72 hours"
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#item",
                "plaintext": "If all keys leaked: account compromised"
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "**PLC directory malicious:**"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.unorderedList",
            "items": [
              {
                "$type": "pub.leaflet.blocks.unorderedList#item",
                "plaintext": "Cannot forge signatures"
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#item",
                "plaintext": "Can reject operations (DoS)"
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#item",
                "plaintext": "Can serve wrong forks"
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#item",
                "plaintext": "Mitigation: use read replicas"
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "plaintext": "Key Takeaways"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.orderedList",
            "items": [
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "Always add your own rotation key at index 0"
              },
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "Store that key offline or in hardware"
              },
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "Monitor your DID for changes"
              },
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "You have 72 hours to recover from most attacks"
              },
              {
                "$type": "pub.leaflet.blocks.orderedList#item",
                "plaintext": "After 72 hours, you're stuck with whatever changes were made"
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "plaintext": "The 72-hour window is your safety net. Use it wisely."
          }
        }
      ]
    }
  ],
  "title": "DID:PLC Rotation Keys: How the 72-Hour Recovery Window Works",
  "author": "did:plc:l46arqe6yfgh36h3o554iyvr",
  "description": "Technical deep dive on DID:PLC rotation keys, priority ordering, and the 72-hour recovery mechanism.",
  "publication": "at://did:plc:l46arqe6yfgh36h3o554iyvr/pub.leaflet.publication/3mic6lvk53c2l",
  "publishedAt": "2026-03-30T19:32:27.863724+00:00"
}

did:plc:l46arqe6yfgh36h3o554iyvr | at://did:plc:l46arqe6yfgh36h3o554iyvr/pub.leaflet.document/3micfonr67s2r

pub.leaflet.blocks.header (nested within pub.leaflet.document) (100 samples)
{
  "$type": "pub.leaflet.document",
  "pages": [
    {
      "$type": "pub.leaflet.pages.linearDocument",
      "blocks": [
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "I spend a decade \"in the arts,\" acting, making a couple one-hour solo shows, and helping friends produce their stuff. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.image",
            "image": {
              "ref": {
                "$link": "bafkreihrhyrllr2pvf4q2uo6mxcxfeu6oyzcot75wg4gds2fw6cqvcimda"
              },
              "size": 3517968,
              "$type": "blob",
              "mimeType": "image/png"
            },
            "aspectRatio": {
              "width": 1542,
              "height": 1548
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 31,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "The one time I was in the paper"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "At one point in all this, I gave a go at making a street performance act. I heard anecdotally that with a tight street act you could actually make decent money, and also the idea of it all kind of romantically appealed to me, so I learned to juggle. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.image",
            "image": {
              "ref": {
                "$link": "bafkreifdrawjmisrvcnxzunkagga5i3pikr5wg533canxzkpps45pzu674"
              },
              "size": 3248580,
              "$type": "blob",
              "mimeType": "image/png"
            },
            "aspectRatio": {
              "width": 1356,
              "height": 1508
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 308,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "Notice that I've palmed two of the juggling beanbags momentarily while I do the shoe flip. If you're watching uncritically it happens fast enough that the idea is it looks like its all one fluid motion one moment I'm juggling three bean bags the next three bean bags plus my shoe but its two discrete steps. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "I got kinda decent at juggling. My favorite things I could do were a five-ball pattern, and a couple silly things like above at one point I could somewhat consistently kick my shoe up into a pattern of three balls, and then juggle the three balls and my shoe. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "I did not, however, develop a street act. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "First Lesson: unbelievably hard to capture and keep attention in a chaotic environment"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "I came to street performing as fairly experienced stage actor. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "What I learned from my brief foray was that unlike in a theatre where you have people's attention by default, in a chaotic environment basically at any moment if you let the energy drop people will literally walk away from you. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "I didn't stick with it long enough to ever learn how to hold crowd because..."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [
              {
                "index": {
                  "byteEnd": 38,
                  "byteStart": 36
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "Second Lesson: The street acts that do work all rely on the same tricks (and its IMO joyless) "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Watch three dialed-in street acts and you'll see what I mean. Taking nothing away from these sorts of things! I, after all, couldn't hack it. But there's a formula and the successful acts all follow it. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "And the formula is just:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 27,
                  "byteStart": 23
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 34,
                  "byteStart": 28
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "spectacle + promise an even bigger spectacle"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 293,
                  "byteStart": 281
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "So at the very start, the performer does something BIG and unsubtle and impressive but that only uses a few of the props they have out. And then they interact with the audience a bunch. Use those interactions to get more people to stop and see what's going on. Begin to promise an even bigger spectacle. And thru it all, with an almost Pavlovian insistence, drill home that what's about to happen is the performer will do something INCREDIBLE and then you're gonna throw them a fiver or whatever. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "It's all about the build up. Which goes on for a while, though it always seems like the MASSIVE spectacle is just about to happen. Do that for 10 minutes and then...I don't know, I was never able to do it but you build something up in the audience so they feel maybe that since they've been watching for 10 minutes, and since what they just saw was genuinely impressive, they fork over five bucks or whatever. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "Hey wait, I thought this was a technical blog?"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "It is. I'm trying to make an embarrassingly unsubtle parallel between street performing and LinkedIn-ese and AI twitter. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 52,
                  "byteStart": 45
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              },
              {
                "index": {
                  "byteEnd": 82,
                  "byteStart": 77
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "The great thing about theatre, why I spent a decade of my life basically for free hanging out in that world is that when you create a space where everyone pays attention to the same thing and is generous with their time and attention its really nice. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Where is that space, in the digital world? If you know please tell me. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "One last thing(ridiculous rant time)"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.image",
            "image": {
              "ref": {
                "$link": "bafkreihowjs2v3giml5bedvskarqcj5xidzuovos3iuzn7jafqvxqx73zq"
              },
              "size": 1962541,
              "$type": "blob",
              "mimeType": "image/png"
            },
            "aspectRatio": {
              "width": 1124,
              "height": 1004
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [
              {
                "index": {
                  "byteEnd": 8,
                  "byteStart": 0
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#italic"
                  }
                ]
              }
            ],
            "plaintext": "Not me. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "If a person can competently ride a giraffe-unicycle in front of a crowd, I guarantee they can competently mount said giraffe-unicycle quickly and undramatically. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "It's pretty cool to see, actually. When they do it. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "But if you've ever seen a street act with a giraffe unicycle there's a good chance 7 minutes of it was a ridiculous charade of the performer getting an audience member (who they don't need) to help them. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "They know how to get on the dang unicycle. "
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "Memorable street acts I saw while trying to learn about it/anecdotes"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.unorderedList",
            "children": [
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [],
                  "plaintext": "In New Orleans I saw a guy who gave Mumford and Sons energy do a surprisingly charming routine that is memorable in retrospect for the fact that he really didn't display any memorable real spectacle but the payoff was a pun on \"barefoot\", which I think he was was not wearing any shoes, and when he said \"barefoot\" he pulled a bottle of \"barefoot\" brand wine out from behind his back (like, as a magic trick) and it was very random but kinda cool. "
                },
                "children": []
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [],
                  "plaintext": "Not my personal anecdote, but a friend told me they got disenchanted with street performance when they were performing in Edinburgh during the fringe and there was some theatre backstage common space where performers could leave their gear, and there were like 30 giraffe unicycles (its like how a bunch of animals independently have evolved to look like crabs. The giraffe unicycle is a natural local maximum of the successful-street-performance manifold.) "
                },
                "children": []
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [],
                  "plaintext": "A friend and myself were juggling in downtown Portland, OR, by the waterfront, and a family rock band set up down the sidewalk from us...and then proceed to just totally kill it to the point that their crowd grew to the point where we were in their crowd. It was super cute, a dad and two kids, one of the kids sang and I think the other one played drums. Played covers. You can't compete with that. "
                },
                "children": []
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [],
                  "plaintext": "Anecdote: to eat glass, what you apparently do is you eat a bunch of bread beforehand, and then you also pre-process the glass by shattering some glass and then with sandpaper or you take the edges off and it still looks sharp but it's not so (apparently) you can digest it fine? (DISCLAIMER: I was told this, can't verify. Please don't try yourself and then blame me)"
                },
                "children": []
              }
            ]
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": ""
          }
        }
      ]
    }
  ],
  "title": "Thing I Learned (briefly) Street Performing",
  "author": "did:plc:aurnkk6uy6axy66uqaq6dqy6",
  "postRef": {
    "cid": "bafyreienwqpzeesehj7t3yaua43ulnmhp6y6e5z2pmhkjewrlfnbn5h7b4",
    "uri": "at://did:plc:aurnkk6uy6axy66uqaq6dqy6/app.bsky.feed.post/3m3kqrkgc3k24",
    "commit": {
      "cid": "bafyreidcmsc5d7tgymszmdrd6emaa45f23lur6vp4uyrsl4u6jzawk4mvq",
      "rev": "3m3kqrkjdn42y"
    },
    "validationStatus": "valid"
  },
  "description": "(I'm saying Street Performing is like LinkedIn)",
  "publication": "at://did:plc:aurnkk6uy6axy66uqaq6dqy6/pub.leaflet.publication/3m6gjuzizxc27",
  "publishedAt": "2025-10-19T16:44:35.825Z"
}

did:plc:aurnkk6uy6axy66uqaq6dqy6 | at://did:plc:aurnkk6uy6axy66uqaq6dqy6/pub.leaflet.document/3m3kqrdhbek24

pub.leaflet.blocks.horizontalRule (nested within pub.leaflet.document) (78 samples)
{
  "tags": [
    "science"
  ],
  "$type": "pub.leaflet.document",
  "pages": [
    {
      "id": "019b401a-fcf4-7ff5-896a-2cf78bf563b3",
      "$type": "pub.leaflet.pages.linearDocument",
      "blocks": [
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "src": "https://www.theopennotebook.com",
            "$type": "pub.leaflet.blocks.website",
            "title": "The Open Notebook",
            "description": "The Open Notebook is a nonprofit organization that helps journalists who cover science improve their skills."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Subject Matter: Science"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Organisation Type: Non-profit 501(c)(3)"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Language: English"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.horizontalRule"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "AI Statement"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.blockquote",
            "facets": [
              {
                "index": {
                  "byteEnd": 64,
                  "byteStart": 58
                },
                "features": [
                  {
                    "$type": "pub.leaflet.richtext.facet#underline"
                  }
                ]
              }
            ],
            "plaintext": "We do not respond to pitches written by generative AI. We do not accept or publish editorial content with text generated or edited by AI. This includes pitches, article drafts and revisions, headlines, story summaries, images, and image captions. Please do not use generative AI to develop your pitch. We receive enormous numbers of pitches written by AI. It is extremely easy to tell that a pitch was written by AI, and such pitches will not receive a response."
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "src": "https://www.theopennotebook.com/submissions-guidelines/",
            "$type": "pub.leaflet.blocks.website",
            "title": "Submissions Guidelines - The Open Notebook",
            "description": "We welcome pitches for story-behind-the-story interviews and reported features. We are committed to paying fair and competitive rates to all our contributors.",
            "previewImage": {
              "ref": {
                "$link": "bafkreidglj3bsugpa3pcv4hou7vj757sglufneunjx2dyhpsqamu7oy7mu"
              },
              "size": 30562,
              "$type": "blob",
              "mimeType": "image/png"
            }
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.horizontalRule"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.header",
            "level": 2,
            "facets": [],
            "plaintext": "Links"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.text",
            "facets": [],
            "plaintext": "Social Media:"
          }
        },
        {
          "$type": "pub.leaflet.pages.linearDocument#block",
          "block": {
            "$type": "pub.leaflet.blocks.unorderedList",
            "children": [
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 61,
                        "byteStart": 9
                      },
                      "features": [
                        {
                          "uri": "https://bsky.app/profile/theopennotebook.bsky.social",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "Bluesky: https://bsky.app/profile/theopennotebook.bsky.social"
                },
                "children": []
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 50,
                        "byteStart": 10
                      },
                      "features": [
                        {
                          "uri": "https://www.facebook.com/theopennotebook",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "Facebook: https://www.facebook.com/theopennotebook"
                },
                "children": []
              },
              {
                "$type": "pub.leaflet.blocks.unorderedList#listItem",
                "content": {
                  "$type": "pub.leaflet.blocks.text",
                  "facets": [
                    {
                      "index": {
                        "byteEnd": 52,
                        "byteStart": 10
                      },
                      "features": [
                        {
                          "uri": "https://www.linkedin.com/company/46650628/",
                          "$type": "pub.leaflet.richtext.facet#link"
                        }
                      ]
                    }
                  ],
                  "plaintext": "LinkedIn: https://www.linkedin.com/company/46650628/"
                },
                "children": []
              }
            ]
          }
        }
      ]
    }
  ],
  "title": "The Open Notebook",
  "author": "did:plc:2lfiqxt6j3phcrlfursvnxdy",
  "description": "Every story is a science story.",
  "publication": "at://did:plc:2lfiqxt6j3phcrlfursvnxdy/pub.leaflet.publication/3mai5prgs2c2d",
  "publishedAt": "2025-12-21T11:15:51.530Z"
}

did:plc:2lfiqxt6j3phcrlfursvnxdy | at://did:plc:2lfiqxt6j3phcrlfursvnxdy/pub.leaflet.document/3mailriwrkk25

Lexicon Garden

@