NostrComments
A thread on any web page, readable by anyone and removable by no one — kept on public Nostr relays, not on the site. No account, no email, no tracking, no server in between.
Install the extension, and a button on every page opens its thread. Free and open source; the Chrome version also runs in Brave and Edge.
Give the reader any address and see what has been said about that page, in any browser. Every comment's signature is checked. Nothing to install.
Open the readerOne snippet puts each article's thread under it, for readers without the extension. Read-only, loads nothing until clicked, and not yours to moderate.
Add the embed
A shop that never delivered, a seller who vanished, an offer that is too good to be true. One comment already helps the next person, even if nobody ever replies.
On the sites that closed their comment section, and on the stories where the comments were switched off within a day.
To a company announcement, a government page or a press release, where the people who published it are not the ones who decide what is said underneath.
“It's so cool we no longer need to create profiles on the (broken in too many ways) centralized platforms in order to just leave some review.”
Comments are published to several independent relays, chosen by you. The site being discussed cannot delete them, and neither can any single relay operator.
Nothing is sent before you enable it, and then only for pages you actually read. Your signer is asked only when you open the comments. One switch turns it all off.
Standard NIP-22 comments: what other Nostr apps write about a page shows here, and what you write shows there. Your key works in every Nostr app.
No server, no build step: the file you install is the file in the repository. Two published security audits, and a test suite that runs the shipped code.
With sound. Also on YouTube if you prefer it there.
There is no account, no telemetry, no analytics and no server of ours — nothing sits in the middle of this to collect anything. What does leave your browser goes to the relays you picked, and one thing about that is worth understanding before you install.
To show a thread for a page, the extension has to ask the relays about that page. So they see the addresses of pages you read, your IP address, and your public key if a relay asks you to identify yourself. That is how a comment system attached to URLs works, rather than a choice made on your behalf.
Three things narrow it. It applies only to pages you actually read — a tab you never look at, or a page you leave within a couple of seconds, is never mentioned to anyone. The relays are yours: drop any you do not trust, or point the extension at one you run yourself. And there is a switch in the toolbar button that turns it off on every page: nothing is shown, nothing connects, and your signer is not asked for anything.
The privacy policy sets all of it out in full, before you install anything.
There is no build step. The file you install is the file in the repository — readable JavaScript, not a bundle. You can diff one against the other, and you do not have to take any of the claims above on faith.
node tests/run.mjs.You do not need one. NostrComments can create a key for you in one click and keep it in your browser, optionally encrypted with a password. A signer extension is for when you already have a Nostr identity, or would rather your key lived somewhere else.
NostrComments works with any NIP-07 signer, and much of what makes that possible is owed to two people. nos2x by fiatjaf is the signer most of us started with, and NIP-07 itself grew out of it. Diego Gurpegui brought it to Firefox as nos2x-fox and has looked after it since. Thank you, both.
Attest is my fork of nos2x-fox, and almost all of its code is Diego's. It adds two kinds of things. It can sign through a remote signer (NIP-46), so your key can stay in nsec.app, Amber or another bunker instead of in the browser. And it is quieter: it can remember a refusal for a while and undo it later, authorize everything a site needs in one click rather than one prompt per capability, and stop answering anything with a single switch.
NostrComments used to ask the signer on every page you read, which is what made those prompts add up. Since 23.10.6 it asks only when you open the comments, so with any signer you are asked only on sites where you actually read or write. Most of the changes in Attest were offered upstream too. I maintain it, so I am biased — use whichever you like. NostrComments works the same with any of them.
NostrComments is free and open source, and every feature stays that way — there is no paid tier and nothing is held back. If it is useful to you, there is a one-line Support the developer row at the bottom of the comment panel — a zap or two, and an arrow that opens the rest — sending sats straight from your wallet to mine over Lightning. No account, no server in between.
If you have no wallet open and would rather just scan something, there is a payment page that shows a QR code and takes any amount. It is the same wallet as the Lightning address below, so use whichever suits you.
Or send to one of these directly:
slurpnc@coinos.ionpub1ewxm82gprxwkh9qznauyey6vwx62xetpsux3prnmddkyevasatgswmds9e198yNVWJz2H8PwmNsX72URVVV9pRbxMb1887aDTPD9HQx2QenKsS7MvHDdqsziFPD7UB37X6G5XVXc2ZPhAs8DdEKUPYJijVcRjj1gU5KvxLCTfWUKWqrd1D5o8uw5EpMThe same list lives in the project's README, which is the copy to check against if you ever want a second source for an address.
Reporting a bug that you can reproduce is worth as much, and often more.
This page has its own comment thread. Install NostrComments to see it and reply, or read it here without installing.
Tell me what would make you install it, or what put you off. Replies are welcome, and so is "no".