ATProto spaces: A new extension to ATProto that enables non-public data
ATProto was designed so all data is public by default—every post, follow, like, and block is stored on a distributed network and rebroadcast via a global firehose. This enables open applications like Bluesky and Tangled, but it rules out features that require non-public data, such as settings, private bookmarks, private forums, or subscription-only publishing apps. Spaces are a new protocol primitive that store and sync non-public data while retaining atproto's portable identity, interoperable data, and permissionless participation.
A space can be thought of as a miniature atproto network that is gated so only certain DIDs can access it. Each space has a space authority (a DID) that controls membership, and records live in per-space permissioned repos on the author's PDS. Spaces are lightweight—they can hold just one record or scale to billions. Access control is not encryption: anyone with access to the space can read its data.
The design evolved through community feedback, with many previous names including 'private data', 'permissioned data', and 'buckets'. The alpha is available now, but it is truly early stage: breaking changes are expected and production use is not recommended. Bluesky is positioning spaces as a flexible primitive for a wide range of use cases.