this is a web interface to nostr. a live instance is hosted at https://nostr.ch/
some useful resources:
- JS library used in this project: https://github.com/fiatjaf/nostr-tools
- NIPs: https://github.com/nostr-protocol/nips
- relays registry: https://nostr-registry.netlify.app
- event inspector: https://nostr.guru
- a list of nostr projects and resources: https://nostr.net
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.
- make sure
versionfield in package.json as seen by remote git on master branch matches the tag created in the next step. - tag a commit on master branch with a
git tag v<vesion>. - 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.