> **Nostr Agent Onboarding** · [start here](https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/start.md) · [index](https://npub1d70emggs6jzun5lhvqnfqsd9reqmaarn2qjf6q3r02gryyl4v8sqjn44xe.nsite.lol/llms.txt) · source: `Nostr-exp/voices/fiatjaf/essays.md` · snapshot 2026-10-10

# fiatjaf on Nostr: annotated bibliography of his web essays

Research pass over https://fiatjaf.com (essay hub: https://fiatjaf.com/nostr.html, full
Nostr tag index: https://fiatjaf.com/-/tags/nostr). All 24 Nostr-tagged essays were
fetched and read in full on 2026-08-31; the 21 most substantive are annotated below,
grouped by theme. Dates are the ones printed on each page.

## Synthesis: fiatjaf's philosophy of Nostr

Across these essays, fiatjaf's Nostr is not a network, a platform, or even a set of
servers — it is a *description*: a minimal message format (signed events) plus a minimal
server interface (relays), and nothing else. Everything he values follows from that
minimalism. The founding manifesto's one-liner still governs everything he writes: no
trusted central server (resilient), cryptographic signatures (tamperproof), and — the
deliberately contrarian third leg — *no P2P techniques, therefore it works*. He is openly
hostile to DHTs, global content pools, blockchains-for-social, and "super-peer"
architectures (Bluesky/ATProto, Farcaster, p2panda, IPFS), all of which he sees as either
physically unworkable or as re-smuggling a trusted server in through the back door. The
alternative he insists on is the multi-relay client: a genuinely independent "user agent"
that talks to many dumb, private, mutually-independent servers, assumes any of them may
be evil, and does the hard work of figuring out *where* to read and write. Censorship
resistance, in his telling, is not a property of the protocol at all — it is an emergent
property of clients doing relay discovery properly (relay hints, NIP-05 hints, NIP-65
outbox lists, manual action, "a mix of multiple approaches"). Hence his most striking
self-criticisms: "Nostr is not decentralized nor censorship-resistant" (today, because
clients hardcode relay lists) and "Nostr is pro-censorship" (every relay is private
property free to reject anything; freedom lives in the reader's ability to look
elsewhere). Even keys, the thing newcomers worship, he calls "meaningless" — an
unnecessary burden that exists only to enable relays.

His design guidance for developers is a consistent ethic of *keeping it simple to write a
client*, because the barrier to entry for clients is, to him, the real decentralization
metric. Anything that starts optional but becomes de-facto mandatory once widespread —
NIP-26 delegation, note edits, YAML variants of NIP-05, superapp rendering of every event
kind inside kind:1 feeds — is a "centralizing force" to be resisted, however innocent it
looks. He wants kind:1 microblogging kept as a deliberately dumb, neutral "central plaza"
served by dozens of small clients, with "other stuff" (recipes, music, git, calendar
events) living in dedicated kinds, dedicated microapps, and topical or curated relays,
linked from the plaza rather than absorbed into it. Businesses should not build platforms
that imprison Nostr content behind an API; they should ship an interoperable client and
run a value-adding relay that competes "on a leveled playing field" — the magic sauce
goes in the relay, the network stays owned by no one. By 2025 this anti-ossification
instinct extends to the standards process itself: "The end of NIPs" proposes abandoning
the NIPs repository for a bare kind-number registry plus competing prose guides, because
spec bureaucracy was producing developers who translate event schemas into UI while
ignoring the actually-hard part, relay choice.

The temperamental throughline is an embrace of chaos and markets over guarantees and
committees. Nostr "can't ever promise perfect reachability, no protocol can"; relays are
houses, and if someone's thread is full of spam "that is their fault" for choosing bad
read-relays; users who lose keys can painfully rebuild, unlike money, so key management
needs no mandatory scheme. He is ironic, self-deprecating ("I hope you got my point and
agreed because this article is ended"), and dismissive of slogans — including
Nostr-community slogans like "not your keys, not your notes" and "self-sovereign
identity". But the irony sits on top of a rigid core conviction: the client–multi-relay
split is the only social-network architecture that has ever aligned incentives with
censorship-resistance, and nearly every proposed "improvement" is an attempt to
reintroduce the platform.

---

## Theme 1 — Foundational vision: what Nostr is (and is not)

### nostr - Notes and Other Stuff Transmitted by Relays
- URL: https://fiatjaf.com/nostr.html
- Date: Nov 20 2020

The founding manifesto, written before any implementation existed. It defines Nostr as
clients and relays only: users sign posts with their keys and send them to multiple
relays; readers query multiple relays; relays are "very simple and dumb," never talk to
each other, and are never trusted (signatures are verified client-side). The bulk of the
document is a demolition of the alternatives: Twitter (ads, addiction techniques, bans,
shadowbans); Mastodon (identities attached to third-party domain names, server despotism,
lost followers on migration, no incentive to run servers, painful server-to-server
pushing); SSB (great idea, but over-complicated protocol quirks like ECMA-262 JSON
signing and a mandatory per-user chain of updates); and everyone-runs-their-own-server
schemes (people won't, and domains get censored). It then argues Nostr solves banning
(identity is a key, not an account; move relays and followers follow via relay
recommendations), censorship (paid relays: "there will always be some Russian server
willing to take your money"), spam (relays can charge or authenticate), and heavy content
(relays can reject or charge for it). A prescient FAQ already concedes the discovery
problem: if you share no relay with someone you cannot see them, hints can help, and
"we can't ever promise perfect reachability, no protocol can." The famous answer on why
nobody built this before: companies want money, P2P activists want zero servers, and
"they both fail to see the specific mix of both worlds that Nostr uses."

> "The simplest open protocol that is able to create a censorship-resistant global 'social' network once and for all."
> — https://fiatjaf.com/nostr.html

> "It doesn't rely on any trusted central server, hence it is resilient; it is based on cryptographic keys and signatures, so it is tamperproof; it does not rely on P2P techniques, therefore it works."
> — https://fiatjaf.com/nostr.html

### Nostr: a quick introduction, attempt #1
- URL: https://fiatjaf.com/d0b15ac7.html
- Date: Jan 28 2024

The first of three attempts at explaining Nostr to normal people, each with a different
emphasis. Here Nostr "doesn't have a material existence, it is not a website or an app" —
it is a description of messages computers can exchange, which lets different apps connect
to different servers automatically with no contracts or behind-the-scenes coordination.
He compares it to the internet itself: millions of websites, anyone can run one, but with
one shared "language" that makes switching relays clean — so a ban just moves the author,
and conversely no relay has to "uphold a moral ground of 'absolute free speech'": relays
may delete or ban for no reason and nobody is entitled to complain. He is candid about the
costs: no guarantee any relay has the notes you want, users may see different reply sets
and be confused, and malicious relays could edit notes — which is the actual reason for
signatures, whose price is the dreaded nsec the user must guard. The signature "fix is
perfect" except for that key burden, which at least yields portable identity and
third-party-free login.

> "To conclude: Nostr is like the internet (or the internet of some decades ago): a little chaotic, but very open."
> — https://fiatjaf.com/d0b15ac7.html

### Nostr: a quick introduction, attempt #2
- URL: https://fiatjaf.com/ded75cbc.html
- Date: Sep 6 2024

The shortest and most political framing. Nostr explicitly does *not* subscribe to "free
speech" ideals, which he says belong to politics and presuppose a powerful government
enforcing a common rule. Instead, Nostr says servers are private property and provides "a
generalized framework for people to connect to all these servers, creating a true free
market" — Nostr is the public road, relays are the private stores along it. Concretely it
is just data-format definitions over WebSocket with signatures, a base on which
sub-protocols (microblogging, group chat, "recipe sharing and feedback") get layered.
This essay is the cleanest statement of his market-libertarian reading of the
architecture, later expanded in "Nostr is pro-censorship."

> "Nostr instead is much simpler, it simply says that servers are private property and establishes a generalized framework for people to connect to all these servers, creating a true free market in the process."
> — https://fiatjaf.com/ded75cbc.html

### Nostr: a quick introduction, attempt #3
- URL: https://fiatjaf.com/0601c1ca.html
- Date: Nov 3 2025

Aimed squarely at a misconception he keeps meeting: people who hear "relays" and imagine
a set of free public servers, then ask "who will run these relays?" or "how is this
censorship-resistant if you can take down the relays?" His answer: "Don't be one of these
people." Nostr is only the interface description — a relay understands `["REQ", "z",
{"limit":10}]` and nothing else. Whether a relay is free, whether it stores your event,
whether it deletes it after a while or keeps 32 redundant copies, whether it serves
everyone or only some people — every one of those is a private decision of "the program
running on the relay server." The essay is a drumbeat repetition of that clause,
hammering home that no property of any particular relay is a property of Nostr.

> "Nostr is not any specific set of relays, and relays are not meant to be public or free."
> — https://fiatjaf.com/0601c1ca.html

### Visual depiction of the architecture of 3 different decentralized social networking protocols
- URL: https://fiatjaf.com/52a0d652.html
- Date: Oct 3 2025

A short comparative piece (with diagrams on the page) contrasting the Fediverse, Nostr,
and ATProto. The Fediverse ("Mastodon is the de facto controller of the protocol";
ActivityPub proper he calls a broader spec "conceived by the minds of unreasonable
academics, unimplementable in nature" and only partly adopted) is clients talking to a
single server that talks to other servers. ATProto/Bluesky's core idea is decomposing the
social server into three kinds of servers in a pipeline. Nostr's single core novelty is
stated in one clause — clients talk to multiple servers — and he owns the consequence
proudly: the result is chaos, and the chaos is the point. Useful as the most compact
statement of what he thinks is architecturally distinctive about Nostr versus its two
main competitors.

> "its core new idea is that clients can talk to multiple servers, which gives us a very chaotic ecosystem of signed messages."
> — https://fiatjaf.com/52a0d652.html

---

## Theme 2 — Relays, discovery, and what censorship-resistance actually requires

### A vision for content discovery and relay usage for basic social-networking in Nostr
- URL: https://fiatjaf.com/3f106d31.html
- Date: Jan 12 2023

His canonical design document for how a Twitter-like client should actually use relays —
the essay the later "not decentralized" polemic points back to. He models three app views
(home feed, profile, replies; optionally global) and classifies relays subjectively as
spammy, safe (fee/registration barriers but fundamentally open), or closed (friend
groups, communities). The heart is the follow flow: to follow someone you must learn
*some* relay where they publish, bootstrapped from wherever you met them — relay URLs
embedded in `e`/`p` tags, nprofile URIs, NIP-05 relay lists, or (worst case) a bare npub
requiring prompts or searching your known relays. Clients must then continuously mine
relay hints from every event seen anywhere to keep a local profile→relay database fresh
as people migrate. Rendering follows from this: home and profile feeds can safely query
even spammy relays (the author filter protects you), but reply views and global feeds
must query only safe/closed relays or spam gets injected. He closes by admitting the many
corner cases (resolving a referenced note via its hint, the mentioner's relays, the relay
you saw the mention on...) and that all of it "may fail and then it is probably not a big
deal."

> "Nostr is just a very loose set of servers with basically no connection between them, there are no guarantees of anything, and the process of keeping connected to others and finding content must be addressed through many different hackish attempts."
> — https://fiatjaf.com/3f106d31.html

> "To write Nostr applications and to use Nostr one must embrace the inherent chaos."
> — https://fiatjaf.com/3f106d31.html

### Nostr is not decentralized nor censorship-resistant
- URL: https://fiatjaf.com/87a208d9.html
- Date: Mar 19 2024

A remarkable self-critique conceding (charitably) Peter Todd's long-standing accusation.
His experiment: two identical notes published simultaneously, one to three popular relays
(nostr.wine, nos.lol, pyramid.fiatjaf.com), one only to his own relay — which he
announces in his NIP-05 and NIP-65 relay list, i.e. exactly where clients are supposed to
look. The first got vastly more engagement, which "shouldn't have happened at all" if
clients actually followed people rather than followed relays. He draws the political
consequence: a figure banned by the three biggest public relays would instantly drop to
~10% reach — the same fate as personalities deplatformed from corporate social media —
"in that sense Nostr today is similar to what we had before." The crucial distinction he
insists on: Todd is right about the present, wrong about the design — the failure lives
in clients that subscribe to a static relay set, not in the protocol, and it is fixable
by driving clients toward real relay discovery.

> "Nostr today is indeed centralized."
> — https://fiatjaf.com/87a208d9.html

> "Peter Todd is wrong that Nostr is inherently centralized or that it needs a protocol change to become what it has always purported to be."
> — https://fiatjaf.com/87a208d9.html

### Censorship-resistant relay discovery in Nostr
- URL: https://fiatjaf.com/bc63c348b.html
- Date: Mar 19 2024

The constructive companion piece, published the same day. It gives the history of the
discovery problem: the idea was always that clients would follow people "in the relays
they decided to publish to, even if it was a single-user relay hosted in an island in the
middle of the Pacific ocean," but nothing ever enforced this (nothing could), and his own
first client Branle shipped with "a stupid static list of relays" anyway. Mike Dilger's
Gossip was the first client to do censorship-resistant discovery for real — NIP-05 hints,
relay hints, kind:3 relay lists — and NIP-65 then crystallized it into what got
popularized as the "gossip model"/"outbox model," adopted by Coracle and Snort. His
warning: reducing the outbox model to just NIP-65 is "too restrictive" — NIP-05 hints,
nprofile/nevent hints, and event-tag hints all still matter and should be used together.
He ends by arguing the space is not finished: manual user action is "underrated" (if not
designed "by people that think users are dumb animals"), and resilience will come from
deliberately mixing many mechanisms rather than standardizing one.

> "Reliance on third-parties, hardcoded values, social graph, and specially a mix of multiple approaches, is what Nostr needs to be censorship-resistant and what I hope to see in the future."
> — https://fiatjaf.com/bc63c348b.html

### Why relay hints are important
- URL: https://fiatjaf.com/8ce7df34.html
- Date: Jun 13 2024

A rebuttal to Coracle's removal of support for relay hints in event references in favor
of pubkey hints plus kind:10002 (NIP-65) alone. He piles up concrete cases the pure
outbox model cannot handle: posts inside NIP-29/NIP-87 communities whose relays are in
nobody's outbox list; a conference-only relay whose events could never be referenced from
outside; a user whose big outbox relay periodically nukes old events while their archive
lives on cellar.nostr.wine; topical relays (cooking recipes) that users publish to
exclusively; one keypair running two personas with two different kind:10002 lists on
different indexers; relays that reject certain kinds; and finally the fully-banned user —
an "Alex Jones" who cannot even get his kind:10002 onto index relays could still live "a
normal Nostr life" via nprofile business cards and per-event relay hints, but without
hints he is simply unreadable. The essay is the strongest statement of his view that
hints woven through events, not any single published relay list, are what make Nostr's
reachability degrade gracefully under adversarial conditions.

> "That is a catastrophic idea that destroys much of Nostr's flexibility for no gain at all."
> — https://fiatjaf.com/8ce7df34.html

### The only solution to Nostr spam
- URL: https://fiatjaf.com/6fcc40bf.html
- Date: Nov 17 2025

His mature position: spam is solved at the relay layer, not the client layer. Main feeds
have no spam problem by construction (you read people you follow, from relays you chose).
Inbox spam (mentions/replies in notifications) is fixed by clients querying `#p` mentions
only from the user's NIP-65 "read" relays — and by users choosing read-relays that
actually filter: relay.mostr.pub's NIP-05 requirement, his pyramid inbox's 2-level
web-of-trust filter, PoW or paid relays as fallbacks; he calls for public filtered inbox
relays to become client defaults so newcomers never see spam. The hardest case is other
people's threads: you fetch replies from *their* read relays, and if those are garbage,
"that is their fault" — an incentive structure where clean threads are each user's
responsibility, socially correctable, like not visiting a house that is always dirty.
The final section rebuts the do-it-all-client-side camp: mutes don't stop bots with
infinite keys; client-side WoT fails because "content must first be downloaded before it
can be filtered" (at scale, gigabytes of spam daily, and a 500-reply flood already
starves naive queries); client-side filtering is monolithic where relay choice is
composable; and purely local filtering is a tragedy of the commons, since it leaves every
visitor to your threads fending for themselves.

> "If the practices outlined above become widespread, it will also become evident that, if you're seeing spam at someone else's thread that is their fault. It's their fault for not picking 'read' relays correctly."
> — https://fiatjaf.com/6fcc40bf.html

### Nostr is pro-censorship
- URL: https://fiatjaf.com/3a914800.html
- Date: May 28 2025

Deliberately titled to scandalize, this is his deepest statement of why the relay
architecture works where "anti-censorship" platforms failed. The core of Nostr is not
keys but the fact that a client can reach a huge number of independent servers, "from a
modest server at his basement to a big cloud relay," without trusting any. Platforms and
protocols built on "a big common 'global' pool of messages" all eventually broke on the
same rock: someone must host the content, hosting has costs and moral and legal
implications, "and there will never be a global agreement between all the peoples of the
Earth about whom or what should be allowed" — even rate-limits and IP blocking are a form
of censorship. Nostr dissolves the problem by definition: no global pool exists, every
relay is independent, and it is the *reader's* job to figure out where to read — so every
relay is free to censor as much as it likes, and the network as a whole becomes
censorship-proof precisely because censorship is everywhere permitted and nowhere
decisive. The closing caveat carries the whole weight: all of this "breaks down if apps
relinquish their obligation to figure out what relays to read from and decide to read
from a static list of relays."

> "no relay has any obligations to please all the peoples of the Earth and is free to impose any limits or policies it wants."
> — https://fiatjaf.com/3a914800.html

### Keys are meaningless
- URL: https://fiatjaf.com/cb4ca47a.html
- Date: May 28 2025

The short, sharp companion to "Nostr is pro-censorship," attacking key-worship among
technologists. Secret keys are "just numbers"; a script can mint a bazillion of them with
zero effect on the world. He rejects the slogans "not your keys, not your notes" and
"self-sovereign identity" as meaningless — "people are not keys," and by key-worshipper
logic a person locked in a cage is "free" because only they can move their own body.
Sovereignty ("what an unfortunate word") means nothing without means of action in the
world; for Nostr the means of action is publishing to places where your audience actually
reads. Keys are, in his phrase from the sister essay, an unnecessary burden that exists
to enable the thing that matters: relays.

> "having a key is meaningless if you cannot publish messages to where the people you're trying to reach can read them."
> — https://fiatjaf.com/cb4ca47a.html

---

## Theme 3 — Protocol design discipline: what NOT to do

### How being "flexible" can bloat a protocol
- URL: https://fiatjaf.com/27598e6f.html
- Date: Feb 10 2023

A parable ("a somewhat absurd example, but you'll get the idea") about how optional
niceties become mandatory burdens. One client charitably supports NIP-05 files in YAML at
`/.well-known/nostr.yaml` alongside JSON — harmless, surely. A user's YAML file works
there, so when other clients "break," the user complains to *their* developers, who,
fearing an incomplete client, add YAML support too; the cycle repeats until YAML is
extra-officially part of the spec and every future client forever does double the work.
The mechanism — user-facing pressure ratcheting one client's kindness into everyone's
obligation — is the same one he later invokes against NIP-26, against edits, and against
superapp kind-rendering. It is his most compact statement of why "why not?" is never a
sufficient argument for a protocol extension.

> "The end result of this is that now nip05 extra-officially requires support for both JSON and YAML files. ... A lot of work was wasted for nothing."
> — https://fiatjaf.com/27598e6f.html

### Why I don't like NIP-26 as a solution for key management
- URL: https://fiatjaf.com/4c79fd7b.html
- Date: Apr 4 2023

The essay that effectively killed NIP-26 (delegated event signing) as a general
mechanism. He recounts its origin in the needs of Minds.com — letting a custodial
platform key be statelessly associated with a user's self-owned key via a delegation tag
— and stresses that its whole appeal to him was that it was "fully optional": clients
ignoring it would just see two identities, both with faces and histories, no harm done.
Then the community started treating NIP-26 as *the* key-management story: a cold master
key on a hardware device signing monthly delegation tags for per-app throwaway keys.
That flips the property that made it acceptable: now the active keys are "faceless
entities," and a client that doesn't implement NIP-26 sees only "a constant stream of
random keys" — unable to follow or interact with anyone. So NIP-26 becomes de facto
mandatory for every client, breaking the simplicity of the protocol for a solution he
considers partial and inelegant anyway. If a mandatory delegation scheme is ever truly
needed, he argues, it should be designed fresh rather than rushed — but key management
can instead be solved by many optional approaches coexisting.

> "So now every client must implement NIP-26 to become usable at all, it is not optional anymore."
> — https://fiatjaf.com/4c79fd7b.html

### Thoughts on Nostr key management
- URL: https://fiatjaf.com/72f5d1e4.html
- Date: Apr 4 2023

The constructive sequel to the NIP-26 essay, listing techniques that "work in tandem":
NIP-41 stateless key invalidation, NIP-46 Nostr Connect, NIP-07 browser signers, hardware
signing devices, musig/FROST threshold keys with semi-trusted servers, dedicated mobile
signers. More interesting than the list are his stated premises for why he doesn't worry
much: Nostr keys are not as valuable a target as Bitcoin keys; identity, unlike money,
can be recovered "slowly and painfully" after total loss; and for most people losing keys
and starting fresh "isn't a big deal" — people delete social accounts and lose phone
numbers all the time and just tell their friends. He sketches social recovery as an
example: friends publish events attesting to Alice's new key, and Carol's client
trust-weights Bob's attestation. His favorite property of NIP-41-style and
social-recovery schemes: they need no support in ordinary clients at all — they can live
in "standalone single-purpose microapps" users visit occasionally, which then update
follow lists automatically.

> "Even when you lose everything, identity can be recovered -- slowly and painfully, but still --, unlike money"
> — https://fiatjaf.com/72f5d1e4.html

### The case against edits
- URL: https://fiatjaf.com/ad84e3b3.html
- Date: Nov 7 2024

A structured polemic (in objection-and-reply format) against editable kind:1 notes. Edits
are fine in specialized kinds, but kind:1 "is the public square of Nostr," where
decentralization is paramount. His core argument is about the barrier to entry: if edits
spread, every client — including the tiny embedded ones he hopes for, "Nostr notes being
referenced from and injected in unrelated webpages, unrelated apps, hardware devices,
comment sections" — must implement complicated edit-fetching on top of already-complex
outbox querying. To "but likes and zaps are optional extras too" he answers: those don't
change the content of the post; edits do, so a non-implementing client shows *false
information* — meaning edits, once widespread, are mandatory, and clients without them
die, which is exactly what a centralizing force looks like. He punctures the "every
platform has edits" myth (Bluesky, Instagram comments, TikTok, YouTube videos, email, and
15 years of Twitter say otherwise) and turns "the market will decide" around: "The market
has decided for Facebook, Instagram, Twitter and TikTok. If we were to follow what the
market had decided we wouldn't be here." Alternatives he offers: the annotations spec
(graceful fallback to replies), human-readable diffs as annotations, and the old email
trick of a delayed-send window for fixing typos.

> "Direct edits are a centralizing force on Nostr, a slippery slope that should not be accepted."
> — https://fiatjaf.com/ad84e3b3.html

> "No, they are not optional. If edits become widespread they necessarily become mandatory. Any client that doesn't implement edits will be displaying false information to its users and their experience will be completely broken."
> — https://fiatjaf.com/ad84e3b3.html

### `kind:1` maximalism and the future of other stuff and Nostr decentralization
- URL: https://fiatjaf.com/cd8ce2b7.html
- Date: Oct 26 2024

His architecture for how "other stuff" (long-form, podcasts, calendar events,
livestreams) should relate to microblogging. Three options for discoverability: (a)
publish everything as kind:1 ("obviously very bad"); (b) different kinds, but
microblogging clients fetch and render them all (via NIP-31/NIP-89); (c) different kinds,
announced by plain kind:1 notes that link out to dedicated clients. He confesses he long
favored (b) — as do, tacitly, the clients rendering ever more kinds in feeds — but has
switched to (c): superapp-ification "pushes clients to become bigger and bigger, raising
the barrier to entry into the kind:1 realm," and he personally hated seeing his long-form
articles dumped into feeds as if they were tweets. Solution (c) maximizes publisher
flexibility, keeps a crisp boundary for simple clients, and preserves the reason for
microapps to exist (if every client renders recipes perfectly, dedicated recipe apps
die). The conclusion inverts the essay's title: kind:1 is *not* just another kind — it is
"the central plaza of Nostr," and its neutrality demands dozens of small, diverse clients
even if every niche vertical has only two.

> "It's ok if Nostr ends up having just 2 recipe-sharing clients, but it must have dozens of microblogging clients"
> — https://fiatjaf.com/cd8ce2b7.html

### The end of NIPs
- URL: https://fiatjaf.com/311b999e.html
- Date: Aug 15 2025

A late, radical proposal from the person who created the NIP process: "We stop using the
NIPs repository completely." Replace it with a minimal, uncontentious registry that only
reserves kind numbers with one-line descriptions, and let anyone interested in a kind (or
kind-group) write their own guide to how it works — multiple competing explanations
rather than one official text. His bill of grievances: most NIPs are just event-schema
tables not worth the increasingly bureaucratic numbering process; NIP texts are too short
to teach real usage — "specially the part about choosing what relays to use at each
step," whose neglect produced developers "writing 'clients' that only connected to a
hardcoded set of relays"; GitHub is getting worse and Nostr should dogfood its own
discussion tools; the NIP number confers an unearned "officialness aura" while good
uncodified practices have none; and dead NIPs should be able to actually die instead of
polluting every newcomer's reading list. The closing reflection: he copied the
numbered-documents style from his own LNURL spec work, but that described one main flow
with optional features — Nostr is not one flow and "clearly isn't like a
single-implementation programming-language-spec with a dictator and his committee," so
the format was a category error.

> "We stop using the NIPs repository completely."
> — https://fiatjaf.com/311b999e.html

> "...many developers ... just focus[ed] on translating between event schemas as described in the NIP text and UI elements and disregarded the hard subtleties of relay choice, writing 'clients' that only connected to a hardcoded set of relays"
> — https://fiatjaf.com/311b999e.html

### P2Panda and the super-peer curse
- URL: https://fiatjaf.com/c45ce07b.html
- Date: Feb 22 2025

Prompted by someone suggesting p2panda could replace Nostr, this becomes his general
taxonomy of the "super-peer" failure mode. p2panda's Aquadoggo node is not a relay but an
"app server": a trusted machine that abstracts away all protocol work and hands "massaged,
sorted, filtered, ordered data" to a dumb client — meaning underlings behind it "will be
controlled, censored, mislead and tricked." He identifies the same design as fundamental
to Bluesky, Farcaster, and Pubky, creeping into RSS (aggregators) and IRC (bouncers), and
experimented with inside Nostr itself — ZBD Social (his own project), Primal, Ditto,
Satlantis, Bostr — while noting SSB and Mastodon were never corrupted by it. If this
architecture were destined to dominate Nostr, he "would immediately declare Nostr a
failed experiment." What super-peers buy is the reliability pure p2p can't deliver, plus
filtering and discovery; Nostr's answer must be to lean harder on its own weirdness:
whitelisted community relays, rule-enforcing relays, search relays, AI-feed relays,
spam-filtering relays, curation relays — power in the relay layer, never interposed
between a follower and the followed.

> "The basic Nostr feature of being able to follow anyone you want and not giving a super-peer the power to break that link between follower and followed, i.e. the outbox model, is still the most basic function of relays."
> — https://fiatjaf.com/c45ce07b.html

### Why IPFS cannot work, again
- URL: https://fiatjaf.com/b8e2f959.html
- Date: May 13 2021

(Not Nostr-tagged, but the sharpest single statement of the anti-DHT conviction baked
into Nostr's "no P2P techniques, therefore it works" — his site has a whole
"How IPFS is broken" series at https://fiatjaf.com/d5031e5b.html.) The argument is a
reduction: storing all data on all computers can't work (too much data — "if you think
this can work then you're a BSV enthusiast"); sharding by pubkey still can't work (still
too much data, incentives misaligned); and IPFS's actual move — storing only *pointers*
to where data lives — just relocates the problem. Now every available file must be
continuously advertised, flooding the network, and every retrieval floods it again with
peer-to-peer request forwarding; push more storage onto peers and nodes become
unbearable, push less and flooding grows and retrieval slows. There are no incentives
anywhere in the loop. The punchline is the one he redeploys against every "decentralized"
storage scheme.

> "But if everybody just saves everything to Infura or Cloudflare then it works, magic decentralized technology."
> — https://fiatjaf.com/b8e2f959.html

### About Nostr, email and subscriptions
- URL: https://fiatjaf.com/8af0e043.html
- Date: May 24 2024

A short piece against transplanting legacy communication assumptions onto Nostr. Some
services were sending Nostr DMs containing articles as a "subscription" mechanism —
which he calls senseless: pulling DMs from relays is the same process (slightly more
convoluted, even) as pulling public events, so the assumption that a DM "reaches" a
subscriber better than the event they explicitly subscribed to is a fossil "from some
fantastic past era in which emails were 100% always seen." (He opens by admitting he
checks email once or twice a week himself.) The right move is Nostr-native subscription
flows — following creators, curation providers, communities, and relays directly, as
clients mostly already do (he cites Coracle's custom feeds). The kicker is an anecdote
about an interviewer asking Farcaster's creator whether it gives creators email
addresses: answering "no, but you can send them uncensorable DMs!" would be "getting
everything backwards."

> "Building around such broken assumptions is the wrong approach."
> — https://fiatjaf.com/8af0e043.html

---

## Theme 4 — How developers should build on Nostr

### How to do curation and businesses on Nostr
- URL: https://fiatjaf.com/1f4d0118.html
- Date: Jun 11 2024

His playbook for entrepreneurs, opening with the temptation to avoid: a closed platform
that reuses Nostr identities, siphons content from the open network, imprisons it, and
runs "an amazing AI-powered algorithm" on top — especially tempting in discovery-heavy
niches (recipes, long-form, used-goods markets, freelancing, game lobbies, professional
directories, music, restaurants). Even if it succeeds it "enshrines you as the head of a
platform": ads, a legal team, the FBI, advertisers shaping discourse. The prescription is
two-step. First, write an interoperable, ideally open-source niche client with a NIP or
NUD for its event kinds ("without interoperability this can't be Nostr"), letting users
point it at any relay for global content. Second, put your secret sauce in a relay you
run — charge, do "KYM (know your music)" validation, apply the AI sorcery there — and
make it the client's default. Your relay is your website; people are free to connect or
not; you compete on a level playing field and users get portable identities and social
graphs that don't depend on you — which is exactly why they can trust you. Crucially, the
social layer (follows, comments) must still ride the outbox model, so a musician banned
from your relay keeps their followers from nos.lol. Hardcoded defaults and manually typed
relay URLs are fine for now; relay-list-sharing events can smooth it later.

> "You don't own the network, you're just competing against other websites on a leveled playing field, so you're not responsible for it."
> — https://fiatjaf.com/1f4d0118.html

### How can web apps be independent protocol clients?
- URL: https://fiatjaf.com/6829ad8b.html
- Date: Aug 9 2025

An honest examination of a hole in the model: Nostr assumes clients are true "user
agents" — servers may be "as evil as they want as long as clients are working to serve
the interests of users" — and that holds tolerably for installed native apps (updates
are optional, rare, discernible, the same for everybody). But a web client is chained to
a DNS name and someone else's server: jumble.social works until its owner shuts it down,
is coerced into shipping malicious code, or makes an unwanted change nobody can opt out
of. His preferred fix is "subjective apps": Jumble should mean "this version of Jumble I
use (represented by this hash)," with the static HTML/JS/CSS hosted on Blossom and
addressed by content hash; users voluntarily accept the author's new releases, or adopt a
contentious fork under the same name, with these subjective naming decisions propagating
through the social graph. He rates this "very good" but weird enough that it may not
happen soon, so he offers the lazier cultural fix: users learning that clients are many
and interchangeable, keeping secondary clients (yakihonne, coracle) in parallel so any
single web client's death or betrayal is survivable.

> "a web client can't ever be trusted as an installed client can. They can't be fully user agents as they'll always remain (at least a little bit) agents of their true owner, the person who has the domain name."
> — https://fiatjaf.com/6829ad8b.html

### Redistributing Git with Nostr
- URL: https://fiatjaf.com/18ff5416.html
- Date: Apr 25 2025

The design rationale behind NIP-34/GRASP-style git-on-Nostr. He starts by conceding the
lurking comment — "but Git is already distributed!" — is technically true and practically
false: GitHub hosts essentially all of open source, and projects elsewhere lose
discoverability and contributions because contributing anywhere else means account
creation, passwords, email confirmation, and SSH setup. Moving everyone to GitLab or
Codeberg misses the point ("the open-source world controlled by two shady companies
instead of one"); the goal is that a self-hosted server in a wood cabin and a new hosting
company both compete with GitHub on equal terms. Nostr's contributions: patches as event
content (Nostr as "a quite powerful email replacement," reviving the `git send-email`
flow with better UX than GitHub's "intense clickops mixed with terminal copypasting");
issues as threaded Nostr comments (better threading than GitHub, he notes); search via
repository announcement events on public-good or curated relays, indexable by anyone
without proprietary APIs; and CI as a paid-in-sats service triggered by Nostr events
instead of GitHub webhooks. The essay doubles as a worked example of his generic recipe:
find the network-effect chokepoint, replace its coordination layer with signed events on
competing relays.

> "What we want is to give every person the opportunity to host their own Git server without being ostracized."
> — https://fiatjaf.com/18ff5416.html

> "we must remove the network-effect centralization pressure."
> — https://fiatjaf.com/18ff5416.html

---

## Coverage notes

- Source of the list: https://fiatjaf.com/-/tags/nostr (24 entries, no pagination).
- Read in full but not annotated above (minor/operational): "Setting up a handler for
  `nostr:` links on your Desktop..." (https://fiatjaf.com/33ec0995.html, a how-to).
- Related non-Nostr indexes on his site that inform the philosophy: the "How IPFS is
  broken" series (https://fiatjaf.com/d5031e5b.html) and his Bitcoin writings
  (https://fiatjaf.com/23977266.html).
- All quotes are verbatim from the pages as fetched on 2026-08-31 (his original spelling
  and grammar preserved, including typos such as "thas", "implemneted", and
  "bureaucractic" where they occur inside quoted matter — none of the quotes above
  contain them, but summaries paraphrase around them).
