atproto
Social networking technology created by Bluesky
atproto is the official TypeScript reference implementation of Bluesky's open social networking protocol, letting anyone run their own server, build custom social apps, and own their data instead of depending on one company.
This repository contains the TypeScript reference implementation of AT Protocol, the open social networking standard created by Bluesky. AT Protocol is the technical foundation that the Bluesky social network is built on, and this codebase is the authoritative version of how that protocol works.
The basic idea behind AT Protocol is that social media does not have to be controlled by a single company. Instead of one organization owning all the data and deciding who can access it, the protocol lets anyone run their own server that stores their own posts and follows. These personal servers, called Personal Data Servers, can talk to each other across the network. Bluesky's own app is one application built on top of this infrastructure, but others can build different apps using the same underlying data.
This monorepo contains several distinct pieces. On the server side, it includes the Personal Data Server software and the AppView, which is the component that assembles feeds and processes queries for the app.bsky namespace used by the Bluesky app. On the library side, it publishes TypeScript packages for things like identity resolution, cryptographic signing, data storage structures, and the HTTP API layer. These packages can be used by developers building their own clients or services on the protocol.
The protocol uses a schema definition format called Lexicon to describe all its data types and API endpoints, similar in purpose to JSON Schema or OpenAPI. Those schema files live in this repository and serve as the canonical specification.
The project is developed by Bluesky Social PBC and accepts community contributions, though the team notes they have limited bandwidth and prioritize carefully scoped changes.
Where it fits
- Run your own Personal Data Server so your posts and social graph live on your infrastructure and not Bluesky's
- Build a custom social app or Bluesky bot using the published TypeScript SDK packages for identity, signing, and the HTTP API
- Read the Lexicon schema definitions to understand Bluesky's full data model before building an integration