SDKs and languages
There is no right way to build for ATproto. Which languages and tools do you reach for? How do the SDKs hold up?
Which languages have you used with ATproto?
179 responses
Over 70% of builders use TypeScript, which makes sense, considering the official SDKs are written in it, and it is the dominant frontend language.
- TypeScript70.4%, 126 people
- JavaScript34.6%, 62 people
- Rust32.4%, 58 people
- Go27.9%, 50 people
- Python25.7%, 46 people
- Gleam6.7%, 12 people
- Kotlin6.7%, 12 people
- Swift6.7%, 12 people
- Dart5%, 9 people
- C#4.5%, 8 people
- Elixir2.8%, 5 people
- Ruby2.8%, 5 people
Show 19 more
- PHP1.7%, 3 people
- C/C++1.1%, 2 people
- Clojure1.1%, 2 people
- bash0.6%, 1 person
- C0.6%, 1 person
- Common Lisp0.6%, 1 person
- Elm0.6%, 1 person
- GDScript0.6%, 1 person
- Haskell0.6%, 1 person
- Java0.6%, 1 person
- Mercury0.6%, 1 person
- Objective C0.6%, 1 person
- Observable JavaScript0.6%, 1 person
- Perl0.6%, 1 person
- Powershell0.6%, 1 person
- Scala0.6%, 1 person
- Zig0.6%, 1 person
- zsh0.6%, 1 person
- Something else1.1%, 2 people
How do you feel about these libraries?
173 responses
Negative
- Used it, negative experience
- Heard of it, not interested
- Never heard of it, not interested
Neutral
- No sentiment given
Positive
- Never heard of it, interested
- Heard of it, interested
- Used it, positive experience
TypeScript and JavaScriptshown to 138 people
- atcute132 of 138
Most common: Used it, positive experience, 41.7%
- @atproto/api135 of 138
Most common: No sentiment given, 43%
- @atproto/lex134 of 138
Most common: No sentiment given, 44.8%
- Airspace132 of 138
Most common: No sentiment given, 60.6%
Rustshown to 58 people
- jacquard58 of 58
Most common: No sentiment given, 37.9%
- atproto-crates57 of 58
Most common: No sentiment given, 47.4%
- ATrium58 of 58
Most common: No sentiment given, 48.3%
Goshown to 50 people
- indigo49 of 50
Most common: Used it, positive experience, 57.1%
Pythonshown to 46 people
- atproto46 of 46
Most common: Used it, positive experience, 37%
Swiftshown to 12 people
- ATProtoKit11 of 12
Most common: No sentiment given, 63.6%
- swift-atproto10 of 12
Most common: No sentiment given, 70%
Dartshown to 9 people
- atproto.dart9 of 9
Most common: No sentiment given, 33.3%
C#shown to 8 people
- idunno.Bluesky8 of 8
Most common: No sentiment given, 50%
- CarpaNet8 of 8
Most common: No sentiment given, 50%
Elixirshown to 5 people
- atex5 of 5
Most common: Used it, positive experience, 40%
Rubyshown to 5 people
- ruby.sdk.blue5 of 5
Most common: No sentiment given, 40%
PHPshown to 3 people
- libphpsky3 of 3
Most common: No sentiment given, 33.3%
Zigshown to 1 person
- zat1 of 1
Most common: Used it, positive experience, 100%
What is most frustrating about the SDK/language you use most?
56 responses
OAuth and related docs seem to cause the most headaches for builders.
- OAuth16.1%, 9 people
- Outdated SDK documentation16.1%, 9 people
- Lexicon codegen issues12.5%, 7 people
- AI use within library5.4%, 3 people
- Attachment to Bluesky5.4%, 3 people
- Lack of libraries5.4%, 3 people
- Library Design5.4%, 3 people
- Rust5.4%, 3 people
- @atproto/lex3.6%, 2 people
- Debugging3.6%, 2 people
- Documentation style3.6%, 2 people
- Download size3.6%, 2 people
Show 48 more
- Lifetimes3.6%, 2 people
- Missing context for AI3.6%, 2 people
- Slow startup times3.6%, 2 people
- Types3.6%, 2 people
- Abstractions1.8%, 1 person
- Adoption1.8%, 1 person
- AI use (official SDK)1.8%, 1 person
- Atmosphere account requirement1.8%, 1 person
- atproto-crates1.8%, 1 person
- Authentication1.8%, 1 person
- Caching1.8%, 1 person
- CBOR support1.8%, 1 person
- Complexity1.8%, 1 person
- Custom lexicons1.8%, 1 person
- Dependencies1.8%, 1 person
- Dependency bloat1.8%, 1 person
- Discussing lexicons1.8%, 1 person
- DPoP1.8%, 1 person
- Edge cases1.8%, 1 person
- Elixir1.8%, 1 person
- Errors1.8%, 1 person
- Flutter1.8%, 1 person
- Gleam1.8%, 1 person
- Go1.8%, 1 person
- Handle resolution1.8%, 1 person
- Hydration1.8%, 1 person
- indigo1.8%, 1 person
- Interop between JS frontend and Rust backend1.8%, 1 person
- jacquard1.8%, 1 person
- Java1.8%, 1 person
- Jetstream compression1.8%, 1 person
- Lack of tutorials1.8%, 1 person
- Listening for service events1.8%, 1 person
- Mental model mismatch1.8%, 1 person
- Missing parity with Bluesky1.8%, 1 person
- Missing plain JS SDK1.8%, 1 person
- Missing releases1.8%, 1 person
- Missing SDK features1.8%, 1 person
- Missing websocket plumbing1.8%, 1 person
- Multiple clients per domain1.8%, 1 person
- Perl1.8%, 1 person
- Poor error messages1.8%, 1 person
- Rate limits1.8%, 1 person
- Request handling1.8%, 1 person
- Spec compliance1.8%, 1 person
- standard.site integration1.8%, 1 person
- Testing1.8%, 1 person
- URL segmentation1.8%, 1 person