Beyond Microblogging: AT Protocol for Building Unique Social Apps

I gave this presentation at Fedicon 2025 in Vancouver.

My goal was not to do a protocol deep dive, but rather showcase all of the beyond microblogging applications that developers are building in the ATProtocol ecosystem, aka the ATmosphere.

Along the way we detoured into some explanations of pieces of how ATProto works.

The bottom line is joy: making apps should be fun, they should bring joy to users – including the confidence that the data is in their own account – and we should have a large variety of apps, from small, silly to big, serious. And beyond microblogging is where all the good stuff is.

Slide 5: Let's have fun in the ATmosphere.

  • My goal with this talk is to tell you about the ATmosphere — the connected accounts, data, and apps that are all running on the AT Protocol
  • One of the things that lets people play is that every account has portable,  user owned storage included in a Personal Data Server (PDS)
  • With accounts separate from apps, people can make apps just for themselves or small groups of people and the barrier to entry is very low.
  • There isn’t a server or an app to go away: data is written to a users’ account

Resources

Microblogging

I started by listing clients/apps that use the Bluesky microblog lexicon

  • Ouranos - a client that supports rich-text links and out-of-band tags
  • Flashes - an iOS, iPad, and soon Android app that is an Instagram looking interface focused on images and videos
  • Skylight - an iOS "TikTok clone" video app
  • Pinksky - a cross-platform web, Android, and iOS app that is Instagram looking
  • Gander - a fork of the Bluesky React Native client codebase that will initially launch as mobile only, be more Instagram shaped, and add other Canadian specific defaults and features over time (I'm an advisor)

Beyond Microblogging

Moved on to the "real" beyond microblogging apps here:

  • Flushes - an app to post your toilet status
  • Recipe Exchange - an app to post recipes too, including images. Based on the Schema.org Recipe Type
  • Tangled - a social coding app / Github clone. Has its own follow graph, so you login with your ATProto account but don't re-use the Bluesky following graph
  • Smoke Signal - events & RSVPs, also includes the Lexicon Community community lexicon for venues / geo locations. Aiming to be event infrastructure where different products will be built on top. Regional "instances" are in progress of self hosting.
  • Grain - photo posting that you can gather into galleries. Uses the regular "blob" type that all images and other non-text file types on ATProto are stored as, content addressed.
  • Streamplace - decentralized video streaming platform aiming to be a Twitch alternative. Going to be plugged into other video apps over time.
  • WhiteWind - the first custom Lexicon, made by a Japanese developer. Long form post type using Markdown.
  • Leaflet - another long form post type that uses a block-based Lexicon and editor, so it's an array of different types. Can make publications that automatically post to a custom feed that users can subscribe to.
  • Roomy - a chat platform that uses ATProto logins but is also tied to local first p2p tech like Automerge, Jazz, Keyhive
  • 2048 Blue - 2048 game written in Rust, scores are stored in your account
  • Discover Toronto Inc - custom Lexicon to power a directory of Toronto-linked people. An example of a single serving app that uses ATproto as a backend-as-a-service

For others wanting to experiment with building apps, the Statusphere example app is a good starting point.

And, join the ATProto Touchers Discord, the community-run developer Discord.

Questions

A couple of notes on questions afterwards that I remember:

How hard is it for devs to make ATProto apps?

Evan asked about how hard or easy it is for developers to make apps, or if there were things that developers needed to learn.

"Monkey-punching toilets is actually a sign of success." @boris@cosocial.ca #fedicon

— Evan Prodromou (@evan@cosocial.ca) August 1, 2025 at 2:45 PM

I explained1 that there were libraries and SDKs for many programming languages, and that the new version of OAuth used by ATProto was tricky. The main challenge is understanding the network as a distributed system – "your" Lexicon type can be posted by anyone on the network, not just your app, or the users that sign up with you.

How do accounts and storage for ATProto apps work?

Johanna had a question about how accounts and storage and apps interrelate.

My simplest example conceptually is that an ATProto account functions like an Apple account: you have an identity for logging in, and it has storage included, and apps can store data in your account if you give them permission. As a developer, you know every account has storage attached.

The simplified answer for how ATProto actually works is that your unique identifier in ATProto is a DID, specifically a DID PLC2 that is created when you create an account.

Screenshot of ATProto Browser viewing bmann.ca DID Doc Here's the DID doc for my @bmann.ca account, via atproto-browser

It has an associated DID Doc that lists things like your human readable name aka handle – e.g. @yourname.bsky.social, or my own domain like @bmann.ca – and what server you have delegated hosting to. Bluesky runs a bunch of PDS that are named after mushrooms, and this account is on morel.us-east.host.bsky.network.3

In summary - your identifier is a unique did:plc, you have a human-readable domain name pointing at it, and you delegate actual account hosting for app records and file storage to a PDS of your choice.

Any app prompts for your handle, it looks up your PDS, redirects there for you to authenticate via OAuth, and then the app has permission to write records and upload files to your account.

Presentation

There was video recorded, I'll also link it here when it is available.

  1. Evan's talk covered the growth of Facebook apps on the social graph that grew virally and had all sorts of zombie bit monkey punch types of activity. Since I mentioned Flushes app, I was trying to make the point that these sorts of apps being built is what success looks like - you want to make it easy enough to make silly, fun things. ↩

  2. yes, did web exists and has use cases, but I'm focusing on the common, widely used case ↩

  3. My @bmannconsulting.com is an account on my self-hosted PDS BringYourOwn.Computer where I uploaded my Twitter archive to. Looking at the DID Doc for the account, you can see that bringyourown.computer is the service endpoint for atproto_pds. ↩

Notes mentioning this note