Bluesky has been criticized for the fact that many things being centralized, In the development of AtmoType we considers decentralized more, so I came up with a idea to store "states with timestamp" in my AtmoType.
It's backfill-friendly, thus different AppView can have the same behaviour.
Take post interaction settings as an example, Bluesky uses an app.bsky.feed.threadgate record attached to your post, and in the record only presents the current state that who can reply, so when there's an AppView backfilling the whole record, some replies shall show or hide differently from other AppViews.
I decided to make the states as a list, containing an object showing what state it is and when it started, like this pseudo-code which implements the threadGate record to my version:
{
post: "at://redacted", // here links post
log: [ // log that track the history of the threadgate
{
timestamp: "2026-01-25T11:11:11:111Z", // timestamp
content: { allow: [] }, // allow no one to reply
},
{
timestamp: "2026-01-25T22:22:22.222Z", // newer timestamp
content: {}, // no limitations
},
],
}Still a draft and needs someone brainstorming with me! Feel free to mention this post with your idea ;)
Spinned from my Chinese blog post: