• Mike Wooskey@lemmy.thewooskeys.com
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    edit-2
    8 days 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.

    [Edit: moved AI responses into spoiler]

    AI response

    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.