gitmyhub

nostr

★ 11k updated 11mo ago

a truly censorship-resistant alternative to Twitter that has a chance of working

Nostr is an open protocol for a censorship-resistant social network where users publish cryptographically signed messages to independent relay servers, so no single company can delete accounts or silence posts.

setup: moderatecomplexity 3/5

Nostr stands for "Notes and Other Stuff Transmitted by Relays." It is an open protocol designed to let people publish and read short messages without depending on any single company or server. The goal is a social network where no central authority can remove someone's account or block their posts.

The way it works is straightforward. Instead of posting to one platform that stores everything, you publish your notes to one or more relays, which are simple servers that anyone can run. People who follow you connect to those same relays to read what you have written. Because any relay can host your content, no single relay can silence you: as long as at least one relay is willing to carry your posts, your followers can still find them.

To prevent relays from tampering with posts or impersonating authors, every note is signed with a cryptographic key. When you follow someone, you are actually following their public key. Your Nostr client checks every incoming message against that key, so a dishonest relay cannot inject fake posts into your feed.

One of the harder problems the protocol openly acknowledges is discovery: if a person you follow publishes to a different relay than the one you check, you might miss their posts. The project links to several ongoing approaches to this routing problem, including a pattern called the outbox model that is explained with an animated diagram at how-nostr-works.pages.dev.

The protocol specification is documented in a set of documents called NIPs, starting with NIP-01 on GitHub. A growing list of apps built on Nostr is maintained at nostrapps.com. If you want to try Nostr without reading the spec first, the project recommends starting at start.njump.me.

Where it fits