📄️ Authentication
Create, use, refresh and revoke AT Protocol sessions with atproto and bluesky, and how App Passwords fit in.
📄️ Custom Services
Point atproto and bluesky at a PDS, relay, or AppView other than the Bluesky defaults, and understand which host each request actually goes to.
📄️ Error Handling
The exceptions atproto and bluesky throw, how rate limit information reaches you, and what the client retries on your behalf.
📄️ Retries & Timeouts
How atproto.dart bounds each request, which failures it retries, and why a POST that may already have been applied is deliberately left alone.
📄️ Pagination
How cursor-based pagination works in the AT Protocol, how to terminate a paging loop safely, and how to wrap any paginated endpoint in a Stream.
📄️ Working with Data
How atproto and bluesky serialize models, represent Lexicon union types as sealed classes, and preserve fields the Lexicon does not define.
📄️ Lexicon IDs
Refer to app.bsky.feed.post and every other Lexicon identifier through generated constants instead of hardcoded strings.
📄️ Firehose
Consume the AT Protocol repository event stream with subscribeReposAsMessages, decode raw frames yourself, and handle cursors, errors, and reconnection.
📄️ Custom HTTP Client
Inject your own transport into atproto and bluesky with the getClient and postClient hooks — for connection pooling, proxies, custom TLS, instrumentation, and fakes in tests.