Laurens Hof<p><strong>ATmosphere Report – 2025march.b</strong></p><p>Bluesky PBC shares their protocol roadmap, and a way to indicate user preference to how external parties can handle their data. Tangled is a newly launched Git collaboration platform built on ATProto, and much more news.</p><p><strong>The News</strong></p><p><strong>ATProto Roadmap</strong></p><p>Bluesky PBC has published their <a href="https://docs.bsky.app/blog/2025-protocol-roadmap-spring" rel="nofollow noopener noreferrer" target="_blank">protocol roadmap</a> for the first half of 2025, containing the projects related to ATProto that the team will be working on. The first project the team has been working on is making it much cheaper to run a relay. In order to validate the data the relay currently stores all the network data, making hosting a relay more expensive. The update that is currently rolling out significantly reduces these requirements, making self-hosting a relay much more accessible.</p><p>Auth Scopes makes it possible to make more specific and detailed access permissions when using OAuth. Currently, using OAuth to log into an app with your ATProto (Bluesky) account grants the app full permissions to your entire account. With the upcoming update, an app can set more detailed permissions: for example, a Bluesky client would need read and write permissions for making Bluesky posts, but does not need permissions to read or write posts submitted to Frontpage.</p><p>Bluesky PBC is also working on making a web interface for the PDS. The first update is account signup, allowing people to sign up for an ATProto account directly on a PDS, outside of Bluesky. Later on it will expand to broader account management options. This update is one that will help shift the perspective of what ATProto is, and how it can be used. A publicly accessible place to store personal data is a powerful feature. PDS can be seen as a stand-alone component of ATProto, and it does not have to be integrated with a relay and appview for all purposes. A lack of a web interface makes it harder for people to perceive the PDS as an independent stand-alone part. Currently, the PDS gives people power to own their data. Allowing people to log in on their PDS and perform account management gives people the perception and awareness that they need to understand that they own their data.</p><p>Further into the future, Bluesky PBC will be working on shared private data. Work on this highly-demanded feature will only start after Auth Scopes have been completed, as this is a requirement to get to private data. Only after that will Bluesky look at on-protocol E2EE DMs.</p><p></p><p><strong>User Intents</strong></p><p>Bluesky PBC has published a <a href="https://github.com/bluesky-social/proposals/blob/main/0008-user-intents/README.md" rel="nofollow noopener noreferrer" target="_blank">proposal</a> on how to let people set their preference (‘user intent’) on how their data should be handled outside of the protocol. This concerns things like using their data for generative AI training, being bridged to other protocols, and having their data archived. The proposal is similar to robots.txt: a machine-readable format that good actors are expected to abide by, but is not legally enforceable. </p><p>Defining intent (and consent) in a machine-readable format is a major missing piece of the fediverse. The inability to clearly define what a person consents to and does not consent to regarding their data has been a major contributing factor to drama over the years. Implementing such a system on a protocol level is sorely needed, and this is a great step in the right direction for ATProto. It turns out that not only have people different opinions on whether they want their data to end up in training sets for generative AI, many people also have a hard time coming to terms that other people have a different answer to this question than they have. </p><p>Building a system that defines user expectations and behaviour requires defining what the default setting of such a system is. Most people will not change from the default setting in any system, so there is significant power in declaring what the default state of a system is. The solution Bluesky PBC is proposing is to set a default value of ‘undefined’. This shifts the problem to the projects that want to use the data, leaving them to decide how to process data with an ‘undefined’ user intent. Because the currently proposed user intents cover the entire ATProto account, and not only Bluesky data, it is understandable that Bluesky PBC does not set default values. Doing so would have further cemented the soft power the company already has in the ecosystem. Bluesky PBC is aware of the dynamic here, by proposing that the user intents are not governed by a Lexicon that is under Bluesky PBC’s control, and floating the possibility of community ownership with community.lexicon.</p><p><strong>Tangled</strong></p><p><a href="https://tangled.sh/" rel="nofollow noopener noreferrer" target="_blank">Tangled</a> is a newly launched ATProto software forge platform. Tangled <a href="https://blog.tangled.sh/intro" rel="nofollow noopener noreferrer" target="_blank">focuses</a> on making a decentralised network for code collaboration, using the ATProto identity system. To do so, Tangled introduces a new entity, a ‘knot’. A knot is a lightweight headless server that anyone can host, and that stores the Git repository. A knot can be seen as a slightly different PDS: a PDS stores your personal data that is used in the ATmosphere, and a knot stores your Git repository that is used in the network. You use your ATProto account to control a knot. Tangled provides an AppView, which shows all activity on the network, and allows people to access and contribute to other repositories hosted on other knots.</p><p>From a protocol perspective, Tangled works in a similar manner to <a href="https://stream.place/" rel="nofollow noopener noreferrer" target="_blank">Stream.place</a>. Stream.place is an upcoming livestreaming platform that is integrated with ATProto. Both platforms add their own software pieces: Tangled adds a knot to store the Git repositories, and Stream.place adds their own software parts that handles the actual streaming part. They both use the PDS to store a public key. With this public key Tangled verifies that the Git repository is indeed owned by your ATProto account, and Stream.place that it is indeed your account that is streaming.</p><p><strong>Blacksky</strong></p><p>Blacksky continues on its path towards become a fully independent place in the ATmosphere. Founder Rudy Fraser <a href="https://bsky.app/profile/rudyfraser.com/post/3lk6gfblhdk2b" rel="nofollow noopener noreferrer" target="_blank">announced</a> that Blacksky received a 30k grant from Skyseed, which will be used to further build an entirely separate ATProto implementation in Rust.</p><p>Fraser also <a href="https://bsky.app/profile/rudyfraser.com/post/3ljvdofuzlc2h" rel="nofollow noopener noreferrer" target="_blank">announced</a> that Blacksky is developing <a href="https://github.com/blacksky-algorithms/rsky/tree/main/cypher" rel="nofollow noopener noreferrer" target="_blank">Cypher</a>, an AppView for Blacksky that features local-only posting. Local-only posting is a concept first introduced in the fediverse, and means that posts are only visible to that specific server, and do not travel outwards to the rest of the fediverse. This is more challenging to do on ATProto, where everything is publicly accessible by default. Fraser’s proposal for local-only posting sidesteps this by having local-only posts be stored on the AppView, not on a PDS. This locks the data into the Blacksky AppView. It sacrifices interoperability, but does provide a pragmatic solution for a real problem. My expectation is that we’ll see more of these types of solutions over time.</p><p><strong>In Other News</strong></p><p>OpenMeet is an event planning app on ATProto, and it <a href="https://bsky.app/profile/openmeet.bsky.social/post/3ljkkfivpik2b" rel="nofollow noopener noreferrer" target="_blank">positions</a> itself as an open source competitor to MeetUp. OpenMeet is available for use, but still currently in development. One thing that stands out about OpenMeet is that it uses the Lexicons developed by <a href="https://github.com/lexicon-community" rel="nofollow noopener noreferrer" target="_blank">lexicon.community</a> for its events. <a href="https://smokesignal.events/" rel="nofollow noopener noreferrer" target="_blank">Smoke Signal</a> is the first event planner app on ATProto, and its developer Nick Gerakines is part of the lexicon.community team, and working to transition Smoke Signal to use lexicon.community as well. This means OpenMeet and Smoke Signal will be the first examples of interoperability between two platforms using a shared, community-owned lexicon.</p><p></p><p>The ATProtocol Dev initiative is a community-led initiative (unaffiliated with Bluesky PBC) that is working on various community projects for ATProto, and organises the upcoming <a href="https://atprotocol.dev/atmosphereconf/" rel="nofollow noopener noreferrer" target="_blank">ATmosphere conference </a>in Seattle as well. They <a href="https://atprotocol.dev/location-data-on-at-protocol-the-second-community-fund-project/" rel="nofollow noopener noreferrer" target="_blank">announced</a> receiving a grant by Skyseed to bring location data to ATProto. Foursquare recently released their dataset of 100 million points of interest as open source, and one of the main goals of this new project is to research the best way to make this massive dataset available natively on ATProto.</p><p></p><p>Skyart is a DeviantArt clone on ATProto that is currently under development. SkyArt is using their own custom Lexicon, as well as giving people the ability to post to the platform using Bluesky’s Lexicon. This creates the challenge of how to communicate these differences to the users. SkyArt shared an <a href="https://bsky.app/profile/skyartapp.bsky.social/post/3ljrpiau3ec2n" rel="nofollow noopener noreferrer" target="_blank">initial screenshot</a> explaining the difference between posting to SkyArt and posting to Bluesky. This is a challenge that other apps will run into as well, so I think it’s worth paying attention to how different apps are thinking about and approaching this problem.</p><p></p><p>This week was the SXSW, a culture and tech festival in Austin, Texas, and Bluesky CEO Jay Graber was one of the keynote speakers. She held a conversation with Bluesky board member Mike Masnick, and the entire keynote can be rewatched here. Graber made the <a href="https://techcrunch.com/2025/03/10/at-sxsw-bluesky-ceo-jay-graber-pokes-fun-at-mark-zuckerberg-with-latin-phrase-t-shirt/" rel="nofollow noopener noreferrer" target="_blank">news</a> with her shirt, which resembled one Mark Zuckerberg recently wore onstage. Zuckerberg’s shirt made news with the text “Aut Zuck aut nihil”, meaning “Zuck or nothing”, a reference to the Latin phrase “Aut Caesar aut nihil”, meaning “Either Caesar or nothing.” Graber’s shirt said “Mundus sine caesaribus”, meaning “A world without Caesars”. Bluesky PBC <a href="https://worldwithoutcaesars.com/" rel="nofollow noopener noreferrer" target="_blank">sold</a> the shirt as a limited edition due to the demand from the community, and the shirts sold out in 30 minutes, with the team looking into doing another sales run.</p><p></p><p>ROOST is a recently launched initiative to build open source tools for content moderation for social platforms, and Bluesky PBC is one of the partners. Juliet Shen, an employee of ROOST, showed a proof-of-concept this week on an integration between ATProto and Meta’s Hasher-Matcher-Actioner. The goal is that media is scanned, to prevent unwanted/illegal content from being stored on a PDS. The integration with Meta’s Hasher-Matcher-Actioner allows illegal content also to be automatically reported to the relevant authorities. For use cases such as scanning for CSAM, such a system also needs access to the relevant datasets. Getting access to these datasets is not easy however. IFTAS tried to get a similar system off the ground in the fediverse, but they had to <a href="https://fediversereport.com/fediverse-report-106/" rel="nofollow noopener noreferrer" target="_blank">shut it down</a> due to a lack of funding.</p><p></p><p><a href="https://bsky.app/profile/popsky.app" rel="nofollow noopener noreferrer" target="_blank">Popsky</a> is a new pop culture review app on ATProto, using its own Lexicons. It is available for iOS, with Android in testing. Popsky joins other ATProto review platforms like <a href="https://skylights.my/" rel="nofollow noopener noreferrer" target="_blank">skylights.my</a>, but it seems to be the first one to be focused on mobile.</p><p></p><p><strong>The Links</strong></p><ul><li><a href="https://blog.muni.town/atproto-isnt-what-you-think/" rel="nofollow noopener noreferrer" target="_blank">ATProto Isn’t What You Think</a> – <em>Zicklag/Muni Tow</em>n<br>Zicklag is one of the developers behind Roomy, an upcoming ATProto-based public group chatting app. This article takes a different look on how to view ATProto, and it describes it as a system that allows for centralised apps that use decentralised data. It also goes into the importance of seeing the PDS+Identity system that ATProto provides as a vehicle to build apps that are otherwise not further connected to the rest of the ATProto system.</li></ul><ul><li><a href="https://dame.is/blog/creating-a-decentralized-bathroom-at-protocol" rel="nofollow noopener noreferrer" target="_blank">Creating a decentralized bathroom (powered by the AT Protocol) </a>– <em>Dame</em><br>Dame is an independent tech artist that has been experimenting with ATProto, and is also behind the cred.blue project. Their latest blog post focuses seeing Lexicons as a file format, and exploring what using Lexicons for more personal data would look like. The best way to illustrate this concept is by putting it into practice, which Dame did by releasing the app Flushes. Flushes is an highly serious ATProto-based app that allows you to share when you went to the bathroom.</li></ul><ul><li><a href="https://mozzius.dev/post/3ljlqmchv2b2a" rel="nofollow noopener noreferrer" target="_blank">atproto by example part 1: records and views</a> – <em>Samuel Newman</em><br><a href="https://atproto.com/guides/applications" rel="nofollow noopener noreferrer" target="_blank">Statusphere</a> is an example app by Bluesky PBC to help people get started building on ATProto. In the previous link above, Dame took Statusphere in a more whimsical direction. In this blog post, Bluesky engineer Samuel Newman expands on Statusphere as well, and uses more advanced ATProto concepts working with Lexicons.</li></ul><p>And some more links to ATProto tech:</p><ul><li>An <a href="https://github.com/haileyok/atproto-oauth-golang" rel="nofollow noopener noreferrer" target="_blank">experimental Go OAuth client</a> by Bluesky engineer Hailey.</li><li>Create tiny 3d rooms that are <a href="https://flo-bit.dev/room/" rel="nofollow noopener noreferrer" target="_blank">stored</a> onto your PDS.</li><li>A <a href="https://bsky.app/profile/rudyfraser.com/post/3ljy7p2nx4c2s" rel="nofollow noopener noreferrer" target="_blank">local-first atproto CAR viewer</a> by Blacksky founder Rudy Fraser.</li></ul><p>That’s all for this week, thanks for reading! If you want more analysis, you can subscribe to my newsletter. Every week you get an update with all the articles of this week, as well as extra analysis not published anywhere else. You can subscribe below, and follow this blog <a href="https://bsky.app/profile/fediversereport.com" rel="nofollow noopener noreferrer" target="_blank">@fediversereport.com</a> and my personal account <a href="https://bsky.app/profile/laurenshof.online" rel="nofollow noopener noreferrer" target="_blank">@laurenshof.online</a> on Bluesky.</p> <p><a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://fediversereport.com/tag/bluesky/" target="_blank">#bluesky</a></p><p><a href="https://fediversereport.com/atmosphere-report-2025march-b/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">fediversereport.com/atmosphere</span><span class="invisible">-report-2025march-b/</span></a></p>