Last Week in Bluesky and the ATmosphere -2025jan

Last Week in Bluesky and the ATmosphere -2025jan.b

A busy news for Bluesky, and the wider AT Protocol (ATProto) network, with a new governance initiative, Mark Cuban calling for a TikTok alternative on ATProto, and much more. This week also features a deep dive on ATProto, explaining what Lexicons are and why they matter.

The News

Free Our Feeds is a newly launched campaign to “save social media from billionaire capture.” The goal of the project is to raise 30M USD over 3 years to set up an independent public benefit Foundation for ATProto. The funds will go to setting up the foundation, building out independent infrastructure and fund independent developers. The Foundation will be led by 9 “custodians”, including Nabiha Syed, Executive Director of the Mozilla Foundation and more. The announcement has drawn some major media attention. In an article on Project Syndicate, Robin Berjon, one of the initiators behind Free Our Feeds, describes more the thinking of the project, saying: “Infrastructure may be privately provided, but it can be properly governed only by its stakeholders – openly and democratically. For this reason, we must all set our minds on building institutions that can govern a new, truly social digital infrastructure.” The initiative got some high-profile names on board, including Wikipedia founder Jimmy Wales, artists such as Mark Ruffalo, Alex Winter and Brian Eno.

Billionaire Mark Cuban has become a more and more active cheerleader for Bluesky, and it is clear that he sees the possibilities that the protocol allows. Cuban posted a TikTok this week where he said he would be “open to investing and supporting in anybody or somebody who creates a TikTok replacement build on the AT Protocol”.

The developer behind third-party Bluesky iOS/iPad client Skeets announced that they are working on another client for Bluesky called Flashes. The app focuses on images, and describes itself as a ‘photo viewing client for Bluesky‘. The news got broadly picked up by news after a TechCrunch article headline made it sound like it was an official app by the Bluesky team, and tapped into broad sentiment for people looking for an Instagram alternative.

A Russian bot network is now active on Bluesky, which seems to be related or part of the Doppelgänger disinformation campaign. The bots target the general public with messages aimed to reduce support for the Ukraine. There are other issues with spam as well, such spammers now creating ‘no-more-bots’ block lists which weaponise lists to hide some accounts of people posting about disinformation and spam in the block list. Tools for community moderation are still limited, as demonstrated by this feedback by some community labelers.

The Bluesky team wrote a reflection for 2024 about the developments on ATProto, to chalk up how work has progressed. The big picture is that Bluesky states that “most of the public data aspects of the protocol have now been designed and implemented”, and that “the last missing pieces are nearing completion”. Regarding the implementation of OAuth, it is still in its first phase, and the team hopes to share more information soon on adding Auth Scopes. Auth Scopes allow for “more granular and flexible Authorization grants”. For future work, Bluesky says that private content on ATProto is a priority for the team to add. They are also thinking about improvements to the plc.directory system, which currently functions well but is a centralised part of the network. For plc.directory the team is working on both technical as well as governance improvements.

The Analysis

In the email newsletter introduction (subscribe below if you also want to get all updates weekly in your inbox, with added commentary!) last week I wrote that I was unhappy with the state of governance for the open social web. Things have already rapidly changed this week, with Mastodon making major changes and the Free Our Feed initiative focusing on governance for ATProto. Some thoughts on the Free Our Feed (FOF) initiative:

  • Probably the largest impact of FOF is in the validation towards other organisations and people that ATProto does not have to be exclusively a network that is run by a VC-backed company. Bluesky’s ties with (crypto) VC money has been a major hesitation for some public-benefit organisations that work on a better internet to promote Bluesky, and have been mainly focused on Mastodon and the fediverse so far. The existence of another public organisation with no VC funding that works on ATProto can help alleviate these concerns.
  • The site only mentions a GoFundMe, which has raised 57k USD so far. A healthy sum of money, but significantly short of the 4M USD they are seeing to set up the foundation. It is unclear to me if FOF is also pursuing other ways for raising funds.
  • One of the main goals of FOF is to “fund developers to create a vibrant ecosystem”. The common response that I’ve seen and gotten by the existing ATProto developer community however is a confusion about the existence of FOF and disconnect with the people behind it. The ATProto developer community largely runs on volunteer labor, and it has been difficult to find even tiny amounts of funding for crucial projects. From the perspective of some of the developers, it is unclear what FOF adds as an intermediary for getting funding.
  • The main purpose of the FOF is to provide independent governance for ATProto. It is understandable that people are uncomfortable with protocol governance by a for-profit VC-backed company. But providing an alternative is that much harder. Unilaterally declaring nine people to be ‘custodians’ for protocol governance is not a form of governance that feels particularly democratic to me. Why these nine people exactly? FOF has not given any reason as to why it should be these nine persons that are responsible for “major governance decisions”. What makes them qualified to be responsible for the major governance decisions for ATProto? It is clear that there are some skilled people that are part of FOF, but the lack of justification and unilateral declaration as ‘custodian’ does not feel great to me. I strongly agree with Berjon that internet infrastructure governance should be done “openly and democratically“, and that part is exactly where Free Our Feeds, with nine predetermined and unelected custodians making the major decisions, falls flat for me.

It has been almost a year since Bluesky opened up to the public, and so far, the network is highly centralised around Bluesky. While there has been a significant amount of experimentation by developers, no other larger company or organisation has built another AppView on ATProto yet. I think part of the problem here is a chicken-and-egg situation: the perception is that ATProto is a network that is owned by Bluesky, making other organisations hesitant to build their own platform on the protocol. But as nobody else is building on the protocol, the perception that ATProto is only for Bluesky gets reinforced. In that light I find Mark Cuban’s announcement that he is encouraging people to build on ATProto, and willing to invest in a TikTok alternative on the protocol to be noteworthy. Cuban has a high reputation build up with Shark Tank about knowing when and where to invest. If he signals to the community that ATProto is a good place to build upon and invest in, it makes it all the more likely that people will listen and start exploring building on the protocol. I personally think it is likely that the impact of Cuban signalling that ATProto is a good protocol to build upon might just have a bigger impact than a potential investment by Cuban in a TikTok alternative.


The bigger story about the announcement of 3rd-party Bluesky client Flashes is not in the app itself, but in the media attention and enthusiasm around it. The headline by TechCrunch ‘Bluesky is getting its own photo-sharing app, Flashes’ is not incorrect, but seems to have given a lot of people a wrong impression of what Flashes was planning to be. Part of the problem is that the difference between a third party client app, and a complete AppView is a new type of language that people are not accustomed to. It seems like that will take some time for people and the media to catch up to. On the other hand, it shows that there is significant interest by people for an Instagram alternative. People have been posting the suggestion to build an Instagram on ATProto literally every day for quite a while on Bluesky, but nobody has pulled the trigger to actually build such a thing. Seeing the interest by the media in such a project might just convince some people to actually start building a real Instagram competitor on ATProto.

The Deep Dive – Lexicons

This tech deep dive is a pretty wonky (we’re gonna talk about data formats, whoohoo!), but I think it matters. Lexicons play part of quite a bit of the news that lots of people on Bluesky have an opinion about, but can be difficult to understand. Lexicons explain why it is hard to build another microblogging app on ATProto that has a 500 character limit, for example. It also explain the difference between an Instagram-like ATProto app that is another Bluesky client such as the just-announced Flashes, versus a complete application that is truly separate from Bluesky.

Lexicons are about formatting data, but more importantly, they are about power: who gets to decide how public data is structured?

To explain what Lexicons are, a simplified explanation of ATProto. There are two core parts: A Personal Data Server (PDS) which contains all your data, and AppViews, which are apps/sites that take all public data and display it in a useful way.

A PDS can contain any sort of data. It can contain a microblogging post from bsky.app, and it also can contain a recipe from recipe.exchange. The dream of ATProto is that someone else can build their own microblogging platform on ATProto, and reuse the same data and social graph by using the data that is already on the PDS.

If someone were to build another microblogging app on ATProto, lets call it GreenField, they would look at the data in the PDS, and see that Bluesky already has formatted the data related to Bluesky in a specific way. You can see what that looks like in reality here by using PDSls. The GreenField app wants to display a post made by someone on Bluesky, so it would look at the data that is formatted under app.feed.bsky.post. This is a Lexicon, created by Bluesky PBC, and Bluesky PBC has determined that post made by with the Bluesky app all follow the format that is specified by app.feed.bsky.post.

So far so good, you open the GreenField app, log in with your ATProto (aka Bluesky) account, and you see the posts made by your friends. Now you want to make a post yourself using the GreenField app. This is where GreenField will have to make some interesting decisions. GreenField can store this post as a app.field.bsky.post in your PDS. People who are on the Bluesky app can now see the post you’ve made using the GreenField app, great. But what if the GreenField app wanted to do a few things differently from Bluesky? For example, what if GreenField decided they wanted to set a character limit of 500 characters on their posts? app.feed.bsky.post has a limit of 300 characters (defined here, line 16), so if the GreenField app would store a post with 500 characters under app.feed.bsky.post on your PDS, the post would not be visible to people in the Bluesky app. GreenField could also decide to make their own Lexicon, app.feed.greenfield.post, and define the character limit of the Lexicon to be 500 instead. But the Bluesky app only displays posts with the app.feed.bsky.post Lexicon, and not posts with app.feed.greenfield.post. So the post would also not be visible on Bluesky.

This example shows the power of Lexicons, and who gets to determine the specifications of a Lexicon. Anyone can create a Lexicon, which results in a system where the Lexicons that have the most users have the most power. Bluesky determined that their microblogging posts have a maximum of 300 characters. Anyone else can create their own Lexicon that sets a different character limit, but the soft power of 910 million posts that are already using the Lexicon that sets a 300 character limit is incredibly strong.

This is a long explanation of what seems like a technical detail, but worth knowing: decisions made via Lexicons can have powerful and long-lasting impact on the entire community, and I think it is important that decisions made here are not only left up to a few enthousiastic developers.

An example of the impact of Lexicons: There are now three different ATProto apps for sharing text snippets, effectively Pastebin clones: atpaste, plonk.li and Pastesphere. The three apps have similar features and purpose. But they all use different Lexicons. This makes these apps not interoperable with each other, and if one of the apps shuts down, it means you cannot access the text snippets that you’ve made with that app with any of the other apps.

It is the same with the review sites (reviews made with Skylights are not interoperable with Bookhive), the recipes sites (A recipe on recipe.exchange is not visible on recipes.blue). These apps could be interoperable if they agreed on either a common Lexicon, or supported each other’s Lexicon’s. But the apps were build at the same time when they were not aware yet often of each’s other’s existence, had different requirements, or just simply like doing their own thing.

Which brings us to Lexicon.community, an community-organised project by independent ATProto developers to come to a set of standardised Lexicons that developers can use. The project got set up in the last month, and the first community defined Lexicons are now getting formalised. The first major community Lexicon proposal is for Calendar and Location types, and provides generic Lexicons for things like events. Smoke Signal is an event planner app on ATProto, and developer Nick Gerakines is one of the driving forces behind the community project. He also has the intention to use the community Lexicons for the Smoke Signal app, to put community Lexicons first in use.

The benefit of using a generic community Lexicon for other app developers is that they automatically get interoperability, as well as a standardised Lexicon that is still extendable for customised additional features that are specific to that app.

The big challenge for any community project like this is governance, and how to get buy-in from the rest of the developer community. The project has a technical steering committee, consisting of some well-known developers in the ecosystem, such as Rudy Fraser who is behind Blacksky, Ryan Barrett the creator of Bridgy Fed and Tom Sherman who builds Frontpage.fyi. The real next step for the Lexicon.community is in getting other ATProto projects to actually start using the Lexicons. Lexicon.community also published a Lexicon for bookmarks. Asked for feedback from Bluesky engineer Bryan Newbold said that “there are no hard blockers” for the team to use Lexicons that are not owned by Bluesky, and said that it is “part of the atproto vision to enable borrowing and cross-namespace use of Lexicons”.

The Links

That’s all for this week, thanks for reading! You can subscribe to my newsletter to receive the weekly updates directly in your inbox below, and follow this blog @fediversereport.com and my personal account @laurenshof.online.

#bluesky

https://fediversereport.com/last-week-in-bluesky-and-the-atmosphere-2025jan-b/