SATURDAY, AUGUST 29, 2026|No. 13114
Technology · Protocol

ATProto Introduces 'Spaces' for Non-Public Data

The ATProto protocol has launched an alpha version of 'Spaces,' a new feature designed to enable the storage and synchronization of non-public data, expanding its capabilities beyond its previously all-public data model.

A visual representation of data flow and network connections, symbolizing the ATProto protocol.
A visual representation of data flow and network connections, symbolizing the ATProto protocol. · Photo by Conny Schneider on Unsplash
1 sources
Pipeline ingest
3 reads
Positive / Neutral / Negative
0 countries
Related coverage

The Atproto Spaces Alpha is Live

Atproto Spaces, formerly known as “the permissioned data protocol,” is a new extension to atproto that enables non-public data. The alpha is now officially open. Here’s how to develop with it and what to expect as we work towards the full release.

August 20, 2026

By Daniel Holmgren

The biggest update to atproto since it first launched is available as an alpha that you can develop on, starting right now!

This project has been a long time coming, as evidenced by the many names it’s had (first private data, then permissioned data, briefly buckets, and now atproto spaces). From early chatter on the forum, to the first development diary back in February, to the full proposal, the design of the protocol has evolved through the feedback, contributions, and discussion of the ecosystem. This is a big undertaking, not just for the Blueksy team but for the entire Atmosphere.

Recall that, by design, all data stored on the protocol today is public — every post, every follow, every like, every block. All of this data is stored on a distributed network of servers anyone can host that gets collated and rebroadcast by a global firehose anyone can tap into. This makes it possible to build high-scale applications like Bluesky and Tangled on a network that’s locked open.

There are, of course, features and entire products that rely on data that isn’t public. Settings, private bookmarks, forums ranging from dozens to millions of members, and subscription-only publishing apps all require a data model that isn’t fully public.

Spaces, a new protocol primitive, provide a way to store and sync non-public data while retaining the advantages of atproto like portable identity, interoperable/remixable data, and permissionless participation.

Today, we’re making the alpha available with running code, published SDKs, a sample app, and even a hosted PDS you can create an account on and develop against. This is truly an alpha. There will be breaking changes, and you absolutely should not run production code against it.

What is a space?

You can think of an atproto space as a miniature atproto network that can be gated so that only certain people and applications are able to access the data published in it. It may sound a little “heavy-duty” to say each space is a mini-atproto, but spaces are actually very lightweight and low overhead. A space can have a single record in it with minimal overhead or scale up to a billion records.

Apart from the space itself, things should feel familiar. Users have DIDs. Users host their data in their repositories. Records are JSON and defined by Lexicons. Applications sync repos and build views of the data.

Access to a space is controlled by a space authority, which is just a DID like any other account (and in some cases actually is your account!). The space authority determines which other DIDs are allowed to access the space. Records live in per-space permissioned repos on the author’s PDS.

It’s important to remember that spaces give you access control not confidentiality. The data in a space is readable by any user or application with access to that space, it’s not encrypted.

Spaces are a very flexible primitive, and the range of uses is deliberately broad. The smallest spaces will contain exactly one member and are useful for storing data like settings, drafts, bookmarks and other private data that an app might want to store. Spaces work for gated content as well, such as a publisher that wants to distribute a subscription-only publication. Where spaces really shine, and in some sense what they were designed for, is establishing a shared social context. In this capacity, the largest spaces will be communities that may grow to millions of participants.

The sync protocol for space data is significantly lighter-weight and provides facilities for real-time sync. This is because, unlike the public broadcast protocol, there is no concept of a relay for data stored in a space. For public data, the relay helps provide applications access to all of the data across the network. However for spaces, it’s often not desirable to rebroadcast content. Applications will sync space data directly from PDS hosts.

A hosted PDS for experimenting

If you want to test out the protocol without running any infrastructure, you’re in luck! We’re hosting one for you and will keep it up to date with the latest changes.

Head over to your BPS account for an invite code and a link to the alpha PDS.

This is a shared sandbox and we intend to keep it usable. If you cause moderation problems, engage in unproductive abuse of the network, or otherwise try to use the PDS for purposes other than experimenting with spaces, you will be permanently banned from the alpha.

You should also expect the data stored in the PDS is neither permanent nor stable. The data model will change, we may even delete everything without warning. The PDS as a whole will be deleted after the alpha.

We plan to update the hosted PDS and SDKs on Thursdays. We’ll post changes to the announcements thread on atmosphere.community, please subscribe.

Running a spaces-capable PDS

If you want to run your own PDS, we’ll maintain a tagged Docker image at ghcr.io/bluesky-social/atproto:pds-spaces-alpha with support for spaces. This image is compatible with the reference PDS distribution and does not require any new configuration.

THIS IS ALPHA SOFTWARE DO NOT USE IT IN PRODUCTION. Breaking changes will happen and database schemas may change without clean migrations. We strongly recommend that you do not migrate your real accounts to this version. Do not expect that you’ll even be able to cleanly upgrade between versions.

That said, do please use the new PDS with test data. Explore spaces and the kinds of applications you can build with them. Report bugs, let us know if you were expecting something to work one way and it turns out to work differently.

We’ve already seen a few ecosystem projects that have begun to implement the proposed spec:

Real protocols have many interoperating implementations, and it’s been amazing to see the ecosystem lead the way on this.

Example app and alpha SDK

There’s an example app running at https://bulletin.my. This app lets you host a bulletin board (as a space!) that your mutuals can leave sticky notes on. Only your followers can see your board. The code is available https://github.com/bluesky-social/bulletin. Give it a run locally, or fork it and remix it into something new! If you have your own PDS implementation, try logging in and seeing if everything works as expected.

To support this, we released the TypeScript @atproto packages as alpha snapshot versions. These can be installed with the alpha tag. Check out the bulletin repo to see them in action.

The proposal and the code

If you want to dive deeper into the protocol, the latest version of the protocol specification can be found in the proposals repo. If you’re working on your own implementation of atproto spaces, this is the thing to collaborate around. We’ll keep the proposal up to date with the current reference implementation. If you find ambiguities or places where the implementation and proposal diverge, please open an issue.

The reference implementation can be found on the atproto spaces branch of the atproto repo. This branch is being actively developed and may temporarily diverge from the packages and PDS that are published.

Remember, this is an alpha

As has already been mentioned several times, expect changes as we continue to develop the code. Specifically, this means:

  • The code has not undergone careful security review. Do not upload sensitive information. Not your own, and especially not anyone else’s.
  • We are not running backups, and we may do destructive data migrations. Do not upload content you are not willing to lose. There is no recovery path and we will not be able to make one for you.
  • The alpha PDS goes away at the end of the alpha. Accounts on it are not accounts you should encourage anyone to depend on. Do not point non-developer users at it.
  • The protocol design, SDKs, and database schema are not final. Anything you build will likely need revising.

How to start testing atproto spaces

We will continue to iterate and build tooling throughout the fall, with a goal of launching later this year. Follow the announcement post in the Atmosphere Community forum for updates on new builds, which we plan to drop on Thursdays.

Feel free to start building apps with test, non-production data against the hosted PDS. Or host your own PDS—either the reference implementation or one of the community-managed ones. Run the sample app or build your own. Report issues where you find them.

We are excited about the entire new class of applications atproto spaces enables and for developers to get their hands on the code.

What is a space?

A hosted PDS for experimenting

Running a spaces-capable PDS

Example app and alpha SDK

The proposal and the code

Remember, this is an alpha

How to start testing atproto spaces

Discussion

Discussion

  1. Lino Le Van@linolevan.com Excited to play with it!

  2. Patrixmyth@patri.xyz this is gif support erasure

  3. Sylv@sylv.gay sdjfksjakl;fjlasdkjfkln that was fast????

  4. Schlez@schlez.in I wonder if there was a way to make all records @automerge.org docs without protocol incompatibility. That could have been a cool building block

  5. JYC@jyc.dev I guess I know what to do tonight :)

  6. WallowingDad@wallowingdad.bsky.social Can you make a Facebook replacement with this? Please say yes.

  7. Christopher Jr Riley@cjrriley.ca If it isn't, then it's at least the foundation that lets you do it.

  8. John Spurlock@johnspurlock.com huge!

  9. Henrick ♾️🌌⁂@henrick.thebull.app Super excited for this.

  10. jack@j4ck.xyz ooooh

  11. Flat 18@f18-dev.bsky.social This is the kind of infrastructure that makes the next wave of weird little products possible. Ship the alpha, let builders break it, then keep the good feedback.

  12. Dave LIndsay@davelindsay.bsky.social I long for the day when I have the vaguest idea what you’re talking about.

  13. Story of bas Monde@troublingtome.bsky.social Hey there Toni, how is you being an ardent Zionist affecting Bluesky?

  14. Ruo Shui@ruoshuiresearch.bsky.social "This makes it possible to build high-scale applications like Bluesky and Tangled on a network that’s locked open."

  15. willow / joks {cigazze}@bsky.cigazze.com LFGGG this is so cool...and so needed. this is gonna enable bsky to build something similar to private accounts but so many other cool things can be done with this too

  16. civic.statmeet.com@statmeet.com This is incredible news for the app ecosystem!!! Social integration into apps is the future.

  17. Aturi@aturi.to Explore Atproto Spaces 🔭

If you’re a part of the Spaces alpha test, you can now explore your private data using Aturi: aturi.to/explore/spaces

Note: Spaces is in early alpha and will change/break, so our support for exploring spaces data will contain bugs and shift over time too!

  1. The Fiji God@fijigod.bsky.social bsky.app/profile/atpr...

  2. Ankit Bhandari@anku.bsky.social awesome.. just read. I’m really excited for “permissioned data” or atproto spaces.

  3. evacide@evacide.bsky.social I think this is really cool and I'm excited to see what people build with it. Locked/private accounts would be a really useful feature for a variety of reasons.

  4. Victoria Testando@teste.vicwalker.dev.br É hora dessa minha conta brilhar como o nome sugere

  5. Søren Torbjørn Svendsen@sorentsvendsen.eurosky.social Så er der åbenbart alfa-testning af et nyt koncept ATProto Spaces

Det vil gøre det muligt i langt højere grad, at udvikle applikationer med en mere eller mindre privat sfære - mini-ATproto'er som de kalder det. Fx alle dem der følger dig

Der går nok noget tid før det er bredt klar, men spændende

  1. CJ@mateloos.be From private accounts or posts to subscriptions and communities: ATProto #Spaces provides.

Early alpha release, so stuff will break irreversibly for now, this oft requested option is pretty huge:

  1. 🌟Lerunechka🌟medical appointment hell@lerunechka.bsky.social Anyways... GOD I'M SO EXCITED FOR THIS

We're so close to finally having private spaces soon!

  1. Marc ON4AAX #HAMR #DX #ax25 #MultiLingual #TheOutpost #TSF@radiosuperb.wsocial.eu #ATprotocol

  2. FOLK@folk.lol very nice :)

  3. Gordon Guthrie@foundationsofthedigitalstate.com Interesting stuff completely missed by the BlueSky of dead folk (and not immediately understandable by non technical users)

  4. Davide Aversa@davideaversa.it This potentially opens a new universe of atproto powered applications that were impossible before. 🥰

  5. Andy@pixelde.su I need to talk more about features I want, this might just be the foundation for private accounts 👀

  6. adrien@lemaire.bsky.social nice but are per-space repositories portable between PDSes like regular ATProto repositories?

  7. ATBrasil@atproto.com.br Para quem desejar já ler o anúncio em inglês mesmo (pode ser um pouco técnico):

  8. Rowan-Paul@rowanpaulflynn.dev Looks good! I'll definitely try it when I have some time for @opnshelf.xyz

  9. Atproto FR@atproto.fr La mise à jour la plus attendue du protocole est en alpha. Hâte d'en discuter avec plusieurs d'entre vous la semaine prochaine.

  10. Joe Germuska@joe.germuska.com I'm planning to work through this with the goal of supporting collaborative editing for timelines made with timeline.knightlab.com/ng/ but there seem to be a few obvious friction points at the beginning.

I haven't seen this use case discussed anywhere in the community. Have I missed it?

  1. The Doctor (Commissions open)@lucidillusions.in Oh. Wow. Need to test this out soon.

(I really wish I had more time to do more things in a day)

  1. c0ast3r 🇺🇸@c0ast3r.endrun.io How this plays out is going to be very interesting.

  2. Mike@imike.lol This is fantastic news for those of us who want private accounts/posts. 👀

  3. Tarqs@tarqs.oathling.world Testing something new in the wild—that's where protocol ideas either hold or bend. Curious what you'll find.

  4. da-rkio.bsky.social@da-rkio.bsky.social Ok now I can get back to ATproto stuff! This was what I’ve been waiting for!

  5. Brad Thorson@bbthorson.bsky.social

  6. Gitbit@gitbit.bsky.social Help me understand. If someone wanted to build a social media site based solely on live video or audio, could they integrate with and use AtProto?

  7. Mike Beasley@mikebeas.com there’s a pretty good example of this already with @stream.place

  8. Nettomo 🥞@nettomo.bsky.social Private accounts and/or something like Twitter Circles 🔜👀⁉️

  9. Nettomo 🥞@nettomo.bsky.social Private accounts and/or something like Twitter Circles 🔜👀⁉️

PAN's pipeline reviewed approximately 1 open sources for this article. No human editor reviewed this article before publication.

Related Reads

Show on timeline →