{
  "path": "/3mfg72xdkec2r",
  "site": "at://did:plc:xbtmt2zjwlrfegqvch7fboei/site.standard.publication/3lxksvuhk3s2j",
  "tags": [
    "atproto",
    "relay"
  ],
  "$type": "site.standard.document",
  "title": "increasing my compute spend",
  "content": {
    "$type": "pub.leaflet.content",
    "pages": [
      {
        "id": "019c82fa-83b1-7cce-b4ff-5fac2613f85d",
        "$type": "pub.leaflet.pages.linearDocument",
        "blocks": [
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 125,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "disclaimer: these instances are new and i'm not an expert at running relays / low-level atproto infra, this is experimental!!"
            }
          },
          {
            "$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.header",
              "level": 2,
              "facets": [],
              "plaintext": "i'm a firehose consumer"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 74,
                    "byteStart": 65
                  },
                  "features": [
                    {
                      "uri": "https://docs.bsky.app/blog/jetstream",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 103,
                    "byteStart": 100
                  },
                  "features": [
                    {
                      "uri": "https://tangled.org/zzstoatzz.io/coral/tree/main/docs",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "my \"bsky trending topics\" (called coral) implementation consumes jetstream to get the posts one can try to derive trending topics from"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "src": "https://coral.waow.tech",
              "$type": "pub.leaflet.blocks.website",
              "title": "coral",
              "description": "real-time entity visualization powered by jetstream",
              "previewImage": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreieplgpwdmg6xhhevig5fhcy2qzayijnj2xkf4arysiqitri73ueyq"
                },
                "mimeType": "image/png",
                "size": 43043
              }
            }
          },
          {
            "$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": 3
                  },
                  "features": [
                    {
                      "uri": "https://standard.site",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 30,
                    "byteStart": 27
                  },
                  "features": [
                    {
                      "uri": "https://github.com/bluesky-social/indigo/tree/main/cmd/tap",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 98,
                    "byteStart": 89
                  },
                  "features": [
                    {
                      "uri": "https://pckt.blog",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 111,
                    "byteStart": 100
                  },
                  "features": [
                    {
                      "uri": "https://leaflet.pub",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 125,
                    "byteStart": 113
                  },
                  "features": [
                    {
                      "uri": "https://offprint.app",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "my standard.site index has tap ingest and backfill posts and pubs from atmospheric blogs pckt.blog, leaflet.pub, offprint.app etc"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "src": "https://pub-search.waow.tech",
              "$type": "pub.leaflet.blocks.website",
              "title": "pub search",
              "description": "search atproto publishing platforms",
              "previewImage": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreihplf2tusmu6nvgvenge2agk6ndbd53prnwtnzvs5s5wrboqaxb5a"
                },
                "mimeType": "image/png",
                "size": 6720
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 92,
                    "byteStart": 69
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 93,
                    "byteStart": 92
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 95,
                    "byteStart": 94
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 114,
                    "byteStart": 95
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                }
              ],
              "plaintext": "historically, these have ultimately depended on bsky infrastructure: jetstream*.bsky.network + relay*.bsky.network respectively."
            }
          },
          {
            "$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": 32,
                    "byteStart": 13
                  },
                  "features": [
                    {
                      "uri": "https://jetstream.waow.tech",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 50,
                    "byteStart": 35
                  },
                  "features": [
                    {
                      "uri": "https://relay.waow.tech",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "now they use jetstream.waow.tech + relay.waow.tech respectively"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 54,
                    "byteStart": 50
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "coral reads bsky posts via jetstream + pub-search taps this relay"
            }
          },
          {
            "$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": [
                    {
                      "uri": "https://github.com/bluesky-social/indigo/blob/bf41e2ee75ab75997bf8cdd92b063c0a96db4aaf/cmd/tap/crawler.go#L176",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 44,
                    "byteStart": 23
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    },
                    {
                      "uri": "https://github.com/bluesky-social/indigo/blob/bf41e2ee75ab75997bf8cdd92b063c0a96db4aaf/cmd/tap/crawler.go#L176",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 76,
                    "byteStart": 61
                  },
                  "features": [
                    {
                      "uri": "https://github.com/bluesky-social/indigo/blob/3e00e819de729ee5fa2c068d15b5bcbb8ef8a884/cmd/collectiondir/README.md",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 111,
                    "byteStart": 102
                  },
                  "features": [
                    {
                      "uri": "https://relay.fire.hose.cam/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 124,
                    "byteStart": 112
                  },
                  "features": [
                    {
                      "uri": "https://firehose.network/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "importantly, tap needs listReposByCollection which runs as a sidecar service seemingly not offered by prominent indie relays (unless i am missing something which i totally may be)"
            }
          },
          {
            "$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": 54,
                    "byteStart": 41
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 99,
                    "byteStart": 79
                  },
                  "features": [
                    {
                      "uri": "https://tangled.org/zzstoatzz.io/relay/blob/main/justfile#L212",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 129,
                    "byteStart": 112
                  },
                  "features": [
                    {
                      "uri": "https://atcr.io/r/zzstoatzz.io/collectiondir",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "since bsky appears to push the image for collectiondir to a private registry, i built my own image for that and put it on atcr.io so tap can happily update itself on who has new collections it cares about"
            }
          },
          {
            "$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": 31,
                    "byteStart": 2
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "i have only started backfilling this tho! still thinking (and getting feedback) on this part, seems like there's a offline crawler thing i could run, but without the complete backfill it seems like tap is still not practically going to work as advertised"
            }
          },
          {
            "$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": 4,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "EDIT: it seems there's some prior discussion on this in the atproto /microcosm discord i only realized after i started working on this, around whether you can circumvent collectiondir etc, will be looking at this as i think about how/if i'm going to go network scale"
            }
          },
          {
            "$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": 24,
                    "byteStart": 21
                  },
                  "features": [
                    {
                      "uri": "https://k3s.io/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "i have a single-node k3s cluster in Virginia, USA via Hetzner that serve the relay, jetstream, and collectiondir behind traefik. i'll have to see about resource allocations given all the things i am running"
            }
          },
          {
            "$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": "ideally, the idea of checking coral and/or pub-search now to eyeball whether my relay infra is working (obviously not a completely reliable proxy, but a useful / quick smoke check!) is attractive"
            }
          },
          {
            "$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 for less-vibey observabililty, i have a public read-only grafana:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "src": "https://relay-metrics.waow.tech/d/relay-waow/relay-waow-tech?orgId=1&from=now-1h&to=now&timezone=browser",
              "$type": "pub.leaflet.blocks.website",
              "title": "Grafana",
              "description": "",
              "previewImage": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreignuynbxq3fmj4lklppkpjvqhs3v7pasbjatliuhcscrjd3boycyy"
                },
                "mimeType": "image/png",
                "size": 30728
              }
            }
          },
          {
            "$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": 48,
                    "byteStart": 36
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    },
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "i encourage people to use these for non-critical things! tell me if it violates your expectations anyhow, that'd be much appreciated :)"
            }
          },
          {
            "$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 still learning atproto's lower levels, which i do by trying things!"
            }
          },
          {
            "$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": 15,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "https://tangled.org/zzstoatzz.io/relay",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "here's the code, which reflects my very lazy declarative goals:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.blockquote",
              "facets": [
                {
                  "index": {
                    "byteEnd": 29,
                    "byteStart": 8
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 129,
                    "byteStart": 87
                  },
                  "features": [
                    {
                      "uri": "https://whtwnd.com/did:plc:44ybard66vv44zksje25o7dz/3lo7a2a4qxg2l",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "relay w listReposByCollection support on minimal Hetzner single node k8s ~ inspired by Bryan Newbold's $34 dollar relay blog post"
            }
          },
          {
            "$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 kinda like k8s sometimes 🫢 i'm sorry! i may reassess and very open to suggestions on different deployment topologies folks use irl. seems i'm on track to spend around the <= $34 per month? we'll see"
            }
          },
          {
            "$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": 39,
                    "byteStart": 18
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                }
              ],
              "plaintext": "i ended up adding listReposByCollection because of tap in pub-search but just now realized this subject had intersected with (what appears to be related to) the atproto hit-piece discourse earlier on"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.bskyPost",
              "postRef": {
                "cid": "bafyreigwq3qhgbr2vuasjmfrxwretxyjvk75hnxcxnbftr2djayhlob4ce",
                "uri": "at://did:plc:pddp4xt5lgnv2qsegbzzs4xg/app.bsky.feed.post/3mfexdoscc22k"
              },
              "clientHost": "bsky.app"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 63,
                    "byteStart": 17
                  },
                  "features": [
                    {
                      "uri": "https://tangled.org/strings/zzstoatzz.io/3mbkjvzftub22",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "that reminded me i ran (naively) into that with tap a while ago, so i was able to connect the dots and put up a pod with that sidecar"
            }
          },
          {
            "$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": 37,
                    "byteStart": 21
                  },
                  "features": [
                    {
                      "did": "did:plc:hdhoaan3xa3jiuq4fg4mefid",
                      "$type": "pub.leaflet.richtext.facet#didMention"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 50,
                    "byteStart": 42
                  },
                  "features": [
                    {
                      "did": "did:plc:7gm5ejhut7kia2kzglqfew5b",
                      "$type": "pub.leaflet.richtext.facet#didMention"
                    }
                  ]
                }
              ],
              "plaintext": "🙇🏻‍♂️ ty @bad-example.com and @sri.xyz for (afaik) leading the way!"
            }
          },
          {
            "$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": 0
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ]
                }
              ],
              "plaintext": "OG independent relays"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "src": "https://relay.fire.hose.cam/",
              "$type": "pub.leaflet.blocks.website",
              "title": "",
              "description": "",
              "previewImage": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreia5cpabw35n7ffkvmg64yatqxmkj52qtgtcthqeqo4koxfbc3n57m"
                },
                "mimeType": "image/png",
                "size": 5154
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "src": "https://firehose.network",
              "$type": "pub.leaflet.blocks.website",
              "title": "Firehose Network | Global ATProto Relays",
              "description": "Global ATProto Relay Network. Public relays in North America, Europe, and Asia.",
              "previewImage": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreihad365elbu43gcmxrnwjv3s4yeoo6hltnfbwgze5q6vsdsp6s5gu"
                },
                "mimeType": "image/png",
                "size": 17707
              }
            }
          }
        ]
      }
    ]
  },
  "description": "via relay and jetstream instances",
  "publishedAt": "2026-02-22T03:28:56.511Z"
}