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
version
field 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.