ATProto Browser

ATProto Browser

Experimental browser for the Atmosphere

Post

I just published a write-up over on my blog about how I created my new automated dynamic Bluesky avatar that changes every hour of every day. 🌅 See the project's inner workings and take a look at my creative process here:

Feb 5, 2025, 5:37 PM

Record data

{
  "uri": "at://did:plc:gq4fo3u6tqzzdkjlwzpb23tj/app.bsky.feed.post/3lhh4e7j4xk2b",
  "cid": "bafyreif67gablor2u2zbipgrim6l4sl5yf26lvhrcvm7lwpgnohihsgtz4",
  "value": {
    "text": "I just published a write-up over on my blog about how I created my new automated dynamic Bluesky avatar that changes every hour of every day. 🌅\n\nSee the project's inner workings and take a look at my creative process here:",
    "$type": "app.bsky.feed.post",
    "embed": {
      "$type": "app.bsky.embed.recordWithMedia",
      "media": {
        "$type": "app.bsky.embed.external",
        "external": {
          "uri": "https://dame.is/blog/how-i-made-an-automated-dynamic-avatar-for-my-bluesky-profile",
          "thumb": {
            "$type": "blob",
            "ref": {
              "$link": "bafkreietjrfpgs5ydzsjmzldykmu5gldt6w5b3yojenua2bt3lrs4x3ol4"
            },
            "mimeType": "image/jpeg",
            "size": 699387
          },
          "title": "How I made an automated dynamic avatar for my Bluesky profile",
          "description": "Several years ago, back when Twitter was a thing and it had a decent API, my friend @goose.art did a weird little experiment where he made his avatar dynamic... it automatically changed appearances on..."
        }
      },
      "record": {
        "$type": "app.bsky.embed.record",
        "record": {
          "cid": "bafyreidyhrwyuanytvywpyygduwjjmh3vohizgswnwj55woqkazzez3hnq",
          "uri": "at://did:plc:gq4fo3u6tqzzdkjlwzpb23tj/app.bsky.feed.post/3lherliv7bs2w"
        }
      }
    },
    "langs": [
      "en"
    ],
    "createdAt": "2025-02-05T17:37:28.877Z"
  }
}