Comment on How does Nostr work, and what are the pros/cons compared to ActivityPub?
mike_wooskey@lemmy.thewooskeys.com 2 weeks ago
I’ve tested using nostr and it seems cool (I love decentralization), but I don’t really know what it is. Your question made me curious about the differences between nostr and activitypub, so I asked my AI.
I thought the response was useful so I’ll paste it here. If you don’t like AI responses, stop reading this post here.
I asked: Explain the main differences and similarities between nostr and activitypub.
Qwen-3. 8 said: Both are open, JSON-based protocols for decentralized social media, but they take opposite ends of the design spectrum.
TL;DR: Nostr is a minimal client↔relay broadcast protocol where you are your keypair. ActivityPub is a heavy server↔server federation protocol where servers host accounts and talk to each other.
Main differences
| Nostr | ActivityPub | |
|---|---|---|
| Architecture | Client ↔ many relays (star topology). Relays are dumb stores/forwarders that never sync with each other | Server ↔ server mesh. Servers discover each other (WebFinger) and exchange activities directly via HTTP |
| Identity | secp256k1 keypair — your public key is your identity, hosted nowhere | URL-based account (@you@instance.social) hosted and controlled by a server |
| Complexity | Tiny: WebSocket + signed JSON “events” + Schnorr signatures. Trivially easy to implement | Heavy: JSON-LD, Activity Streams 2.0 objects, HTTP signatures, inboxes/outboxes, WebFinger |
| Data model | Flat events (kind + tags + content), semantics defined by NIPs | Rich typed objects (Person, Note, Follow, Like, Collection, …) |
| Moderation | Almost none built in — spam filtering is client-side or per-relay policy | Per-instance moderation: reports, blocks, instance-level blocklists |
| Discovery | No native user search (NIP-05 vanity mapping, directory relays) | WebFinger, search endpoints, follow graphs |
| Media | Not in core — external links or NIP-94 metadata | Native images, video, polls, boosts |
| Censorship resistance | High — anyone can run a relay; clients fetch from many so content is globally replicated | Lower — each server is a full trust domain; your account and content live or die with it |
| Maturity | New (2023), fast-moving, experimental (Presto, Amethyst, Snort, nostr.band) | W3C standard (2018), large ecosystem (Mastodon, Pleroma/Akkoma, Misskey, PeerTube, Lemmy) |
One nuance: Nostr isn’t really “federation” at all — there’s no server-to-server sync. It’s a publish/subscribe model where your client aggregates multiple relays. ActivityPub is true server-to-server federation.
Similarities
- Both are open specs for decentralized social media, both JSON-based, both self-hostable
- Both are protocol-first: any client can read any node — any Nostr client works against any relay, any ActivityPub app can follow any ActivityPub account
- Both support the core loop: follows, posts, replies, likes
- Both use cryptographic signatures (Nostr: Schnorr per event; ActivityPub: HTTP signatures per request)
- Both struggle with spam/abuse, just at different layers
- Both expanded beyond microblogging: Nostr into chat, marketplaces, payments (LNURL); ActivityPub into forums (Lemmy) and video (PeerTube)
Rough heuristic: Nostr optimizes for simplicity, portability, and censorship resistance at the cost of moderation and discovery. ActivityPub optimizes for a mature, moderate-able social graph at the cost of complexity and server lock-in.
hexagonwin@lemmy.today 2 weeks ago
btw there’s a spoiler tag on lemmy that can be useful for this sorta stuff
mike_wooskey@lemmy.thewooskeys.com 2 weeks ago
Oh! Thanks!