a nostr web interface in vanilla JS https://nostr.ch/
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
OFF0 2e40a273c4
ci/woodpecker/pr/woodpecker Pipeline was successful Details
ci/woodpecker/push/woodpecker Pipeline was successful Details
nip-10: fix duplicate replies in feed
some replies rendered twice in different positions, seems to be
related to deprecated positional event tags and a regression
introduced in a596121821

on receiving events it analizes the event tags and stores the id
of the replied event so the client can easily search for replies
later. marked tags are prefered with a fallback to positional tags
as described in nip-10.

mentions are ignored at the moment.

example event that had some replies rendered twice:
22e4ea80161ac591059da611d3ab63c583cb1d47a706826db2fc6955ac0a70b5
2 years ago
src nip-10: fix duplicate replies in feed 2 years ago
tools add an about page 2 years ago
.gitignore initial 2 years ago
.woodpecker.yml add an about page 2 years ago
LICENSE initial 2 years ago
README.md docs: update links in the readme file 2 years ago
esbuildconf.js nip-13: mine pow async in worker any only invoke noxy with pow 2 years ago
package-lock.json 0.0.20 2 years ago
package.json 0.0.20 2 years ago

README.md

nostr web client

this is a web interface to nostr. a live instance is hosted at https://nostr.ch/

some useful resources:

dev

nodejs v18.x and npm v8.x are recommended.

after npm install, start by running a dev server with:

npm run serve

and point a browser to http://127.0.0.1:8001/

the serve command injects a live reload snippet. to build a "production" copy, execute

npm run build

the build is done using esbuild, with a config in esbuildconf.js. the result is placed in dist directory.

release

  1. make sure version field in package.json as seen by remote git on master branch matches the tag created in the next step.
  2. tag a commit on master branch with a git tag v<vesion>.
  3. push the tag to the remote: git push --tags.

the CI then receives a git tag event, executes npm run build, creates a tar.gz with all the files found in dist directory and uploads it as a new release artifact. the release is named after the tag name.

the idea is that nostr web instances are then notified about a new release, download the tar.gz archive and update their local copies. this is not yet implemented. at the moment, the CI symply rsync's dist/ with a remote on https://nostr.ch.